summaryrefslogtreecommitdiff
path: root/src/lib/shuffler.cc
AgeCommit message (Collapse)Author
2024-01-28Change how video timing is done.Carl Hetherington
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.
2021-05-01C++11 tidying.Carl Hetherington
2021-01-31More enum class additions.Carl Hetherington
2021-01-30Rename debug type THREED to THREED_D.Carl Hetherington
2021-01-07BOOST_FOREACH.Carl Hetherington
2021-01-07std::shared_ptrCarl Hetherington
2020-05-20Add a bit more debug logging to the player.Carl Hetherington
2020-03-02Fix weirdly-allowed misplaced bracket.Carl Hetherington
2020-03-01Remove unused LOG_DEBUG_DECODE and re-use it to add some 3D shuffler logging.v2.15.46Carl Hetherington
2019-02-13Fixes to 3D shuffler to fix #1463.Carl Hetherington
Make the shuffler longer; I've seen examples where the video and sound are over a second apart within the muxed file. Allow the shuffler to pass through complete missed frames; e.g. if the input is L1 R1 L3 R3 we can pass that through without worrying about the missing frame #2. Add a log warning if the shuffler fills: at this point, 3D sync may be lost.
2019-02-12White space.Carl Hetherington
2018-04-07Somewhat speculative shuffler fix for assertion failure.v2.13.13Carl Hetherington
2018-04-07Fix silly crash in shuffler.Carl Hetherington
2018-04-05Further adjustment of shuffler to cope with having sources for only one eye.v2.13.12Carl Hetherington
2018-04-05Remove believed-unnecessary check.Carl Hetherington
2018-04-05Wait for in-order input to shuffler before emitting anything, otherwiseCarl Hetherington
we emit a crucial frame and then fail to carry on because we miss it.
2018-04-05Tidy up assertion.Carl Hetherington
2018-02-23Fix implementation of delay in 7758260; it needs to apply toCarl Hetherington
anything passed to emit_video(), not just things that come from decoders.
2018-02-20Add a 2-frame `delay' on content arriving at the player to giveCarl Hetherington
subtitle content the chance to catch up. Fixes problems observed when overlaying a DCP subtitle onto an existing DCP and then seeking into the first subtitle. After the seek the decoder positions were: DCP: 0. subtitle: first subtitle time. This causes the DCP decoder to be pass()ed first and so the subtitle for the video frame has not arrived yet. I hope this does not cause unpredicted side effects...
2018-02-02Remove some debugging code.Carl Hetherington
2018-01-16In general the player assumes that it won't receive out of order video.Carl Hetherington
This clearly can happen with separate L/R sources. A pass in L might emit two frames which means the arrivals can't possibly be in order. This commit fixes this by introducing a Shuffler which all alternate-3D sources send their video to. The Shuffler re-orders things before they arrive at the player. It also fixes the code which inserts video frames before one that arrives after a gap. This didn't cope with 3D right before. The audio code solves a similar (perhaps the same?) problem with the AudioMerger; perhaps we should have a similar thing for video and make the player emit complete 3D frames. Should help with #976.