mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
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.
This commit is contained in:
@@ -464,8 +464,6 @@ Playback Control
|
||||
audio formats tend to have problems - there are hacks for dealing with
|
||||
them, which may or may not work.
|
||||
|
||||
- Function with EDL/mkv ordered chapters is obviously broken.
|
||||
|
||||
- Backward demuxing of subtitles is not supported. Subtitle display still
|
||||
works for some external text subtitle formats. (These are fully read into
|
||||
memory, and only backward display is needed.) Text subtitles that are
|
||||
@@ -473,7 +471,7 @@ Playback Control
|
||||
correctly.
|
||||
|
||||
- Some features dealing with playback of broken or hard to deal with files
|
||||
will be disabled (such as timestamp correction).
|
||||
will not work fully (such as timestamp correction).
|
||||
|
||||
- If demuxer low level seeks (i.e. seeking the actual demuxer instead of
|
||||
just within the demuxer cache) are performed by backward playback, the
|
||||
|
||||
Reference in New Issue
Block a user