Fix font_id_map errors when importing DCP subtitles that have no
[dcpomatic.git] / test / audio_content_test.cc
index 92bb4bcf052504151958d94ee89c8e9b3fe8c5d7..6114c6b2ce9935b27f3410ad11cacc5887687243 100644 (file)
 #include "lib/audio_content.h"
 #include "lib/content_factory.h"
 #include "lib/maths_util.h"
+#include "lib/video_content.h"
 #include "test.h"
 #include <boost/test/unit_test.hpp>
 
 
 BOOST_AUTO_TEST_CASE (audio_content_fade_empty_region)
 {
-       auto content = content_factory("test/data/impulse_train.wav").front();
-       auto film = new_test_film2("audio_content_fade_empty_region", { content });
+       auto content = content_factory("test/data/impulse_train.wav");
+       auto film = new_test_film2("audio_content_fade_empty_region", content);
 
-       BOOST_CHECK (content->audio->fade(content->audio->stream(), 0, 0, 48000).empty());
+       BOOST_CHECK(content[0]->audio->fade(content[0]->audio->stream(), 0, 0, 48000).empty());
 }
 
 
 BOOST_AUTO_TEST_CASE (audio_content_fade_no_fade)
 {
-       auto content = content_factory("test/data/impulse_train.wav").front();
-       auto film = new_test_film2("audio_content_fade_no_fade", { content });
+       auto content = content_factory("test/data/impulse_train.wav");
+       auto film = new_test_film2("audio_content_fade_no_fade", content);
 
-       auto const stream = content->audio->stream();
+       auto const stream = content[0]->audio->stream();
 
-       BOOST_CHECK (content->audio->fade(stream, 0, 2000, 48000).empty());
-       BOOST_CHECK (content->audio->fade(stream, 9999, 451, 48000).empty());
-       BOOST_CHECK (content->audio->fade(stream, stream->length() + 100, 8000, 48000).empty());
+       BOOST_CHECK(content[0]->audio->fade(stream, 0, 2000, 48000).empty());
+       BOOST_CHECK(content[0]->audio->fade(stream, 9999, 451, 48000).empty());
+       BOOST_CHECK(content[0]->audio->fade(stream, stream->length() + 100, 8000, 48000).empty());
 }
 
 
 BOOST_AUTO_TEST_CASE (audio_content_fade_unfaded_part)
 {
-       auto content = content_factory("test/data/impulse_train.wav").front();
+       auto content = content_factory("test/data/impulse_train.wav")[0];
        auto film = new_test_film2("audio_content_fade_unfaded_part", { content });
 
        auto const stream = content->audio->stream();
@@ -66,7 +67,7 @@ BOOST_AUTO_TEST_CASE (audio_content_fade_unfaded_part)
 
 BOOST_AUTO_TEST_CASE (audio_content_within_the_fade_in)
 {
-       auto content = content_factory("test/data/impulse_train.wav").front();
+       auto content = content_factory("test/data/impulse_train.wav")[0];
        auto film = new_test_film2("audio_content_within_the_fade_in", { content });
 
        content->audio->set_fade_in(dcpomatic::ContentTime::from_frames(2000, 48000));
@@ -81,7 +82,7 @@ BOOST_AUTO_TEST_CASE (audio_content_within_the_fade_in)
 
 BOOST_AUTO_TEST_CASE (audio_content_within_the_fade_out)
 {
-       auto content = content_factory("test/data/impulse_train.wav").front();
+       auto content = content_factory("test/data/impulse_train.wav")[0];
        auto film = new_test_film2("audio_content_within_the_fade_out", { content });
 
        auto const stream = content->audio->stream();
@@ -99,7 +100,7 @@ BOOST_AUTO_TEST_CASE (audio_content_within_the_fade_out)
 
 BOOST_AUTO_TEST_CASE (audio_content_overlapping_the_fade_in)
 {
-       auto content = content_factory("test/data/impulse_train.wav").front();
+       auto content = content_factory("test/data/impulse_train.wav")[0];
        auto film = new_test_film2("audio_content_overlapping_the_fade_in", { content });
 
        content->audio->set_fade_in(dcpomatic::ContentTime::from_frames(2000, 48000));
@@ -118,7 +119,7 @@ BOOST_AUTO_TEST_CASE (audio_content_overlapping_the_fade_in)
 
 BOOST_AUTO_TEST_CASE (audio_content_overlapping_the_fade_out)
 {
-       auto content = content_factory("test/data/impulse_train.wav").front();
+       auto content = content_factory("test/data/impulse_train.wav")[0];
        auto film = new_test_film2("audio_content_overlapping_the_fade_out", { content });
 
        auto const stream = content->audio->stream();
@@ -139,7 +140,7 @@ BOOST_AUTO_TEST_CASE (audio_content_overlapping_the_fade_out)
 
 BOOST_AUTO_TEST_CASE (audio_content_fade_in_and_out)
 {
-       auto content = content_factory("test/data/impulse_train.wav").front();
+       auto content = content_factory("test/data/impulse_train.wav")[0];
        auto film = new_test_film2("audio_content_fade_in_and_out", { content });
 
        auto const stream = content->audio->stream();
@@ -158,7 +159,7 @@ BOOST_AUTO_TEST_CASE (audio_content_fade_in_and_out)
 
 BOOST_AUTO_TEST_CASE (audio_content_fade_in_with_trim)
 {
-       auto content = content_factory("test/data/impulse_train.wav").front();
+       auto content = content_factory("test/data/impulse_train.wav")[0];
        auto film = new_test_film2("audio_content_fade_in_with_trim", { content });
 
        auto const stream = content->audio->stream();
@@ -185,7 +186,7 @@ BOOST_AUTO_TEST_CASE (audio_content_fade_in_with_trim)
 
 BOOST_AUTO_TEST_CASE (audio_content_fade_out_with_trim)
 {
-       auto content = content_factory("test/data/impulse_train.wav").front();
+       auto content = content_factory("test/data/impulse_train.wav")[0];
        auto film = new_test_film2("audio_content_fade_out_with_trim", { content });
 
        auto const stream = content->audio->stream();
@@ -215,7 +216,7 @@ BOOST_AUTO_TEST_CASE (audio_content_fade_out_with_trim)
 BOOST_AUTO_TEST_CASE (audio_content_fade_out_with_trim_at_44k1)
 {
        /* 5s at 44.1kHz */
-       auto content = content_factory("test/data/white.wav").front();
+       auto content = content_factory("test/data/white.wav")[0];
        auto film = new_test_film2("audio_content_fade_out_with_trim_at_44k1", { content });
 
        auto const stream = content->audio->stream();
@@ -244,3 +245,17 @@ BOOST_AUTO_TEST_CASE (audio_content_fade_out_with_trim_at_44k1)
 
 }
 
+
+BOOST_AUTO_TEST_CASE (audio_content_fades_same_as_video)
+{
+       auto content = content_factory("test/data/staircase.mov")[0];
+       auto film = new_test_film2("audio_content_fades_same_as_video", { content });
+
+       content->audio->set_use_same_fades_as_video(true);
+       content->video->set_fade_in(9);
+       content->video->set_fade_out(81);
+
+       BOOST_CHECK(content->audio->fade_in() == dcpomatic::ContentTime::from_frames(9 * 48000 / 24, 48000));
+       BOOST_CHECK(content->audio->fade_out() == dcpomatic::ContentTime::from_frames(81 * 48000 / 24, 48000));
+}
+