'Video frame freeze on android tv using media player?

I am trying to play mp4 URL on android TV with use of media player

if (mMediaPlayer == null) {
                mMediaPlayer = MediaPlayer()
                mMediaPlayer.setOnPreparedListener(mPreparedListener)
                try {
                    executors = Executors.newFixedThreadPool(1)
                    val runnable = Runnable {
                        mMediaPlayer?.setDataSource(mContext, mUri)
                        mMediaPlayer?.prepareAsync()
                    }
                    executors!!.submit(runnable)
                } catch (e: Exception) {
                }
            }

Playing the file

private var mPreparedListener: MediaPlayer.OnPreparedListener? =
    MediaPlayer.OnPreparedListener { mp ->
        mp.start()
    }

Simple code but on one of the TV's the stream freezes for 1 or 2 seconds.

Testing Device is

Device Name : Sony Android TV
Device Size : 43”
Version : 8.0.0
Model : BRAVIA 2K GB ATV3

Some of the logs from the playback

04-11 15:17:15.026  1334  1334 I CmpbPlayerFactory: use.cmpb.player = 0!
04-11 15:17:15.026  1334  1334 I MtkStreamPlayerFactory: use.cmpb.player = 0!
04-11 15:17:15.032  1334  1334 D MtkNuPlayerPlugin: MtkNuPlayerPlugin createNuPlayerPlugin
04-11 15:17:15.032  1334  1334 W AString : ctor got NULL, using empty string instead
04-11 15:17:15.032  1334  1334 D NuPlayerDriver: NuPlayerDriver(0xa77b28c0) created, clientPid(25656)
04-11 15:17:15.032  1334  1334 I GRM     : Create Component: nuplayer
04-11 15:17:15.033  1309 31839 I GRM     : Process(1334) name(/system/bin/mediaserver) start at 670!
04-11 15:17:15.033  1309 31839 I GRM     : MtkRmServiceCreateComponent.1600, create component nuplayer(0xaf55d640) exit...
04-11 15:17:15.033  1309 31839 I GRM     : MtkRmServiceCreateComponent.1606, create component exit...
04-11 15:17:15.034  1334  1334 I GRM     : Return Component: thiz = 0x0xa77b04d0.
04-11 15:17:15.046  1334  2147 D GenericSource: FileSource remote
04-11 15:17:15.067  1328  1526 D ASFExtractor: [ASF]SniffVendorExtractor
04-11 15:17:15.067  1328  1526 D ASFExtractor: [ASF]mtk_asf_extractor_recognize OUT
04-11 15:17:15.068  1328  1526 D FlvParser: IsflvFile:not FLV file, TAG=
04-11 15:17:15.079  1328  1526 D MtkAVIExtractor: SniffAVI_internal() return false(line6282)
04-11 15:17:15.079  1328  1526 I OgmExtractor: [ogm]SniffVendorExtractor IN
04-11 15:17:15.079  1328  1526 E OgmExtractor: search Ogm signature fail
04-11 15:17:15.079  1328  1526 E OgmExtractor: Sniff:parseOgmHeader fail,isVorbisExist=0
04-11 15:17:15.079  1328  1526 D ESExtractor: SniffES:unknown format
04-11 15:17:15.079  1328  1526 D MtkMP4Extractor: Supported mpeg4 through BetterSniffMPEG4.
04-11 15:17:15.079  1328  1526 D MtkMP4Extractor: return true confidence: 1.400000
04-11 15:17:15.080  1328  1526 I AC3Extractor: SniffVendorExtractor AC3 return false
04-11 15:17:15.080  1328  1526 V DTSExtractor: SniffDTS
04-11 15:17:15.080  1328  1526 D DTSExtractor: SniffVendorExtractor DTS return false
04-11 15:17:15.080  1328  1526 D APEExtractor: SniffAPE++
04-11 15:17:15.080  1328  1526 D APEExtractor: getAPEInfo 0, 0
04-11 15:17:15.080  1328  1526 D APEExtractor: SniffAPE FALSE
04-11 15:17:15.080  1328  1526 D MPEG2TSExtractor: TS SniffVendorExtractor in
04-11 15:17:15.081  1328  1526 D MPEG2TSExtractor: TS SniffVendorExtractor return false
04-11 15:17:15.081  1328  1526 D MPEG2PSExtractor: SniffMPEG2PS:[IN]
04-11 15:17:15.102  1328  1526 D MPEG2PSExtractor: SniffMPEG2PS:[OUT] not PS stream
04-11 15:17:15.102  1328  1526 D FLACExtractor: [FLAC] SniffVendorExtractor return false
04-11 15:17:15.103  1328  1526 I WAVExtractor: SniffWAV_MTK
04-11 15:17:15.103  1328  1526 D WAVExtractor: SniffWAV return FALSE Header is : 0 0 0 32 105 115 111 109
04-11 15:17:15.104  1328  1526 D ASFExtractor: mime:video/mp4. Line:3192
04-11 15:17:15.106  1328  1526 D MP3Extractor: mime:video/mp4. Line:862
04-11 15:17:15.108  1328  1526 D MKV     : [MKV]VendorExtractorFactory
04-11 15:17:15.109  1328  1526 D ESExtractor: [VES]VendorExtractorFactory in
04-11 15:17:15.110  1328  1526 D MtkMP4Extractor: [MP4]new MPEG4Extractor 
04-11 15:17:15.110  1328  1526 D MtkMP4Extractor: sys.mtk.support.dvhdr false
04-11 15:17:15.110  1328  1526 D MediaExtractor: Create vendor extractor for 'video/mp4'
04-11 15:17:15.111  1328  1526 D MtkMP4Extractor: display width 853, height 480
04-11 15:17:15.111  1328  1526 D MtkMP4Extractor: timeScale 12800
04-11 15:17:15.111  1328  1526 D MtkMP4Extractor: duration 128000
04-11 15:17:15.111  1328  1526 D MtkMP4Extractor: set kKeyDuration 10000000us
04-11 15:17:15.111  1328  1526 E MtkMP4Extractor: SubType: vide
04-11 15:17:15.111  1328  1526 D MtkMP4Extractor: *** coding='avc1' width=640 height=480 dref=1
04-11 15:17:15.111  1328  1526 D MtkMP4Extractor: numSyncSamples 5
04-11 15:17:15.111  1328  1526 D MtkMP4Extractor: defaultSampleSize 0, sampleCount 250
04-11 15:17:15.111  1328  1526 D MtkMP4Extractor: Calculate frameRate: duration 10000000, sampleCount 250 => frameRate 25
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: verifyTrack(): Found frameRate 25
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: verifyTrack(video/avc) OK.
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: display width 0, height 0
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: timeScale 48000
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: duration 481280
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: set kKeyDuration 10026666us
04-11 15:17:15.112  1328  1526 E MtkMP4Extractor: SubType: soun
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: *** refIndex 1, channels 2, sampleSize 16, sampleRate 48000, version 0
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: *** coding='mp4a' 2 channels, bitWidth 16, sampleRate 48000
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: objectTypeIndication = 0x40
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: objectType 2 channelNum 2, sampleRate 48000/0
04-11 15:17:15.112  1328  1526 D MtkMP4Extractor: defaultSampleSize 0, sampleCount 470
04-11 15:17:15.113  1328  1526 D MtkMP4Extractor: verifyTrack(): Dual Mono false, SBR false
04-11 15:17:15.114  1328  1526 D MtkMP4Extractor: verifyTrack(): Dual Mono false, SBR false
04-11 15:17:15.115  1328  1526 D MtkMP4Extractor: verifyTrack(): Dual Mono false, SBR false
04-11 15:17:15.116  1328  1526 D MtkMP4Extractor: verifyTrack(): Dual Mono false, SBR false
04-11 15:17:15.117  1328  1526 D MtkMP4Extractor: verifyTrack(): Dual Mono false, SBR false
04-11 15:17:15.117  1328  1526 D MtkMP4Extractor: verifyTrack(): Dual Mono false, SBR false
04-11 15:17:15.119  1328  1526 D MtkMP4Extractor: verifyTrack(): Dual Mono false, SBR false
04-11 15:17:15.119  1328  1526 D MtkMP4Extractor: verifyTrack(audio/mp4a-latm) OK.
04-11 15:17:15.119  1328  1526 E MtkMP4Extractor: SubType: mdir
04-11 15:17:15.125  1334  2145 D NuPlayerDriver: notifyListener_l(0xa77b28c0), (5, 853, 480, -1), loop setting(0, 0)
04-11 15:17:15.126  1328  3506 D MtkMP4Extractor: + start track[2] audio/mp4a-latm mWantsNALFragments 0
04-11 15:17:15.126  1328  3506 D MtkMP4Extractor: trID: (int32_t) 2, srte: (int32_t) 48000, pcmT: (int32_t) 1, mxBr: (int32_t) 101191, mime: (char*) audio/mp4a-latm, lang: (char*) eng, inpS: (int32_t) 1487, esds: (unknown type 1702061171, size 42), dura: (int64_t) 10026666, dWid: (int32_t) 0, dHgt: (int32_t) 0, bwid: (int32_t) 16, brte: (int32_t) 101191, aaot: (int32_t) 2, #chn: (int32_t) 2
04-11 15:17:15.126  1328  3506 D MtkMP4Extractor: the max input size is 1487
04-11 15:17:15.126  1328  3506 D MtkMP4Extractor: add buffer with size 1487
04-11 15:17:15.127  1328  1526 D MtkMP4Extractor: + start track[1] video/avc mWantsNALFragments 0
04-11 15:17:15.127  1328  1526 D MtkMP4Extractor: widt: (int32_t) 640, trID: (int32_t) 1, sarW: (int32_t) 4, sarH: (int32_t) 3, mxBr: (int32_t) 485000, mime: (char*) video/avc, lang: (char*) eng, inpS: (int32_t) 39651, heig: (int32_t) 480, frmR: (int32_t) 25, dura: (int64_t) 10000000, dWid: (int32_t) 853, dHgt: (int32_t) 480, brte: (int32_t) 482215, avcc: (unknown type 1635148643, size 45)
04-11 15:17:15.127  1328  1526 D MtkMP4Extractor: the max input size is 39689
04-11 15:17:15.127  1328  1526 D MtkMP4Extractor: add buffer with size 39689
04-11 15:17:15.128  1334  2145 D NuPlayerDriver: notifyListener_l(0xa77b28c0), (1, 0, 0, -1), loop setting(0, 0)

Can't seem to figure out what could be causing the issue of frame freeze.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source