| Age | Commit message (Collapse) | Author |
|
|
|
|
|
As far as I can tell they are totally non-standard, but apparently
the IMS3000 plays them so I guess we should too.
|
|
|
|
|
|
This makes DCP content behave the same as FFmpeg.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
Previously we used an empty font ID as the default for when a subtitle
has no Font, but in #2721 we saw a DCP with an empty font ID which
raised an assertion (because we'd already added our default font with
the empty ID).
Here we try to fix this (and also make the default font correctly be
that from the first <LoadFont>).
|
|
|
|
|
|
with the same name in the same reel (#2600).
Previously we had this id_for_font_in_reel() which would give an ID
of N_font-ID. This means we got duplicate font IDs.
Here we replace that method with FontAllocator, which gives an ID of
N_font-ID for the first font and M_font-ID, where M is a number higher than
the highest reel index. The idea is to support the required new IDs
without breaking exisiting projects.
There is some documentation of how it works in doc/design/fonts
|
|
|
|
when placing subtitles (e.g. SRT). Also default to outputting 2014-era
alignment.
|
|
This greatly speeds up the process of getting subtitles from a DCP.
|
|
Interop and SMPTE.
|
|
|
|
be emitted, instead of the time that the last thing was (#2268).
This is to avoid problems with the example shown in the test, where
just because a subtitle in source A comes before a subtitle in source B,
source A is pass()ed next and may then emit a subtitle which should
be after the next one in B.
|
|
With this change each subtitle coming out of the player has a reference
to a dcpomatic::Font that belongs to the TextContent. This hopefully
solves a few problems which all basically stemmed from the fact that
previously the decoders/player were deciding what the font ID in the
output DCP would be - they can't do that properly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i.e. as a block of memory rather than a file. Also, get the
fonts from the decoder rather than the content.
Together, these changes allow us to use fonts from SMPTE DCPs
added as content. Before, fonts would be messed up in those
cases (#1885).
|
|
|
|
are re-written, meaning that they can be encrypted.
This (along with the libdcp update) also fixes assorted Atmos bugs.
|
|
a correct one.
|
|
|
|
_next time.
This is important because Decoder::position does the wrong thing
with DCPs in the following case.
1. DCPDecoder emits a subtitle event (start/stop) at time t.
2. There follows a long time T with no subtitle events. During
this time the DCPDecoder's position is reported as t (since
TextDecoder notes its position as the time of the last thing
it emitted --- which is all it reasonably can do, I think).
3. During this T the DCPDecoder may be incorrectly pass()ed because
its position is reported as earlier than it really is; this results
in video/audio being emitted by the DCPDecoder but other contemporary
sources may not be pass()ed.
The upshot of this can be that no audio is emitted, as a contemporary audio
source is not pass()ed and hence the merger is waiting for audio that will
take a long time to come. When the butler is running this can result in
audio underruns as the video buffers overflow with no sign of any audio.
It is also simpler this way; DCPDecoder was already maintaining the required
information.
|
|
resamplers are emptied and hence we don't lose any
samples. Fixes #1691.
Back-ported from 1444299fa4582fc65c5237edd6c115921f20f872 in master.
|
|
subtitles (#1641).
Forward-port from da39ed1516f2463f8a9bf4795a94f23d420c9ca3 in master.
|
|
This has the same cause as
19f51503621a57794bd79bac053c9e6549a69f46
i.e. the DCPDecoder re-use optimisation. This commit tries to
re-fix 19f515 in a more general way which also takes into account
the OV/VF bug. It also adds a unit test.
|
|
re-use optimisation.
|
|
|
|
(if available) to recover the list of reels from, rather than having
to scan the filesystem again.
|
|
|
|
|
|
(i.e. are not encrypted and not missing assets). Fixes full audio
buffers on locates with large encrypted DCPs and no KDMs; in these
cases silent audio is created by the fill_audio() at the bottom of
Player::pass() but no video is created by anybody.
|