Migrating tr1 to std, adding C++11 support to build scripts, fixing crash in FFmpegReader (caused by shared_ptr, buffer, and last_video_frame corruption). Much improved stability with this change. Thanks to Craig and Peter for the help!

This commit is contained in:
Jonathan Thomas
2017-08-20 17:37:39 -05:00
parent 564664737a
commit f12ffe692b
84 changed files with 605 additions and 641 deletions

View File

@@ -74,7 +74,7 @@ string ChunkWriter::get_chunk_path(int chunk_number, string folder, string exten
}
// Add a frame to the queue waiting to be encoded.
void ChunkWriter::WriteFrame(tr1::shared_ptr<Frame> frame) throw(WriterClosed)
void ChunkWriter::WriteFrame(std::shared_ptr<Frame> frame) throw(WriterClosed)
{
// Check for open reader (or throw exception)
if (!is_open)
@@ -131,7 +131,7 @@ void ChunkWriter::WriteFrame(tr1::shared_ptr<Frame> frame) throw(WriterClosed)
writer_thumb->WriteFrame(last_frame);
} else {
// Write the 1st frame (of the 1st chunk)... since no previous chunk is available
tr1::shared_ptr<Frame> blank_frame(new Frame(1, info.width, info.height, "#000000", info.sample_rate, info.channels));
std::shared_ptr<Frame> blank_frame(new Frame(1, info.width, info.height, "#000000", info.sample_rate, info.channels));
blank_frame->AddColor(info.width, info.height, "#000000");
writer_final->WriteFrame(blank_frame);
writer_preview->WriteFrame(blank_frame);
@@ -199,7 +199,7 @@ void ChunkWriter::WriteFrame(ReaderBase* reader, int start, int length) throw(Wr
for (int number = start; number <= length; number++)
{
// Get the frame
tr1::shared_ptr<Frame> f = reader->GetFrame(number);
std::shared_ptr<Frame> f = reader->GetFrame(number);
// Encode frame
WriteFrame(f);
@@ -213,7 +213,7 @@ void ChunkWriter::WriteFrame(int start, int length) throw(WriterClosed)
for (int number = start; number <= length; number++)
{
// Get the frame
tr1::shared_ptr<Frame> f = local_reader->GetFrame(number);
std::shared_ptr<Frame> f = local_reader->GetFrame(number);
// Encode frame
WriteFrame(f);