Opened 10 years ago

Closed 9 years ago

#6612 closed patch (fixed)

LiveTV: Channel Changing Failure

Reported by: tralph11@… Owned by: Shane Shrybman
Priority: minor Milestone: 0.24
Component: MythTV - Video Playback Version: head
Severity: low Keywords:
Cc: Ticket locked: no

Description

While running current trunk (20682) changing channels frequently causes the frontend to exit playback. In this particular case the backend never creates the actual recording although it appears the dummy recording exists.

Attachments (12)

mbe_fail_ch_change.log (143.2 KB) - added by tralph11@… 10 years ago.
mythbackend log using -v record,channel,siparser
mfe_fail_ch_change.log (146.5 KB) - added by tralph11@… 10 years ago.
mythfrontend log using -v playback
LiveTV_DTV_ringbuffer_check_debug.diff (2.6 KB) - added by Shane Shrybman 10 years ago.
Add ringbuffer check to mpeg and dvb recorders for LiveTV
DTV_StartNewFile_debug.diff (4.4 KB) - added by Shane Shrybman 10 years ago.
Implement StartNewFile?() for DTV recorders (Writes first PAT/PMT to file)
NVP_video_actually_paused_fix.diff (836 bytes) - added by Shane Shrybman 10 years ago.
Fix for video_actually_paused state and don't check PrebufferEnoughFrames?() when paused.
TVRec_EventLoop_timeout_while_WaitingForSignal.diff (785 bytes) - added by Shane Shrybman 10 years ago.
Shorten the timeout for the main TVRec EventLoop? wait when waiting for signal
LiveTV_DTV_ringbuffer_check_debug2.diff (2.2 KB) - added by Shane Shrybman 10 years ago.
Replaces previous LiveTV_DTV_ringbuffer_check_debug.diff patch
dvbstreamhandler_RemoveListener_tryLock.diff (659 bytes) - added by Shane Shrybman 10 years ago.
Debugging patch for dvbstreamhandler (possible _listener_lock contention)
mbe_trylock_failure.log.gz (46.3 KB) - added by tralph11@… 10 years ago.
mythbackend log for tryLock patch using -v record,channel,siparser
NVP_PrebufferEnoughFrames_tweaks.diff (1.6 KB) - added by Shane Shrybman 10 years ago.
Wait a little longer for prebuffering
TVRec_fix_switching_buffer_race.diff (738 bytes) - added by Shane Shrybman 10 years ago.
Fix race causing short 1-2 second files in LiveTV
LiveTV_no_previewgen_for_dummy.diff (605 bytes) - added by Shane Shrybman 10 years ago.

Download all attachments as: .zip

Change History (19)

Changed 10 years ago by tralph11@…

Attachment: mbe_fail_ch_change.log added

mythbackend log using -v record,channel,siparser

Changed 10 years ago by tralph11@…

Attachment: mfe_fail_ch_change.log added

mythfrontend log using -v playback

comment:1 Changed 10 years ago by Shane Shrybman

Milestone: unknown0.22
Owner: changed from Isaac Richards to Shane Shrybman
Severity: mediumlow
Status: newaccepted

Changed 10 years ago by Shane Shrybman

Add ringbuffer check to mpeg and dvb recorders for LiveTV

Changed 10 years ago by Shane Shrybman

Attachment: DTV_StartNewFile_debug.diff added

Implement StartNewFile?() for DTV recorders (Writes first PAT/PMT to file)

comment:2 Changed 10 years ago by Shane Shrybman

Type: defectpatch

Two test patches attached. Both are not in their final states, they contain extra debugging.

This could help both DVB and HD PVR LiveTV users (other DTV recorders not done yet).

If you test please report success/failure and post backend log with -v record.

Changed 10 years ago by Shane Shrybman

Fix for video_actually_paused state and don't check PrebufferEnoughFrames?() when paused.

Changed 10 years ago by Shane Shrybman

Shorten the timeout for the main TVRec EventLoop? wait when waiting for signal

Changed 10 years ago by Shane Shrybman

Replaces previous LiveTV_DTV_ringbuffer_check_debug.diff patch

Changed 10 years ago by Shane Shrybman

Debugging patch for dvbstreamhandler (possible _listener_lock contention)

Changed 10 years ago by tralph11@…

Attachment: mbe_trylock_failure.log.gz added

mythbackend log for tryLock patch using -v record,channel,siparser

comment:3 Changed 10 years ago by shane

(In [20733]) Refs #6612. Fix for NVP video_actually_paused state flutter.

When paused, the video_actually_paused variable was set to false at the top of NVP::DisplayNormalFrame?() then immediately set to true in DisplayPauseFrame?(). Fix by having DisplayNormalFrame?() set it based on paused variable.

Also, do not check PrebufferEnoughFrames?() when paused, this could consume all or most of our prebuffering attempts and then we fail (too) early when the file becomes available, this is more prevalent in LiveTV.

Thanks to elmojo, stuarta and GreyFoxx? for testing.

Changed 10 years ago by Shane Shrybman

Wait a little longer for prebuffering

Changed 10 years ago by Shane Shrybman

Fix race causing short 1-2 second files in LiveTV

Changed 10 years ago by Shane Shrybman

comment:4 Changed 10 years ago by shane

(In [20781]) Refs #3789, Refs #6612. Fix race when switching LiveTV buffers.

comment:5 Changed 10 years ago by shane

(In [20782]) Refs #6612. Do not bother with preview generation for dummy files.

comment:6 Changed 10 years ago by Stuart Auchterlonie

Milestone: 0.220.24

Bumping open 0.22 milestone tickets to 0.24

comment:7 Changed 9 years ago by Shane Shrybman

Resolution: fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.