Opened 4 years ago

Closed 3 years ago

Last modified 3 years ago

#12717 closed Bug Report - General (fixed)

LiveTV stutters until a channel change

Reported by: Neil Salstrom <salstrom@…> Owned by: JYA
Priority: minor Milestone: 29.0
Component: MythTV - General Version: 0.28.0
Severity: medium Keywords: LiveTV stutter
Cc: pbennett@… Ticket locked: no

Description

LiveTV will stutter until the channel is changed. From that point on playback is fine. Pausing or skip back of TV buffer does not fix the issue, only changing the channel. Playback during the stuttering displays the following in the log:

2016-04-09 11:49:52.640405 I Player(0): A/V predict drop frame, dropping frame to catch up. 2016-04-09 11:49:52.640434 I Player(0): Video is 12.0553 frames ahead of audio, doubling video frame interval to slow down.

Version info:

mythfrontend --version Please attach all output as a file in bug reports. MythTV Version : v0.28-rc1-23-g61e022d MythTV Branch : fixes/0.28 Network Protocol : 88 Library API : 0.28.20160309-1 QT Version : 5.2.1 Options compiled in:

linux profile use_hidesyms using_alsa using_pulse using_backend using_bdjava using_bindings_perl using_bindings_python using_bindings_php using_dvb using_frontend using_hdhomerun using_vbox using_libcrypto using_libdns_sd using_libfftw3 using_libxml2 using_lirc using_opengl using_opengl_video using_qtwebkit using_qtscript using_qtdbus using_sdl using_taglib using_v4l2 using_x11 using_xrandr using_xv using_profiletype using_systemd_notify using_bdjava using_bindings_perl using_bindings_python using_bindings_php using_fontconfig using_freetype2 using_mythtranscode using_opengl using_vdpau using_ffmpeg_threads using_libass using_libxml2

Attachments (3)

log3.txt (166.5 KB) - added by Neil Salstrom <salstrom@…> 4 years ago.
Log of LiveTV startup, channel change then change again to original channel.
mythplayer.cpp.patch (7.3 KB) - added by Neil Salstrom <salstrom@…> 4 years ago.
Reverts 0.27 commit f307a3d5e60b0054e1833127d417c6acfada3213 in 0.28
tv_play.cpp.patch (669 bytes) - added by Neil Salstrom <salstrom@…> 4 years ago.
Reverts 0.27 commit f307a3d5e60b0054e1833127d417c6acfada3213 in 0.28

Download all attachments as: .zip

Change History (12)

Changed 4 years ago by Neil Salstrom <salstrom@…>

Attachment: log3.txt added

Log of LiveTV startup, channel change then change again to original channel.

comment:1 Changed 4 years ago by Stuart Auchterlonie

Milestone: 0.280.29

Moving to 0.29

comment:2 Changed 4 years ago by Stuart Auchterlonie

Milestone: 0.2929.0

Milestone renamed

comment:3 Changed 4 years ago by Neil Salstrom <salstrom@…>

I had this same problem in 0.27 and it was fixed by reverting commit f307a3d5e60b0054e1833127d417c6acfada3213. I went through the 0.28 version of mythplayer.cpp and tv_play.cpp and discovered the changes which are in commit f307a3d5e60b0054e1833127d417c6acfada3213 were added back to 0.28.

I know next to nothing about programming, diff or patches but I modified the 0.28 versions of mythplayer.cpp and tv_play.cpp to remove what was in the 0.27 era commit. This fixed my stuttering problems in 0.28.

I attempted to make a patch file of my changes and have attached them here. No idea if my changes broke anything else but it fixed my stuttering problems!

Changed 4 years ago by Neil Salstrom <salstrom@…>

Attachment: mythplayer.cpp.patch added

Reverts 0.27 commit f307a3d5e60b0054e1833127d417c6acfada3213 in 0.28

Changed 4 years ago by Neil Salstrom <salstrom@…>

Attachment: tv_play.cpp.patch added

Reverts 0.27 commit f307a3d5e60b0054e1833127d417c6acfada3213 in 0.28

comment:4 Changed 4 years ago by Stuart Auchterlonie

Owner: set to JYA
Status: newassigned

Jya, any thoughts on this?

comment:5 Changed 3 years ago by Peter Bennett

Cc: pbennett@… added

comment:6 Changed 3 years ago by Peter Bennett

The original fix was from Lawrence Rust. It was committed by jya July 19, 2014 to master and fixes/0.27. It was reversed by jya October 13, 2014 because of stuttering until channel change. Since it was never reversed in master it made its way into 0.28.

Original commit to master -> 0e0e04ccadfcbeeedbeb5e6286c591caa33d8e62

Cherry pick to fixes/0.27 -> f307a3d5e60b0054e1833127d417c6acfada3213

Reverse in fixes/0.27 -> b97ea66199bce8394637d33f33d99b25906caa23

It looks like it should be reversed in master and fixes/0.28. Does anybody have any objections to me doing that?

comment:7 Changed 3 years ago by Mark Spieth

I see 3 possible problems with the original commit:

  • most likely: GetTrackCount?(video) may be wrong/0 due to subtle errors thus causing the stream in question never to recover
  • 2nd likely: when the video buffers fill (bDisplayFrame), displaying no longer happens causing a backlog and preventing AVsync from doing its job. This would be repeatable for each channel viewed as the AV delay would be a factor.
  • less likely: PauseAudioUntilBuffered? could go before UnpauseLiveTV. This would make it less likely to require resync immediately after starting.

The rest appear to fine or cosmetic.

comment:8 Changed 3 years ago by Jean-Yves Avenard <jyavenard@…>

Resolution: fixed
Status: assignedclosed

In d43d8b1ff4f689a3b854ebbdaa2cd40b242be53c/mythtv:

Revert "Player: Improve low bit rate / high latency stream playback"

This reverts commit f307a3d5e60b0054e1833127d417c6acfada3213.

Cause stutter until channel changes

(cherry picked from commit b97ea66199bce8394637d33f33d99b25906caa23)
Signed-off-by: Peter Bennett <pbennett@…>

Fixes #12717

comment:9 Changed 3 years ago by Jean-Yves Avenard <jyavenard@…>

In e5ce2730b1a62c2e36906c7cd4ac2fa8043eedcf/mythtv:

Revert "Player: Improve low bit rate / high latency stream playback"

This reverts commit f307a3d5e60b0054e1833127d417c6acfada3213.

Cause stutter until channel changes

(cherry picked from commit b97ea66199bce8394637d33f33d99b25906caa23)
Signed-off-by: Peter Bennett <pbennett@…>

Fixes #12717

Note: See TracTickets for help on using tickets.