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)

Changed 12 years ago by peper03@…

Changed 12 years ago by peper03@…

Changed 12 years ago by peper03@…

Changed 12 years ago by peper03@…

comment:1 Changed 12 years ago by peper03@…

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

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

In aa1fb8fc45c01684e1d68f77fd0084f36f39e431/mythtv:

Error: Processor CommitTicketReference failed
GIT backend not available

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

In 4df1612e567c1c5e2f19fc312ffef4532fb61bae/mythtv:

Error: Processor CommitTicketReference failed
GIT backend not available

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

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

In b670ba578f5571ca29b96a2bd30bf226287f1cb6/mythtv:

Error: Processor CommitTicketReference failed
GIT backend not available

comment:5 Changed 12 years ago by peper03

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