summaryrefslogtreecommitdiff
path: root/src/lib/player.h
AgeCommit message (Collapse)Author
2018-07-23Tidy up after mass rename.Carl Hetherington
2018-07-23More automated renaming.Carl Hetherington
ActiveCaptions -> ActiveText BitmapCaption -> BitmapText ContentCaption -> ContentText ContentTextCaption -> ContentStringText TextCaptionFileContent -> StringTextFileContent TextCaptionFileDecoder -> StringTextFileDecoder TextCaptionFile -> StringTextFile TextCaption -> StringText PlayerCaption -> PlayerText CaptionContent -> TextContent CaptionDecoder -> TextDecoder CaptionPanel -> TextPanel CaptionView -> TextView CaptionAppearanceDialog -> SubtitleAppearanceDialog CaptionType -> TextType
2018-07-23Commenting.v2.13.37Carl Hetherington
2018-07-23Get ccaps by asking the Player, rather than by listening to its emissions,Carl Hetherington
which is slightly cleaner and works when subtitles are emitted with an unknown end time. Also add CCAPs to the player.
2018-07-22On reflection showing CCAPs over the main picture doesn't make much sense.Carl Hetherington
2018-07-21Basics of multiple captions per content so that DCPContent canCarl Hetherington
hold subs and closed captions.
2018-07-20Key ActiveCaptions on a CaptionContent rather than a Piece.Carl Hetherington
2018-07-20Untested; allow viewing of subtitles or closed captions in the preview.Carl Hetherington
2018-07-19Clean up after previous commit.Carl Hetherington
2018-07-19Reword again: Text -> Caption and Plain -> Text.Carl Hetherington
sed -i "s/ActiveText/ActiveCaptions/g" src/lib/*.{cc,h} sed -i "s/active_text.h/active_captions.h/g" src/lib/*.{cc,h} sed -i "s/active_text.cc/active_captions.cc/g" src/lib/wscript mv src/lib/active_text.cc src/lib/active_captions.cc mv src/lib/active_text.h src/lib/active_captions.h sed -i "s/PlainTextFileContent/TextCaptionFileContent/g" src/lib/*.{cc,h} src/wx/*.cc sed -i "s/PlainTextFile/TextCaptionFile/g" src/lib/*.{cc,h} src/wx/*.cc sed -i "s/plain_text_file_content/text_caption_file_content/g" src/lib/*.{cc,h} src/lib/wscript src/wx/*.{cc,h} test/*.cc mv src/lib/plain_text_file_content.cc src/lib/text_caption_file_content.cc mv src/lib/plain_text_file_content.h src/lib/text_caption_file_content.h sed -i "s/PlainTextFileDecoder/TextCaptionFileDecoder/g" src/lib/*.{cc,h} sed -i "s/plain_text_file_decoder/text_caption_file_decoder/g" src/lib/*.{cc,h} src/lib/wscript src/wx/*.{cc,h} mv src/lib/plain_text_file_decoder.cc src/lib/text_caption_file_decoder.cc mv src/lib/plain_text_file_decoder.h src/lib/text_caption_file_decoder.h sed -i "s/PlayerText/PlayerCaption/g" src/lib/*.{cc,h} sed -i "s/player_text.cc/player_caption.cc/g" src/lib/wscript sed -i "s/player_text.h/player_caption.h/g" src/lib/*.{cc,h} mv src/lib/player_text.cc src/lib/player_caption.cc mv src/lib/player_text.h src/lib/player_caption.h sed -i "s/ContentPlainText/ContentTextCaption/g" src/lib/*.{cc,h} src/wx/*.{cc,h} sed -i "s/ContentBitmapText/ContentBitmapCaption/g" src/lib/*.{cc,h} src/wx/*.{cc,h} sed -i "s/PlainText/TextCaption/g" src/lib/*.{cc,h} test/*.cc sed -i "s/plain_text.h/text_caption.h/g" src/lib/*.{cc,h} mv src/lib/plain_text.h src/lib/text_caption.h
2018-07-19Get types into ReelWriter.Carl Hetherington
2018-07-19Text to player with types.Carl Hetherington
2018-07-19Partial conversion of PlayerSubtitles -> PlayerText and SubtitleString -> ↵Carl Hetherington
PlainText.
2018-07-19Remove old content_subtitle.Carl Hetherington
2018-07-19More renaming.Carl Hetherington
sed -i "s/emit_text/emit_plain/g" src/lib/*.cc src/lib/*.h sed -i "s/emit_image_start/emit_bitmap_start/g" src/lib/*.cc src/lib/*.h sed -i "s/emit_text_start/emit_plain_start/g" src/lib/*.cc src/lib/*.h sed -i "s/render_subtitles/render_text/g" src/lib/*.cc src/lib/*.h src/lib/wscript test/*.cc sed -i "s/ImageStart/BitmapStart/g" src/lib/*.cc src/lib/*.h sed -i "s/TextStart/PlainStart/g" src/lib/*.cc src/lib/*.h test/*.cc src/wx/*.cc sed -i "s/ImageSubtitle/BitmapText/g" src/lib/*.cc src/lib/*.h sed -i "s/text_subtitle/plain_text/g" src/lib/*.cc src/lib/*.h src/lib/wscript src/wx/*.cc src/wx/*.h test/*.cc sed -i "s/image_subtitle/bitmap_text/g" src/lib/*.cc src/lib/*.h mv src/lib/render_subtitles.cc src/lib/render_text.cc mv src/lib/render_subtitles.h src/lib/render_text.h mv src/lib/text_subtitle.cc src/lib/plain_text.cc mv src/lib/text_subtitle.h src/lib/plain_text.h
2018-06-29Basic jump to selected subtitle (#1200).Carl Hetherington
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