summaryrefslogtreecommitdiff
path: root/src/lib
AgeCommit message (Collapse)Author
2021-06-23Improve error messages when failing to decode video.Carl Hetherington
2021-05-12Ignore audio streams with no codec, instead of crashing.v2.14.52Carl Hetherington
2021-05-06Add pixel format 0 (AV_PIX_FMT_YUV420P) to make_part_black().v2.14.51Carl Hetherington
Remainder of fix for #1984. Backported-from-commit: 0aabe4060ea4bad7c7caac633aef0737fccff8c2 Backported-from-branch: 2.15.x
2021-05-06Add pixel format 66 (AV_PIX_FMT_YUV422P10LE) to make_part_black().Carl Hetherington
Part of fix for #1984. Backported-from-commit: 2aa6fd88e6d334c040d421938e425bd2f89983a7 Backported-from-branch: 2.15.x
2021-03-30Updated nl_NL translation from Rob van Nieuwkerk.v2.14.48Carl Hetherington
2021-03-28Tread .psd as an image file.Carl Hetherington
2021-03-20Updated de_DE translation from Carsten Kurz.Carl Hetherington
2021-03-18pot/merge.Carl Hetherington
2020-11-25Fix corrupted image when over-cropping black filler frames.v2.14.45Carl Hetherington
FFmpegDecoder can emit small black frames (128x128 pixels) when it wants to fill in a gap. Image::crop_scale_window would do the wrong thing if we then applied a crop of greater than 128 in either direction; though cropped_size is correctly clamped, the crop value itself was not and is used to calculate the input data pointers. This would result in random frames, usually at the end of DCPs, often made up of blurry colour washes.
2020-11-24Fix the behaviour of FileGroup when seeking too far.Carl Hetherington
Previously, if you did a seek off the end of the file group, the seek would return an error. This is not what fseek() does; it returns no error, and preserves the file pointer (returned by ftell()) as if the seek had been successful. fread()s after a too-far seek return no data, of course. Parsing some files (the example used to find the bug was a H264 MP4) involves a seek which is to the byte after the end of the mp4 file. If this fails the whole header parsing fails and DCP-o-matic refuses to use the file.
2020-11-19Hack to fix image luminance when cropping subsampled images (#1872).v2.14.44Carl Hetherington
Without this the luminance varies slightly as you crop by odd and even amounts (for YUV420 images).
2020-11-17Fix cropping of subsampled images.Carl Hetherington
The calculations for how to crop subsampled components of YUV images were wrong, causing strange effects like misregistration of colour components in cropped images. Should fix #1872.
2020-11-17Add some lrintf() calls to be sure.Carl Hetherington
2020-11-17Use 64-byte alignment for aligned image memory.Carl Hetherington
FFmpeg uses this values if AVX512 is available, and with only 32-byte alignment I am seeing strange scaling effects whereby crop_scale_window_test7 gives black bars down the right side of cropped images (when run on an i7 7700).
2020-11-11Remove assertion checking that rotations are a multiple of 90.v2.14.42Carl Hetherington
This is checked later, anyway (without asserting) and we have seen files in the wild with other rotations (e.g. -135.62) which do not appear to need rotation to be applied. Fixes #1871.
2020-10-28Prevent import of directories as DCPs if they do not have anCarl Hetherington
ASSETMAP{,.xml} in the top level. This should avoid some confusion, as previously DoM would scan the whole directory tree looking for an ASSETMAP. It also prevents people adding a DCP-o-matic project to itself, which I believe is the cause of #1620. Backported-from-commit: 2c74c1534cb563cab4c6c3225ced573619f6a647 Backported-from-branch: v2.15.x
2020-10-26pot/merge due to changing crop labels.Carl Hetherington
2020-10-14Don't crash if the first packet in a stream has AV_NOPTS_VALUE;Carl Hetherington
instead, assume it should be at timestamp 0. Backported-from-commit: d7a3d94ec307a03ebe3fcf239ba991e9a3c1b8b8 Backported-from-branch: v2.15.x
2020-10-14Clear out _next_time when seeking, so out-of-date values don'tCarl Hetherington
hang around. Part of the fix for #1857. Backported-from-commit: 9a3df0a97b7962c00726447a75599e34c632cb2b Backported-from-branch: v2.15.x
2020-09-23Fix thinko in previous.Carl Hetherington
2020-09-23Fix potentially unterminated string (#1844).Carl Hetherington
2020-09-23Fix warnings about catching polymorphic types by value (#1843).Carl Hetherington
2020-09-21Fix --standard flag to dcpomatic2_cli (github #9).v2.14.38Carl Hetherington
2020-08-31Build fixes for Boost >= 1.73v2.14.37Carl Hetherington
2020-08-03Fix number of frames in the pulldown check.Carl Hetherington
Backported-from-commit: 5f1fdbafc6eef37523250e0b8542a8939a038823 Backported-from-branch: v2.15.x
2020-08-03Fix incorrect string find logic.Carl Hetherington
Backported-from-commit: d461077cf4f2c1470d2d0d6dbc4f5708411bec65 Backported-from-branch: v2.15.x
2020-08-02Recover information about closed caption tracks when loading DCPsCarl Hetherington
so that they can be displayed. Cherry-picked from 09860271bb6d03b3937c08bffb4c672697f6d711 in v2.15.x.
2020-08-02Detect soft 2:3 pulldown (telecine) files and decode them at 23.976.Carl Hetherington
DVD rips from NTSC DVDs are sometimes (always?) encoded using soft 2:3 pulldown. The video frames are actually 23.976 but FFmpeg detects them as 29.97. With the current approach of the video decoder ignoring most PTSs and assuming a constant frame rate it is vital that the file contains the number of frames per second that the detected frame rate predicts. This fixes large sync errors with NTSC DVD rips (#1790). Cherry-picked from af680761cf7c3e97660e8e55c68f42e90b026bf9 in v2.15.x.
2020-07-27Trying to create export audio encoders with between 9 and 15 channelsv2.14.34Carl Hetherington
inclusive fails, at least for AAC. There's probably a way around this with some FFmpeg-cleverness but for now let's just export any project with more than 8 channels as 16. You could argue that we should offer choices to, for example export 7.1/HI/VN as 7.1 but that sounds fiddly. Fixes #1786.
2020-07-27Fix export of projects with fewer than 6 channels.Carl Hetherington
2020-05-14Don't say 'certificate downloaded' if it failed during the read part.Carl Hetherington
Backported from 8c7ad603cf0a534abe1a920b70b0daa095257d3a in v2.15.x
2020-03-11Give a better error when opening a DCP with File -> Open by mistake (#1723).v2.14.32Carl Hetherington
2020-03-06s/destroy_thread/stop_thread/Carl Hetherington
2020-03-06Destroy Job threads at the start of the subclass destructors,Carl Hetherington
so that the thread is gone before the object is torn down.
2020-02-29Allow changing colour conversion settings for multiple pieces of content at ↵v2.14.31Carl Hetherington
the same time (github #7). Back-ported from c403e757cf0b029954fe18dc969314bfb179412f in v2.15.x.
2020-02-21Missing #include.v2.14.29Carl Hetherington
2020-02-20Fix non-aligned subtitle access in the subtitle examiner as well.v2.14.28Carl Hetherington
2020-02-19Cleanups to normalise master and 2.15.x better.v2.14.27Carl Hetherington
2020-02-19New way of checking for 2D content mislabelled as 3D (#1565).Carl Hetherington
Required because of the change to the way video frame timing is done.
2020-02-18Fix errors with TYPE_3D introduced in video timestamping fix.Carl Hetherington
2020-02-18Re-throw butler errors at the end of an encode.Carl Hetherington
2020-02-18Report when butler returns no video because it died.Carl Hetherington
2020-02-18Merge branch 'master' of ssh://git.carlh.net/home/carl/git/dcpomaticCarl Hetherington
2020-02-18Remove incorrect comment.Carl Hetherington
2020-02-18Missed part of new video timing patch.Carl Hetherington
2020-02-17Better errors if butler doesn't give video during export.Carl Hetherington
2020-02-16Better assertion error in copy_from.Carl Hetherington
2020-02-16Potential fix for #1568; we calculate the remaining DCPTime butCarl Hetherington
then convert it back to resampled content frames using the DCP rate rather than the resampled content rate, which seems wrong. If we want to go from metric time to frames we surely have to use the frame rate of the thing we are working with (not the frame rate which that thing will be played back at). Backported from 26c62598730d1d32333bfab0d5f463b90d26ee4d in v2.15.x.
2020-02-16Fix deadlock during content examination.Carl Hetherington
Before this fix, the following situation could happen in threads A and B: A: Some DONE signal happens; this triggers setup_pieces which takes a lock on the player mutex. B: FFmpegContent::examine takes a lock on the content mutex. B: FFmpegContent::examine adds a stream B: That causes STREAMS PENDING to be emitted. B: This tries to take a lock on the player mutex so it can update _suspended A: setup_pieces tries to access some content information, hence tries to take a lock on the content mutex. Now B is holding the CL and awaiting the PL and A is holding the PL and awaiting the CL. It feels like the root cause of this is that while setup_pieces is happening another change (which would itself cause setup_pieces) is announced, and this isn't dealt with properly. There are two steps here; _suspended is protected with an atomic rather than using _mutex, and also it can cope with being updated recursively. Backported from df48c75c38dd788835a93540aea243a2dac4bb10 in v2.15.x
2020-02-15Don't trust video timestamps from FFmpegDecoder.Carl Hetherington
Back-ported from 98342fb53eae4d32440fc69c279f2ca0fef785b5 in v2.15.x.