crackededed / Xtra

Xtra is a Twitch player and browser for Android.
GNU Affero General Public License v3.0
1.25k stars 48 forks source link

Please add decoder priority option. #569

Open LucioAmely opened 2 weeks ago

LucioAmely commented 2 weeks ago

Hello, I have an Android 7.1.2 phone with QComm SD 625 SoC which supports hardware decoding for AVC1 and HEVC up to 4k@30. Despite not being sure, my Xtra player is most likely playing streams as AVC1 but using my system software decoder; thus drastically increasing battery consumption, making my phone get hot and making streams being watched look noticeably blurrier.

Can you please add a "Decoder Preference" menu in the Settings > Player that will consist of:

Prefer Hardware Decoders Prefer Software Decoders

I would much appreciate it. I like the app but 1080p streams play like 720p (no sharpness and texts are hard to read) and 720p streams play like 480p so on and battery drain is like x2 as much compared to other Twitch viewing apps or using external video players like Just Player which uses the same AndroidX Media3 as Xtra.

Also this problem is not related to the broadcast quality.

Also is there a way to view detailed player statistics; like a debug menu that shows video/audio stream ID, format, FPS, bit rate, decoder, buffer info etc. ?

crackededed commented 2 weeks ago

try using this build: app-debug.zip it should show which decoder is used in the log.

Also is there a way to view detailed player statistics; like a debug menu that shows video/audio stream ID, format, FPS, bit rate, decoder, buffer info etc. ?

no

LucioAmely commented 1 week ago

Hello, just installed the debug version you've provided. Yes it's debuggable indeed but it's not outputting anything to my system log. Does it output to files instead?

LucioAmely commented 1 week ago

The only information I could extract from your debug build is below:

OMX Log 1 OMX Log 2

crackededed commented 1 week ago

i think you're only looking at error level logs. you need to check for debug level logs. search for EventLogger. there should be a line like this: videoDecoderInitialized [eventTime=7.33, mediaPos=17.87, window=0, period=0, c2.goldfish.h264.decoder]