summaryrefslogtreecommitdiff
path: root/test/ffmpeg_decoder_error_test.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-06-03 20:40:16 +0200
committerCarl Hetherington <cth@carlh.net>2021-06-03 20:40:16 +0200
commitab3be5fa1893bf1756627e1646b065c41e69336a (patch)
treee9a768d04b974dfa1889d2a2a270f0283fea239c /test/ffmpeg_decoder_error_test.cc
parent56062a84cca360881bfa3bd2b2254d451223d775 (diff)
Ignore errors from avcodec_receive_frame when flushing video (#2035).
The test fails if we don't do this; it doesn't really seem 100% convincing but we are already doing this for audio.
Diffstat (limited to 'test/ffmpeg_decoder_error_test.cc')
-rw-r--r--test/ffmpeg_decoder_error_test.cc48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/ffmpeg_decoder_error_test.cc b/test/ffmpeg_decoder_error_test.cc
new file mode 100644
index 000000000..b3e9e4293
--- /dev/null
+++ b/test/ffmpeg_decoder_error_test.cc
@@ -0,0 +1,48 @@
+/*
+ Copyright (C) 2021 Carl Hetherington <cth@carlh.net>
+
+ This file is part of DCP-o-matic.
+
+ DCP-o-matic is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ DCP-o-matic is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+
+#include "lib/content.h"
+#include "lib/content_factory.h"
+#include "lib/dcpomatic_time.h"
+#include "test.h"
+#include <boost/test/unit_test.hpp>
+
+
+/** @defgroup regression Tests to make sure that old bugs do not reappear */
+
+/** @file test/ffmpeg_decoder_erro_test.cc
+ * @brief Check some bugs in the FFmpegDecoder
+ * @ingroup regression
+ */
+
+
+BOOST_AUTO_TEST_CASE (check_exception_during_flush)
+{
+ auto content = content_factory(TestPaths::private_data() / "3d_thx_broadway_2010_lossless.m2ts").front();
+ auto film = new_test_film2 ("check_exception_during_flush", { content });
+
+ content->set_trim_start (dcpomatic::ContentTime(2310308));
+ content->set_trim_end (dcpomatic::ContentTime(116020));
+
+ make_and_verify_dcp (film);
+}
+
+