summaryrefslogtreecommitdiff
path: root/src/lib/content.cc
AgeCommit message (Collapse)Author
2021-07-10Use dcp::compose rather than our own.composeCarl Hetherington
2021-02-17Assorted C++11 tidying.Carl Hetherington
2021-02-07Be more defensive when calling boost::filesystem::last_write_time.Carl Hetherington
2021-01-31Use enum class for Film::Property.Carl Hetherington
2021-01-31More enum class additions.Carl Hetherington
2021-01-08c++ tidying.Carl Hetherington
2021-01-07BOOST_FOREACH.Carl Hetherington
2021-01-07std::shared_ptrCarl Hetherington
2020-05-20Round the length of video-containing content to the nearest frame.Carl Hetherington
It seems reasonable, and is in the spirit of how positions are rounded to frame boundaries. It also fixes problems with unnecessary frames of black being created at the end of trimmed files, where there can be rounding-error-based confusion about where the content stops and the black begins.
2020-05-20Try rounding length_after_trim.Carl Hetherington
2019-05-10Put Time types in dcpomatic namespace.Carl Hetherington
2019-05-05Fix case where the is FFmpegContent with 24fps video and 44.1kHz audioCarl Hetherington
and a start trim of 6724000. With these numbers the start trim is on an integer video frame but halfway through an audio frame. Without this patch the trim would be "corrected" to 6724001, causing video frames to come out of the player at DCPTimes 0, 3999, 5999 etc. It's possible that Frame const position = time.frames_floor(_film->video_frame_rate()); in J2KEncoder::encode should be frames_round, which would also help with this, but that would be a much more risky patch.
2019-04-26Make sure at least one position change event is emitted afterCarl Hetherington
a timeline drag (with frequent=false), even if lots have been sent with frequent=true. Otherwise the code in the CHNAGE_TYPE_DONE branch of Butler::player_change never gets to seek (since frequent is true, it ignores the signal). Without the seek things go wrong. Believed to fix #1534.
2019-02-12Try to fix some warnings.Carl Hetherington
2018-12-12Fix content properties (#1428).Carl Hetherington
2018-11-24Fix missed overload change.Carl Hetherington
2018-11-21Remove Film pointer from clone().Carl Hetherington
2018-11-21Take Film pointer out of Content.Carl Hetherington
2018-11-07Don't emit video frame rate changes when they don't happen.Carl Hetherington
2018-09-25Add frame rate to technical summary of content.Carl Hetherington
2018-08-21Reset last write times on examine.Carl Hetherington
2018-08-21Check content for changes on loading a project.Carl Hetherington
2018-08-21Store mtime in Content.Carl Hetherington
2018-08-21Make Content::_paths private.Carl Hetherington
2018-08-21Remove unused method.Carl Hetherington
2018-08-20Make ContentChange into a generic ChangeSignaller and use it for Filmv2.13.44Carl Hetherington
changes, since we setup_pieces() in response to at least one of these and hence we must know before it happens so we can suspend the butler and player.
2018-08-19Replace May/Done/NotDone signal sets with one signal and extendCarl Hetherington
this treatment to anything that caused Player::setup_pieces. This should fix out-of-sequence Player emissions caused by setup_pieces being called by one thread while the butler is calling pass().
2018-08-17Position is not affected when Content video frame rate is set.Carl Hetherington
2018-08-14More fixes for errors / crashes / misbehaviour with content changesCarl Hetherington
and the butler. Here we signal both before and after a change in content. Before, the player disables itself so that any pass()/seek() will be no-ops. After, the player rebuilds its pieces and the butler re-seeks to get back to where it was before the change.
2018-08-01Force audio content to be on a sample boundary.Carl Hetherington
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-21Revert "Remove join function; the code is long and I don't think anybody"Carl Hetherington
It turns out Carsten uses it :) This reverts commit bd5e8b83a3a18787241982efdae809d4db21f65d.
2018-07-21Basics of multiple captions per content so that DCPContent canCarl Hetherington
hold subs and closed captions.
2018-07-20Remove join function; the code is long and I don't think anybodyCarl Hetherington
uses it.
2018-07-19Clean up after previous commit.Carl Hetherington
2018-07-19Rename Subtitle -> TextCarl Hetherington
sed -i "s/SubtitleContent/TextContent/g" src/lib/*.cc src/lib/*.h src/wx/*.cc src/wx/*.h src/tools/*.cc test/*.cc sed -i "s/SubtitleDecoder/TextDecoder/g" src/lib/*.cc src/lib/*.h src/wx/*.cc src/wx/*.h src/tools/*.cc test/*.cc sed -i "s/subtitle_content/text_content/g" src/lib/*.cc src/lib/*.h src/wx/*.cc src/wx/*.h src/tools/*.cc test/*.cc src/lib/wscript src/wx/wscript sed -i "s/subtitle_decoder/text_decoder/g" src/lib/*.cc src/lib/*.h src/wx/*.cc src/wx/*.h src/tools/*.cc test/*.cc src/lib/wscript mv src/lib/subtitle_decoder.cc src/lib/text_decoder.cc mv src/lib/subtitle_decoder.h src/lib/text_decoder.h mv src/lib/subtitle_content.cc src/lib/text_content.cc mv src/lib/subtitle_content.h src/lib/text_content.h mv src/lib/dcp_subtitle_decoder.cc src/lib/dcp_text_decoder.cc mv src/lib/dcp_subtitle_decoder.h src/lib/dcp_text_decoder.h mv src/lib/dcp_subtitle_content.cc src/lib/dcp_text_content.cc mv src/lib/dcp_subtitle_content.h src/lib/dcp_text_content.h mv src/lib/text_subtitle_content.cc src/lib/text_text_content.cc mv src/lib/text_subtitle_content.h src/lib/text_text_content.h mv src/lib/text_subtitle_decoder.cc src/lib/text_text_decoder.cc mv src/lib/text_subtitle_decoder.h src/lib/text_text_decoder.h mv src/wx/timeline_subtitle_content_view.cc src/wx/timeline_text_content_view.cc mv src/wx/timeline_subtitle_content_view.h src/wx/timeline_text_content_view.h
2018-07-09Maintain frame-snap for position and trim when set_video_frame_rate is ↵Carl Hetherington
called (#1335).
2018-02-08typeid() doesn't seem to downcast, so just check types in the ↵Carl Hetherington
take_settings_from methods (#1192).
2018-01-14Fix crash when unsetting forced video frame rates in the timing panel.Carl Hetherington
2018-01-05s/use_template/take_settings_from/gCarl Hetherington
2017-12-11Fix various problems caused by non-integer-frame start trims,Carl Hetherington
and also by the inability of content_video_to_dcp to return negative values. The latter is necessary for tests on "is this content too early" to work.
2017-07-12Force video content to start on a frame boundary.Carl Hetherington
2017-05-23Add Content::set_paths().Carl Hetherington
2017-01-04Rename Time::round_up to Time::ceil.Carl Hetherington
2016-08-24Basic template support (#485).Carl Hetherington
2016-08-24Revert "Bump libdcp for new method."Carl Hetherington
This reverts commit 3412af70b950dcdc604413ef05c26becda6da789.
2016-08-24Bump libdcp for new method.Carl Hetherington
2016-08-12Move locale_convert into libdcp.Carl Hetherington
2016-08-12Replace incorrect uses of raw_convert with a new locale_convert.Carl Hetherington