View Bug Details

IDProjectCategoryView StatusLast Update
0001790DCP-o-maticBugspublic2023-09-01 21:48
Reportercarl Assigned Tocarl  
PriorityimmediateSeverityblockReproducibilityalways
Status closedResolutionfixed 
Target Version2.16.0 
Summary0001790: A/V sync drifts with DVD-ripped input
Description

The video frame indices that get passed to video->emit in decode_video_packet aren't even contiguous; but there's already code which expects this and copes with it (in VideoDecoder::emit).

TagsNo tags attached.
Branch
Estimated weeks required
Estimated work requiredSmall

Activities

carl

2020-08-01 23:02

administrator   ~0003883

Last edited: 2020-08-01 23:13

It looks like it's the change to count video frames (rather than relying on FFmpeg's PTS) that break this. With some 29.97fps DVDs the file contains only the actual video frames for a 24fps source so if you count them everything goes completely awry.

Probably the best thing is to revert that change and then go back to the bug it fixed and try to fix it properly.

There are some questions, though:

  • if it's a 24fps file which is fiddled to 29.97 by some timestamp manipulation, where is the pull-up frame merging being done? Looking at the output of hacks/examine.py it's just 24fps with some wacky timestamps.
  • can we tell that it's a 24fps source and extract it as 24fps to avoid the whole pull-up/29.97 mess? could presumably count the frames.
  • don't 30fps DCPs made this way look terrible? presumably in the working case DoM is just adding some duplicate frames every so often?
  • how could this have been spotted with a test?

carl

2020-08-11 00:37

administrator   ~0003893

Believed fixed by b58ea0495d72d654161958e515dc6c5ba9992b80 and surrounding commits (master) and af680761cf7c3e97660e8e55c68f42e90b026bf9 and surrounding commits (v2.15.x).

carl

2020-08-11 00:38

administrator   ~0003894

Have sent links to the people who were desperate for a fix but heard nothing back, so I'll assume it's OK.

Bug History

Date Modified Username Field Change
2020-07-31 00:26 carl New Bug
2020-08-01 20:00 carl Description Updated
2020-08-01 20:00 carl Estimated work required => Undecided
2020-08-01 23:02 carl Note Added: 0003883
2020-08-01 23:13 carl Note Edited: 0003883
2020-08-01 23:23 carl Severity major => block
2020-08-01 23:24 carl Status new => confirmed
2020-08-01 23:24 carl Estimated work required Undecided => Small
2020-08-11 00:37 carl Note Added: 0003893
2020-08-11 00:38 carl Assigned To => carl
2020-08-11 00:38 carl Status confirmed => resolved
2020-08-11 00:38 carl Resolution open => fixed
2020-08-11 00:38 carl Note Added: 0003894
2023-09-01 21:48 carl Status resolved => closed