Change how video timing is done. v2.17.1
authorCarl Hetherington <cth@carlh.net>
Thu, 29 Sep 2022 08:17:50 +0000 (10:17 +0200)
committerCarl Hetherington <cth@carlh.net>
Mon, 3 Oct 2022 23:10:48 +0000 (01:10 +0200)
commitfb2e821b36c4b50709f3a085131325b668d4ed57
tree009c675884993be8cd77c20080d3fc5b67f16956
parent95469c2bb15f490f7d3fbeaed9903bd0cbc13677
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