Change how video timing is done.
authorCarl Hetherington <cth@carlh.net>
Thu, 29 Sep 2022 08:17:50 +0000 (10:17 +0200)
committerCarl Hetherington <cth@carlh.net>
Wed, 29 Nov 2023 20:19:55 +0000 (21:19 +0100)
commitdf69164b987301b348477ccf1c10018fb227b6eb
tree9d114571500468b7aa29d5815813df54741d590b
parentd3ca0d82e3a44765ff84e600bc4644c0f389e4f3
Change how video timing is done.

This commit changes the approach with video timing.  Previously,
we would (more-or-less) try to use every video frame from the content
in the output, hoping that they come at a constant frame rate.

This is not always the case, however.  Here we preserve the PTS
of video frames, and then when one arrives we output whatever
DCP video frames we can (at the regular DCP frame rate).

Hopefully this will solve a range of sync problems, but it
could also introduce new ones.
20 files changed:
src/lib/content_video.h
src/lib/dcp_decoder.cc
src/lib/ffmpeg_decoder.cc
src/lib/image_decoder.cc
src/lib/player.cc
src/lib/player.h
src/lib/player_video.cc
src/lib/player_video.h
src/lib/shuffler.cc
src/lib/util.cc
src/lib/video_content.cc
src/lib/video_content.h
src/lib/video_decoder.cc
src/lib/video_decoder.h
src/lib/video_mxf_decoder.cc
test/client_server_test.cc
test/content_test.cc
test/ffmpeg_decoder_seek_test.cc
test/low_bitrate_test.cc
test/shuffler_test.cc