summaryrefslogtreecommitdiff
path: root/src/lib/player.cc
AgeCommit message (Collapse)Author
2026-03-12Tweak debug string.Carl Hetherington
2026-02-21Prevent attempts to seek beyond the film's length...Carl Hetherington
...as they cause problems.
2026-02-21Cope with audio handling when no audio streams push.Carl Hetherington
This can happen when no audio is currently being offered.
2026-02-02Stop doing some more stuff during content drags in the timeline.Carl Hetherington
2026-01-25Fix incorrect calculation of DCP time from Atmos content time for the 2nd ↵Carl Hetherington
and subsequent reels. This would cause only the 1st reel of atmos content to make it into the DCP.
2025-12-31Remove now-unused Player::progress().Carl Hetherington
2025-12-31Remove now-unused Player::frames_done().Carl Hetherington
2025-12-31Fix mismatched audio reel length (#3123).Carl Hetherington
2025-12-30Tweak comments.Carl Hetherington
2025-12-29Compress an if.Carl Hetherington
2025-12-06Clarify and improve decoder/player/butler logging a bit.Carl Hetherington
2025-12-05Cleanup: can now remove the _NC log variants.Carl Hetherington
2025-12-05Tweak log message.Carl Hetherington
2025-11-04Fix failure to play any audio when one stream isn't producing anything (#3108)Carl Hetherington
Without this we consider a never-pushed stream active, but with position 0, so we think we never have any audio ready.
2025-07-16Remove unused content pointer from change signals.Carl Hetherington
2025-07-11Don't try to add unused fonts to the DCP (#3059).Carl Hetherington
With interop there can be only one font, and we need to make sure it's not one that isn't even being used.
2025-07-10Remove compose.hpp includes.Carl Hetherington
sed -i "/include.*compose.hpp/d;" src/lib/*.cc src/wx/*.cc src/wx/*.h src/tools/*.cc src/lib/*.h test/*.cc
2025-07-10Replace String::compose with fmt.Carl Hetherington
sed -i "/Plural-Forms/n;/%100/n;/scanf/n;s/%[123456789]/{}/g" src/lib/*.cc src/lib/*.h src/wx/*.cc src/tools/*.cc src/lib/po/*.po src/wx/po/*.po src/tools/po/*.po test/*.cc sed -i "s/String::compose */fmt::format/g" src/lib/*.cc src/lib/*.h src/wx/*.cc src/tools/*.cc test/*.cc
2025-07-10Convert some paths to string.Carl Hetherington
2025-05-11Cleanup: use constexpr for content and player properties.Carl Hetherington
Also fix a clash between the ATMOS and player properties.
2025-03-22Fix progress reporting.Carl Hetherington
earliest_time will be empty when we're at the end of the film, not the beginning.
2025-03-22White space.Carl Hetherington
2025-03-06Fix black frames when raising frame rate by a lot (#2993).Carl Hetherington
2025-03-05Replace Content::paths_valid() with a free utility function.Carl Hetherington
2025-02-03Fix subtitles being written with negative times when trimmed (#2965).Carl Hetherington
2025-02-03Cleanup: rename subtitle_stop -> text_stop.Carl Hetherington
2025-02-02White space: config.{cc,h} player.{cc,h} about_dialog.{cc,h} hints_dialog.{cc,h}Carl Hetherington
2025-01-20Pass tolerant flag into Player.Carl Hetherington
This is needed because the DCPDecoder ends up needing it when it reads reel information from CPLs. Maybe all that stuff should be in our metadata.
2025-01-18Fix first frame being shown even when trimmed (#2952).Carl Hetherington
We calculated the DCP time of the first frame (when its content was trimmed) and it was clamped from -8 frames to 0, which meant it was used when it should not have been.
2024-09-03Support closed subtitles and open captions.Carl Hetherington
2024-09-03Adapt to some libdcp class renaming to allow open captions/closed subtitles.Carl Hetherington
2024-06-24Fix y offset direction of bitmap subs (#2807).Carl Hetherington
2024-05-29Merge remote-tracking branch 'origin/main' into v2.17.xCarl Hetherington
2024-05-19Don't make _stream_states for unmapped audio, otherwise we wait for contentCarl Hetherington
which will never arrive.
2024-05-19Add and use Content::has_mapped_audio().Carl Hetherington
2024-05-19Merge remote-tracking branch 'origin/main' into v2.17.xCarl Hetherington
2024-05-17Make sure we don't say some content has audio if none will be emitted.Carl Hetherington
In the FFmpeg (and shortly DCP) case we don't emit any audio if none is mapped, so we must take this into account in the player.
2024-05-16Merge branch 'main' into v2.17.xCarl Hetherington
2024-05-15Update DCP encoder progress on all passe()es, not just when audio is emitted.Carl Hetherington
2024-05-15Get DCP transcode progress from the player (#2804).Carl Hetherington
2024-04-22Don't emit video until film's end if we are seeking.Carl Hetherington
Otherwise if we seek to the frame just before the end of the DCP we'll call emit_video_until() with _next_video unset, causing that method to emit video for the whole film. The point of this emit_video_until() call is only to pad a space between the end of the video content and the end of the film.
2024-02-22Merge tag 'v2.16.78' into v2.17.xv2.17.12Carl Hetherington
2024-02-21Make DCPExaminer::size() optional and deal with the consequences.v2.16.78Carl Hetherington
This means we can fix the case of a VF having no known size in a nice way, in turn fixing problems caused by the fix to #2775.
2024-02-19Reset _next_video_time when deciding to emit black.Carl Hetherington
Otherwise if we inaccurately seek into an area with no video there will never be any content coming into ::video() which could reset _next_video_time. Then when a black frame is emitted using emit_video_until we will emit black frames from time 0 to the time of the inaccurate seek.
2024-02-19Add some more logs to the LOG_DEBUG_PLAYER set.Carl Hetherington
2024-02-12Merge branch 'main' into v2.17.xCarl Hetherington
2024-02-11Add option to stop the player using any audio processor.Carl Hetherington
2024-02-03Merge branch 'main' into v2.17.xCarl Hetherington
2024-02-03Don't emit subtitle images that have a zero dimension (#2743).Carl Hetherington
They cause problems later when trying to blend them into the image.
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.