| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
Previously we would ignore audio timestamps because they are not
contiguous in a sample-accurate way.
However with bugs like #1833 we do need to obey large discontinuities
in audio timestamps, otherwise we get large sync errors.
Here we change timestamp handling to ignore small discontinuities
in timestamps but not larger ones.
|
|
While playback is happening we need to do that in the butler's
buffers and in the little delay inside Player.
This removes the seek on every crop change, making it a lot
quicker (#1758).
|
|
|
|
|
|
|
|
|
|
|
|
Instead of relying on the operating system's behaviour when seeking
off the end of a file, keep our own _position. This normalises
the behaviour between POSIX and Windows.
|
|
the "last seen time" will never be updated, so the server will
be discarded.
It seems that we should always ping servers (so that set_seen gets
called on receipt of the response), no matter whether
"auto-discovered" or configured, so that the "discard" code doesn't
kick in.
Otherwise we remove and re-add our configured servers every
10 seconds, which is inefficient and which possibly triggers
other bugs.
|
|
and _threads.reset(); move the lock.
|
|
This is necessary so that we always include <Hash> in CPLs even
when referencing DCPs that do not have it.
|
|
|
|
Since per Bv2.1 we can't have subs / closed captions with non-zero
entry point I think we have no choice but to rewrite in that case
(#1802).
|
|
Just as we do for picture / sound.
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
It just seemed to cause more problems than it solved; mainly people
enabling it by mistake and then being told to click buttons that
they could not see.
|
|
|
|
|
|
|
|
|
|
|
|
to SMPTE extended metadata.
|
|
|
|
in older films.
|
|
|
|
languages from the Interop/SMPTE metadata dialogues.
|
|
|
|
This is a speculative fix which I haven't tested.
|
|
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.
|
|
|
|
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).
|
|
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.
|
|
|
|
they have borders. This fix will cause some movement of border-less
subtitles (in existing projects) within the video frame.
|
|
|
|
|
|
|
|
Video that comes in with RGB pixels will not have its video level
ranges changed by libswscale (it only does this for YUV and greyscale).
Here we add code to do it ourselves for RGB content coming in
via image files (e.g. PNG/DPX etc). Part of #1851.
|
|
|
|
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.
Backported-from-commit: f235ed07f969e1b8b9d3d05082dcdd68ceae771e
Backported-from-branch: master
|
|
|