Opened 10 years ago

Closed 10 years ago

#6285 closed patch (fixed)

Skip-back causes the livetv to start near the beginning

Reported by: Natron Owned by: Isaac Richards
Priority: minor Milestone: 0.22
Component: MythTV - Video Playback Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Instead of just skipping back 5 seconds, the livetv recording skips back to the beginning of the recording while the osd time only skips 5 seconds. Attached is a patch that solves this problem for me. I dont know if the two removed lines are still needed in some cases.

Attachments (6)

skip.patch (503 bytes) - added by Natron 10 years ago.
seek.log (2.9 KB) - added by Natron 10 years ago.
-v playback during seek
seek1.log (2.8 KB) - added by natron 10 years ago.
another piece of log during a failed skip back
livetv_keyframedist.diff (1.2 KB) - added by Shane Shrybman 10 years ago.
seek2.log (26.7 KB) - added by Natron 10 years ago.
livetv_keyframedist2.diff (1.5 KB) - added by Shane Shrybman 10 years ago.

Download all attachments as: .zip

Change History (15)

Changed 10 years ago by Natron

Attachment: skip.patch added

comment:1 Changed 10 years ago by Shane Shrybman

Status: newinfoneeded_new

This sounds like it could be a seek related problem. What version of myth are you running?

Could you try the patch on #6169 instead of your patch and report if the problem is solved?

A mythfrontend log with -v playback would be helpful as well.

comment:2 Changed 10 years ago by Natron

i'm running trunk at about 20'030. will do an update now an apply the patch. i will also attach the relevant log output. should have done that earlier, sorry

Changed 10 years ago by Natron

Attachment: seek.log added

-v playback during seek

comment:3 Changed 10 years ago by Natron

I tried the patch from #6169 but the Problem is still persistent. Shall I collect more logging output?

Changed 10 years ago by natron

Attachment: seek1.log added

another piece of log during a failed skip back

comment:4 Changed 10 years ago by Shane Shrybman

Milestone: unknown0.22
Version: unknownhead

Yeah, another -v playback log that that includes the log messages from the startup of playback and the seek might be useful. Also what type of encoder/capture card is being used?

comment:5 Changed 10 years ago by Shane Shrybman

Ok, I think there is a race concerning the setting of the keyframedist when livetv is started.

The race is between the backend recorder inserting the initial position map into the DB and the frontend retrieving that position map and setting keyframedist via SyncPositionMap?(). When the frontend fails to get the position map the first time it attempts to fall back to ffmpeg seeking which is not supported for livetv.

The attached patch addresses this by adding a few checks for livetv and a check to ensure keyframedist is set correctly before it is used.

Changed 10 years ago by Shane Shrybman

Attachment: livetv_keyframedist.diff added

comment:6 Changed 10 years ago by Natron

With this patch, it doesn't start from the beginning anymore but it also does not skip back the five seconds. Attached is a more complete log with the patch applied. I tried to skip back multiple times.

It doesn't happen on every livetv, but if it does, it happens until I restart livetv. If it skips properly, it will work for the whole livetv recording.

Changed 10 years ago by Natron

Attachment: seek2.log added

comment:7 Changed 10 years ago by Shane Shrybman

Hmm, the seek2.log shows that the frontend is not getting a position map from the DB.

Attached is a new patch to replace the last patch. It will make additional attempts to retrieve the position map from the DB.

Changed 10 years ago by Shane Shrybman

Attachment: livetv_keyframedist2.diff added

comment:8 Changed 10 years ago by Natron

This patch seems to solve the problem.

Thank you

comment:9 Changed 10 years ago by shane

Resolution: fixed
Status: infoneeded_newclosed

(In [20192]) Closes #6285 Make additional attempts to retrieve the position map for livetv.

Note: See TracTickets for help on using tickets.