summaryrefslogtreecommitdiff
path: root/src/lib/player.h
AgeCommit message (Collapse)Author
2018-02-24Speed some operations by re-using the last PlayerVideo but withCarl Hetherington
updated metadata (where possible). Helps with #1194.
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-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.
2018-01-15Add comment.Carl Hetherington
2018-01-02A previous commit took care to make Decoder::position() not be updatedCarl Hetherington
if the data that was emitted from the decoder was not taken by the player. This means that when the decoder moves into its end trim the position will stay where it is (since the player does not take the data). I can't see the point of doing this; the only use of Decoder::position() is to decide what to pass() next (I think). It is also inconvenient because we would like to check Decoder::position() to decide whether to stop passing a decoder since it's in its end trim (not doing this causes #1154).
2017-08-30Fix incorrect reel lengths in some cases; account for emitted data being ↵Carl Hetherington
rejected by the player, and for initial audio not to be at time 0.
2017-08-14Basics of forced reduction of JPEG2000 decode resolution.Carl Hetherington
2017-07-12Add some tests; fix failure to make DCP when there is a bit of audio right ↵Carl Hetherington
at the end of the film (with no corresponding video).
2017-07-11Remove unused Player::_ignore_audio. Ignore positionCarl Hetherington
of things that we are ignoring; this fixes strange behaviour (delays) when analysing audio as it used to keep pass()ing decoders to get data that would never come.
2017-06-29Fixes for silence in projects, various cleanups.Carl Hetherington
2017-06-23Add a OV/VF test; tidy up a bit.Carl Hetherington
2017-05-21Do resampling in AudioDecoder rather than Player.Carl Hetherington
This fixes the problem where the decoder's position would not take into account that all samples pushed into the resampler do not always immediately come out. This would result in Player thinking that there would be gaps when there are not.
2017-05-16Re-merge _last_{video,audio}_time and _last_seek_time; fix _last_video to ↵Carl Hetherington
work correctly with different pieces.
2017-05-13Fill audio in the Player.Carl Hetherington
2017-05-11Remove unused declaration.Carl Hetherington
2017-05-08Fix up black-filling logic.Carl Hetherington
2017-05-08Player is not finished if it's still filling in blank space.Carl Hetherington
2017-05-08Small refactoring.Carl Hetherington
2017-05-08Pull ActiveSubtitles code out to a class.Carl Hetherington
2017-05-08Fix fill of timeline periods where there is no video.Carl Hetherington
2017-05-07Remove unused code.Carl Hetherington
2017-05-05Keep active subtitles around until the video they are on has been emitted.Carl Hetherington
2017-04-30Fix some cppcheck warnings.Carl Hetherington
2017-04-27Initial work on removing storage of subtitle times.Carl Hetherington
2017-04-23Tidy up _last_video_time to make it more like _last_audio_time.Carl Hetherington
2017-04-23Discard audio received before the time of the last accurate seek.Carl Hetherington
2017-04-19Several fixes to audio.Carl Hetherington
2017-04-19Fix crash brought on by previous.Carl Hetherington
2017-04-19Restore upmixer_a_test and fix resampler flushing.Carl Hetherington
2017-04-19Fix merging of audio in various circumstances.Carl Hetherington
2017-04-19Fix pull timing; fix units of ReelWriter::total_written_audio_frames.Carl Hetherington
2017-04-19Various fixes to push audio vaguely in the right direction.Carl Hetherington
2017-04-19Fix bug in gap-filling; rename _last_video_time -> _last_time.Carl Hetherington
2017-04-19Attempt to tidy up internal APIs slightly.Carl Hetherington
2017-04-19Remove some unused bits.Carl Hetherington
2017-04-19Implement subtitles.Carl Hetherington
2017-04-19Various bits; preview video seems to work.Carl Hetherington
2017-04-19Various work on the audio code.Carl Hetherington
2017-04-19Basic grunt-work, untested and unfinished, but it compiles.Carl Hetherington
2016-07-01Make the preview respond to changes in subtitle line spacing.Carl Hetherington
2016-05-25No-op; fix GPL address and use the explicit-program-name version.Carl Hetherington
2016-05-18Fix Player::overlaps for the new world order.Carl Hetherington
2015-10-26Reinstate subtitle speed-up patch 526fd6de4c80a7ac9614a1cb0209efff7b171cd5 ↵Carl Hetherington
but only for preview.
2015-10-22Various multi-reel fixes.Carl Hetherington
* _video_frames_enqueued -> _position * some int -> Frame replacements * Call Writer::ref_write when there is nothing to encode / write for one frame. * Assume Encoder::encode is called once per output video frame. * Possibly correct some off-by-1 overlap bugs. * Don't reset _last_written on FAKE write as I believe there is no need.
2015-10-12Rename split-by-video content slightly; fix referencing to multi-reel DCPs.Carl Hetherington
2015-10-04Fix subtitle timing under trim.Carl Hetherington
2015-09-16Back-end for very basic and hacky VF support for a DCP imported as content.Carl Hetherington
2015-09-09Use SRC_LINEAR for speed when analysing audio (#685).Carl Hetherington
2015-09-05Don't bother with audio in the film viewer.Carl Hetherington