summaryrefslogtreecommitdiff
path: root/src/lib/player_video.cc
AgeCommit message (Collapse)Author
2025-09-23Return quite close to original approach for "no colour conversion".Carl Hetherington
There's a few things going on here: 1. Improve the regression test for 3042. Previously we made a DCP from the reporter's _original_ prores file (before they converted it to XYZ) and compared the result to a reference J2K file of uncertain origin. This seems wrong because: a) We never got confirmation from the reporter that the fix worked for them, so any arbitrary reference is dubious. b) It doesn't seem to reflect their actual complaint, which was that they got a different result when making a DCP from XYZ TIFFs compared to their "XYZ" Prores. The new test makes a DCP from their TIFFs and "XYZ" Prores and compares the result. 2. Revert to the old approach to "no conversion" handling. In the good old days we did everything -> RGB48LE except XYZ12LE -> XYZ12LE, and that's what we do again here. 3. Change the YUV->RGB conversion from Rec.601 to Rec.709 for the "no conversion" case. This fixes the 3042 regression test. The supposed "XYZ" Prores is yuv444p12le according to ffprobe. So I think what we have here is actually a file that was converted to XYZ and then back to YUV by Resolve. I experimented with using the raw YUV values and considering them as XYZ but this was clearly wrong. I think 3 is probably what I should have done in the first place.
2025-08-12Replace AVPixelFormat parameter to PlayerVideo::image with a functor.Carl Hetherington
This was removed in df9b4676aba8b941f124b174393988cad21677e1 and surrounding commits, but it turns out we need it after all.
2025-07-01White space: player_video.{cc,h} reel_writer.{cc,h} maths_util.{cc,h} ↵Carl Hetherington
upmixer_{a,b}.{cc,h} upload_job.{cc,h}
2025-05-26Remove functors for choosing pixel format output from make_image().Carl Hetherington
2025-01-05Bump libdcp for raw_convert changes.Carl Hetherington
raw_convert<string> is gone, so here we use fmt::{to_string,format} instead. Other raw_converts now use fast_float.
2024-03-20Remove all use of add_child() from xmlpp.Carl Hetherington
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-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.
2022-04-07Cleanup: remove unused parameter to PlayerVideo::force.Carl Hetherington
2022-04-03C++11 and whitespace cleanups.Carl Hetherington
2021-10-03Don't scale chroma subsampled images to sizes that don't align with the ↵v2.15.166Carl Hetherington
subsampling (#1872). There's a slightly odd effect when scaling e.g. YVU420 images to odd and then even widths - there's a small but visible luminance shift. I don't know why this happens, but keeping the scaling sizes locked to the subsampling seems to help.
2021-10-03Differentiate requested and actual crop.Carl Hetherington
This is so we limit cropping to what is possible considering chroma subsampling.
2021-09-27Various alignment tidying/fixups.Carl Hetherington
2021-09-27Replace aligned bool with enum Alignment.Carl Hetherington
2021-09-27Various alignment adjustments.Carl Hetherington
2021-09-27When the player is used in OpenGL mode, pass unscaled XYZ data through to ↵Carl Hetherington
the shader and do colourspace conversion there.
2021-09-19Check _inter_size in ::has_j2k() (fixes #2086).Carl Hetherington
The example in the bug shrinks a content DCP while keeping the container the same. We need to check that neither _out_size nor _inter_size have changed, to check for scaling/padding.
2021-09-19Remove an unused using.Carl Hetherington
2021-05-01C++11 tidying.Carl Hetherington
2021-01-31More enum class additions.Carl Hetherington
2021-01-21Adapt for libdcp use of enum class.Carl Hetherington
2021-01-07std::shared_ptrCarl Hetherington
2020-12-01Change re{set,fresh}_metadata to take a film and a size from the player.Carl Hetherington
2020-11-16Make sure we use limited ("video") range data when exporting.Carl Hetherington
Our export formats all currently use limited range but we weren't making sure data fed to the encoders was limited range. Should fix #1832.
2020-11-02Pass around JPEG2000 data as a shared_ptr and hence avoid a copyCarl Hetherington
of 4MB of data for every JPEG2000 frame we decode.
2020-05-11Change video content scaling so that it either:Carl Hetherington
1. scales the content up to fit the DCP container, preserving aspect ratio, or 2. stretches the content to a custom aspect ratio, or 3. scales the content to some custom size.
2020-04-17Rename send_binary -> write_to_socket.Carl Hetherington
2020-04-14Ignore and report failures to decode frames during playback (#1593).Carl Hetherington
2020-04-14Use a struct rather than a std::pair as the return type from ImageProxy::image.Carl Hetherington
2019-05-24Basic ability to set video range (JPEG/MPEG) at least for YUV content. May ↵Carl Hetherington
not work for RGB. See #1509.
2019-04-25Fix preview update when fade is changed (#1531).Carl Hetherington
2019-01-05Fix strange behaviour with single-frame fades (#1440).Carl Hetherington
2018-11-27Similar fix for scaling (#1416).Carl Hetherington
2018-11-27Fix non-updating crop settings (#1421).Carl Hetherington
2018-11-21Take Film pointer out of Content.Carl Hetherington
2018-11-06Do image crop/scale/window in the butler prepare threads.Carl Hetherington
2018-11-06Switch PlayerVideo::always_rgb to a new ::force and use it in FFmpegFileEncoder.Carl Hetherington
2018-11-06Remove some unused parameters.Carl Hetherington
2018-11-06Add some code to help with profiling the player.Carl Hetherington
2018-10-12Change MagickImageProxy to FFmpegImageProxy and make it use FFmpegCarl Hetherington
to decode images. Hence remove {Image,Graphics}Magick.
2018-07-23Tidy up after mass rename.Carl Hetherington
2018-07-20Untested; allow viewing of subtitles or closed captions in the preview.Carl Hetherington
2018-04-13Account for J2K decoding at lower-than-maximum resolution when croppingv2.13.14Carl Hetherington
the resulting images; fixes #1274.
2018-02-28Fix crash if quick_refresh() fails.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-02Fix incorrect pixel format on subtitles when they are sent to encoding servers.Carl Hetherington
2018-01-31Fix sequencing failure in some very specific circumstances.Carl Hetherington
2017-12-29Add basic memory-used stuff for butler and reduce minimum audioCarl Hetherington
readahead quite a bit. This in turn reduces the maximum butler memory usage as it will keep getting audio (and hence video) until the minimum audio readahead is hit.
2017-07-26Multi-threaded decode of DCP when previewing.Carl Hetherington