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, 19 Oct 2022 12:44:01 +0000 (14:44 +0200)
commitf2e3522a9dcf7bd0a7a1f1073e45b4450e3b68f0
tree75be9f7188a4f8738d61624ef1c597212a0cbb7e
parenta84ee09e386d57aa80bbfaa67be02a6a96081933
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.
21 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/util.h
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