| Age | Commit message (Collapse) | Author |
|
|
|
|
|
The motivation here is to stop a pattern where we create a file, close
it, and then re-open it (many times) as I think there are problems on
Windows when a virus scanner sees the new file, opens it for checking,
and then we can't re-open it.
This also makes things a fair bit simpler, as a lock is removed and we
don't try to differentiate read/write cases by opening the file in
different ways; it's now always writeable.
|
|
Instead store details of a previously-created asset in the film's
metadata and then look there for potential video files to re-use.
|
|
|
|
(#2784).
This feels like a hack, but I can't think of a nicer way to do it.
The interruption disable makes sense because when we destroy encoder threads
during a DCP encode (because a remote server goes away, for example) we don't
want any frames to be lost due to the encode thread being interrupted between
taking the frame off the queue and sending it to the writer.
When we're destroying the encoder we don't care about this, but I can't see
how you'd differentiate.
Maybe the encoder queue could have two lists: to-do and in-progress;
the encoder thread atomically moves a frame from to-do to in-progress,
but then how do you know when the in-progress ones are orphaned and need
to be re-added to the main queue.
You could make the writer return saying "no" if the queue is full (rather
than blocking and waiting for the queue to empty) but that seems wasteful
as then the frame would be re-encoded.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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).
|
|
|
|
then check the result for Bv2.1 violations (part of #1800).
|
|
film itself.
|
|
|
|
This is necessary so that we always include <Hash> in CPLs even
when referencing DCPs that do not have it.
|
|
of 4MB of data for every JPEG2000 frame we decode.
|
|
are re-written, meaning that they can be encrypted.
This (along with the libdcp update) also fixes assorted Atmos bugs.
|
|
to each reel. This is updated when things are popped off the queue, with
_state_mutex_held, and used in preference to the ones in ReelWriter
which were previously being updated during the time the _state_mutex
lock is unlocked in the body of Writer::thread(). This was not
thread safe (thanks, valgrind!)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ActiveCaptions -> ActiveText
BitmapCaption -> BitmapText
ContentCaption -> ContentText
ContentTextCaption -> ContentStringText
TextCaptionFileContent -> StringTextFileContent
TextCaptionFileDecoder -> StringTextFileDecoder
TextCaptionFile -> StringTextFile
TextCaption -> StringText
PlayerCaption -> PlayerText
CaptionContent -> TextContent
CaptionDecoder -> TextDecoder
CaptionPanel -> TextPanel
CaptionView -> TextView
CaptionAppearanceDialog -> SubtitleAppearanceDialog
CaptionType -> TextType
|
|
|
|
sed -i "s/ActiveText/ActiveCaptions/g" src/lib/*.{cc,h}
sed -i "s/active_text.h/active_captions.h/g" src/lib/*.{cc,h}
sed -i "s/active_text.cc/active_captions.cc/g" src/lib/wscript
mv src/lib/active_text.cc src/lib/active_captions.cc
mv src/lib/active_text.h src/lib/active_captions.h
sed -i "s/PlainTextFileContent/TextCaptionFileContent/g" src/lib/*.{cc,h} src/wx/*.cc
sed -i "s/PlainTextFile/TextCaptionFile/g" src/lib/*.{cc,h} src/wx/*.cc
sed -i "s/plain_text_file_content/text_caption_file_content/g" src/lib/*.{cc,h} src/lib/wscript src/wx/*.{cc,h} test/*.cc
mv src/lib/plain_text_file_content.cc src/lib/text_caption_file_content.cc
mv src/lib/plain_text_file_content.h src/lib/text_caption_file_content.h
sed -i "s/PlainTextFileDecoder/TextCaptionFileDecoder/g" src/lib/*.{cc,h}
sed -i "s/plain_text_file_decoder/text_caption_file_decoder/g" src/lib/*.{cc,h} src/lib/wscript src/wx/*.{cc,h}
mv src/lib/plain_text_file_decoder.cc src/lib/text_caption_file_decoder.cc
mv src/lib/plain_text_file_decoder.h src/lib/text_caption_file_decoder.h
sed -i "s/PlayerText/PlayerCaption/g" src/lib/*.{cc,h}
sed -i "s/player_text.cc/player_caption.cc/g" src/lib/wscript
sed -i "s/player_text.h/player_caption.h/g" src/lib/*.{cc,h}
mv src/lib/player_text.cc src/lib/player_caption.cc
mv src/lib/player_text.h src/lib/player_caption.h
sed -i "s/ContentPlainText/ContentTextCaption/g" src/lib/*.{cc,h} src/wx/*.{cc,h}
sed -i "s/ContentBitmapText/ContentBitmapCaption/g" src/lib/*.{cc,h} src/wx/*.{cc,h}
sed -i "s/PlainText/TextCaption/g" src/lib/*.{cc,h} test/*.cc
sed -i "s/plain_text.h/text_caption.h/g" src/lib/*.{cc,h}
mv src/lib/plain_text.h src/lib/text_caption.h
|
|
|
|
PlainText.
|
|
there's a long delay at the end of the job while they are written.
We must still write FULL frames even if the queue is long (we only
stop doing that if the queue has too many FULL frames i.e. too much
memory consumption). With this commit we stop writing REPEAT/FAKE
frames when the queue gets long and assume there will always be a
sequence image for writing and hence the main writer thread will reduce
the queue given time.
|
|
as I can see. It decided which reel to write new audio to based on
how many frames had been written to the current reel; this makes
no sense for referred reels for which the player will emit no audio.
This code looks at the audio timestamp instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|