Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#11579 closed Patch - Bug Fix (fixed)

Slideshow DVDs do not play back correctly

Reported by: peper03@… Owned by: Richard <peper03@…>
Priority: minor Milestone: 0.27
Component: MythTV - DVD Playback Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Slideshow DVDs (i.e. when a single video frame should be displayed for an arbitrary length of time) do not play back correctly (the audio track skips very quickly). This makes playback of audio DVDs impossible.

Playback of slideshows in menus works but CPU usage rises to 100% due to the fact that the video buffers are usually used to regulate the processing of new audio/video packets. As there are always video buffers available, the audio buffers are filled with several seconds worth of data (depending on configuration this can be up to around 15 seconds) and the decoding loop spins rather than sleeps until space becomes available.

The attached patches fix this problem by generating dummy video frames as needed. They also introduce a 'DVD context' class to provide a snapshot of DVD playback, which can be passed through the chain from the ringbuffer to the decoder to (in the future) the player code. This allows the different stages to make decisions based on the state of the DVD data at the time any given frame was originally read. The ringbuffer is sometimes around 2 seconds ahead of the player, so if the player queries the current state of a value (e.g. playback time) from the ringbuffer, it may get a value that corresponds to the frame it will display in 2 seconds, not the frame it is currently displaying.

The context class will be extended in future patches.

Attachments (4)

0001-Add-passing-of-DVD-NAV-blocks-to-ffmpeg.patch (18.0 KB ) - added by peper03@… 12 years ago.
Corresponds to https://github.com/FFmpeg/FFmpeg/commit/9cde9f7
0002-Add-DVD-context-class-to-encapsulate-the-state-of-th.patch (16.0 KB ) - added by peper03@… 12 years ago.
0003-Added-more-consistent-handling-of-slide-shows-i.e.-i.patch (14.8 KB ) - added by peper03@… 12 years ago.
0004-Handle-seeking-within-slideshows.patch (21.5 KB ) - added by peper03@… 12 years ago.

Download all attachments as: .zip

Change History (9)

by peper03@…, 12 years ago

by peper03@…, 12 years ago

by peper03@…, 12 years ago

comment:1 by peper03@…, 12 years ago

Sample DVD images added to stuartm's repository - StillFeatureWithAudio.iso and Rach_Sonata2.iso

comment:2 by Richard <peper03@…>, 12 years ago

In aa1fb8fc45c01684e1d68f77fd0084f36f39e431/mythtv:

Error: Processor CommitTicketReference failed
GIT backend not available

comment:3 by Richard <peper03@…>, 12 years ago

In 4df1612e567c1c5e2f19fc312ffef4532fb61bae/mythtv:

Error: Processor CommitTicketReference failed
GIT backend not available

comment:4 by Richard <peper03@…>, 12 years ago

Owner: set to Richard <peper03@…>
Resolution: fixed
Status: newclosed

In b670ba578f5571ca29b96a2bd30bf226287f1cb6/mythtv:

Error: Processor CommitTicketReference failed
GIT backend not available

comment:5 by peper03, 12 years ago

Milestone: unknown0.27
Note: See TracTickets for help on using tickets.