summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-05-29 21:12:17 +0200
committerCarl Hetherington <cth@carlh.net>2024-05-29 21:12:17 +0200
commit07aa4852acfd908c4e3a92f7bed2c7328cfcf123 (patch)
treebe9642b5202a0342be268f6e4b9f93c684bab347 /test
parentbfac1d7cfec57b225a0257d2fa0172efe7fbd08b (diff)
parent78dc1250feed93df7f519c559949d4fac4cc5b1a (diff)
Merge remote-tracking branch 'origin/main' into v2.17.x
Diffstat (limited to 'test')
-rw-r--r--test/audio_content_test.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/audio_content_test.cc b/test/audio_content_test.cc
index 72023a66f..465109259 100644
--- a/test/audio_content_test.cc
+++ b/test/audio_content_test.cc
@@ -20,10 +20,14 @@
#include "lib/audio_content.h"
+#include "lib/dcp_content.h"
#include "lib/content_factory.h"
+#include "lib/film.h"
#include "lib/maths_util.h"
#include "lib/video_content.h"
#include "test.h"
+#include <dcp/sound_asset.h>
+#include <dcp/sound_asset_reader.h>
#include <boost/test/unit_test.hpp>
@@ -259,3 +263,27 @@ BOOST_AUTO_TEST_CASE (audio_content_fades_same_as_video)
BOOST_CHECK(content->audio->fade_out() == dcpomatic::ContentTime::from_frames(81 * 48000 / 24, 48000));
}
+
+
+BOOST_AUTO_TEST_CASE(fade_out_works_with_dcp_content)
+{
+ auto dcp = std::make_shared<DCPContent>(TestPaths::private_data() / "JourneyToJah_TLR-1_F_EN-DE-FR_CH_51_2K_LOK_20140225_DGL_SMPTE_OV");
+ auto film = new_test_film2("fade_out_works_with_dcp_content", { dcp });
+ dcp->audio->set_fade_out(dcpomatic::ContentTime::from_seconds(15));
+ make_and_verify_dcp(film);
+
+ int32_t max = 0;
+ dcp::SoundAsset sound(find_file(film->dir(film->dcp_name()), "pcm_"));
+ auto reader = sound.start_read();
+ for (auto i = 0; i < sound.intrinsic_duration(); ++i) {
+ auto frame = reader->get_frame(i);
+ for (auto j = 0; j < frame->channels(); ++j) {
+ for (auto k = 0; k < frame->samples(); ++k) {
+ max = std::max(max, frame->get(j, k));
+ }
+ }
+ }
+
+ BOOST_CHECK(max > 2000);
+}
+