OpenSageTV / sagetv-miniclient

SageTV MiniClient for Android TV (and phone/tablet)
http://forums.sagetv.com/forums/showthread.php?t=62439
Apache License 2.0
19 stars 14 forks source link

Long pauses skips forward length of time paused and back again #71

Closed mackbagg closed 6 years ago

mackbagg commented 7 years ago

Whenever I pause a show using the ijkplayer it skips the timeline forward the length of time it has been paused and then jumps back again. This stops the show playing if you pause longer than the length of time you have left.

I can mitigate the problem if I remember to skip back once before unpausing which also sounds like it could be a way to semi-solve it. You could save the pause start time and if it is longer than some minimum you jump back and then play.

This is happening every time when playing shows on both my Mi Boxes. I am also using the software decoder but that doesn't seem to matter.

stuckless commented 7 years ago

I think I found "why" the pauses cause an issue for LiveTV and and some recorded content. I'm just leaving a comment here so that I can remember it later, when I go to fix it.

https://github.com/OpenSageTV/sagetv-miniclient/blob/master/android-shared/src/main/java/sagex/miniclient/android/video/ijkplayer/IJKMediaPlayerImpl.java#L61

getPlayerMediaTimeMillis always add the server start time from the initial requrest, and when you have paused, then when it appends that to the current time, you get this situation where your time is past the end of the media.

galeforcesage commented 6 years ago

A little more information that might help. This problem almost always occurs for me when I'm remote. I can't skip ahead at all (shows that it is going to but resumes playing without moving ahead). When I am on the local LAN this never happens. I've tried when I'm remote on an encrypted bridge tunnel and it still happens. Must be something with the added delay to being remote (when I bridge I'm on the local LAN from an IP perspective but it has greater latency)

stuckless commented 6 years ago

@galeforcesage Does this happen with ExoPlayer as well? Just wondering because I had to add some logic in ExoPlayer when seeking, and I was wondering if this problem existed there now.

galeforcesage commented 6 years ago

I’m at my son’s house (bridged to mine with access to my SageTV – Windows 9.17) but he only has amazon fire TV. So Exoplayer doesn’t work.

I’ll try later tonight on Nvidia Shield or Android T95k box when I get home (to access his SageTV – linux 9.1.7).

galeforcesage commented 6 years ago

Tried exoplayer on Samsung s6 but can’t use exoplayer there either.

So here’s the log for the original ffwd not working problem:

Wed 11/1 19:13:30.743 [VideoFrame-434556444553@cff2a4] VF processing job VFJob[TimeAdjust r=0.0 t=10000 file=null ifn=null] nPlayin=true

Wed 11/1 19:13:30.743 [VideoFrame-434556444553@cff2a4] VF processing on UI Thread VFJob[TimeAdjust r=0.0 t=10000 file=null ifn=null]

Wed 11/1 19:13:30.744 [VideoFrame-434556444553@cff2a4] VideoFrame.timeSelected(Tue 10/31 22:36:05.022, true) currFile=MediaFile[id=5678216 A[5391481,5388120,"The Tonight Show Starring Jimmy Fallon",20452@1031.22:34,63,T] mask=TV host=ASUS-MB encodedBy=HDHomeRun HDHR4-2US Tuner xxxxxxxx-0 on 127.0.0.1:9000 WMAQDT format=MPEG2-TS 0:00:01 3512 kbps [#0 Video[MPEG2-Video 29.97003 fps 1920x1080 16:9 interlaced id=0100]#1 Audio[AC3 48000 Hz 6 channels 384 kbps MAIN idx=1 id=0101 eng]#2 Audio[AC3 48000 Hz 2 channels 128 kbps idx=2 id=0102 spa]] I:\SageTV9\TheTonightShowStarringJimmyFallon-S05E22-MillieBobbyBrownKellyClarkson-5391481-0.ts, Seg0[Tue 10/31 22:34:00.022-Tue 10/31 23:37:00.003]]

Wed 11/1 19:13:30.744 [VideoFrame-434556444553@cff2a4] VideoFrame.timeSelected2(Tue 10/31 22:36:05.022, true) currFile=MediaFile[id=5678216 A[5391481,5388120,"The Tonight Show Starring Jimmy Fallon",20452@1031.22:34,63,T] mask=TV host=xxxxx encodedBy=HDHomeRun HDHR4-2US Tuner 104D0AA7-0 on 127.0.0.1:9000 WMAQDT format=MPEG2-TS 0:00:01 3512 kbps [#0 Video[MPEG2-Video 29.97003 fps 1920x1080 16:9 interlaced id=0100]#1 Audio[AC3 48000 Hz 6 channels 384 kbps MAIN idx=1 id=0101 eng]#2 Audio[AC3 48000 Hz 2 channels 128 kbps idx=2 id=0102 spa]] I:\SageTV9\TheTonightShowStarringJimmyFallon-S05E22-MillieBobbyBrownKellyClarkson-5391481-0.ts, Seg0[Tue 10/31 22:34:00.022-Tue 10/31 23:37:00.003]] realDur=0

Wed 11/1 19:13:30.745 [VideoFrame-434556444553@cff2a4] seeking numpushbuffers=1667 seekTime=125000

Wed 11/1 19:13:30.745 [VideoFrame-434556444553@cff2a4] Seeking within the push buffer limit crmt=115000 to=0 lpt=290133 seek=125000

Wed 11/1 19:13:30.745 [VideoFrame-434556444553@cff2a4] seekPull0(125000)

Wed 11/1 19:13:30.745 [VideoFrame-434556444553@cff2a4] VF processing job null nPlayin=true

Wed 11/1 19:13:30.746 [VideoFrame-434556444553@cff2a4] isRec=false rd=3779981 base=125000 eos=false

Wed 11/1 19:13:30.746 [VideoFrame-434556444553@cff2a4] VF thread is now waiting for 1:00:54.731

stuckless commented 6 years ago

This should be fixed in 1.2.12