summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2019-05-31 19:52:26 +0200
committerwm4 <wm4@nowhere>2019-09-19 20:37:05 +0200
commite8a051b3cb3da739ff79cfa8450780a157374558 (patch)
treea9139cbcd39fc11ee7829fe59ec2d6c574f16cc1 /video
parentd55c2a1243af1446ec40b5d02a5ebfe408b2f81b (diff)
downloadmpv-e8a051b3cb3da739ff79cfa8450780a157374558.tar.bz2
mpv-e8a051b3cb3da739ff79cfa8450780a157374558.tar.xz
f_decoder_wrapper: reorganize, fix EDL/ordered chapters backward playback
Before this commit, there was a single process_decoded_frame() function. It handled various aspects of dealing with a newly decoded frame. Move some of these to a separate process_output_frame() function. This new function is called in the order the frames are returned to the playback core. Some correct_audio_pts() (was process_audio_frame()) becomes slightly less awkward due to this, and the timestamp smoothing can actually work in backward playback mode now (thus moving p->pts out of reset_decoder()). Behavior for normal playback also changes subtly. This shouldn't matter in sane cases, but if you mix broken files, --no-correct-pts, and timeline stuff, differences in behavior might be visible. Timeline clipping (EDL/ordered chapters) works now, because it's done before "transforming" the timestamps. Audio timestamp smoothing happens after it, which is a behavior change, but should be more correct. This still runs crazy_video_pts_stuff() before everything else. On the pther hand, --no-correct-pts or missing timestamp processing is done last. But these things didn't really work with timeline before.
Diffstat (limited to 'video')
0 files changed, 0 insertions, 0 deletions