#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();
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));
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();
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));
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();
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();
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();
content->audio->set_fade_in(dcpomatic::ContentTime::from_frames(2000, 48000));
content->audio->set_fade_out(dcpomatic::ContentTime::from_frames(1000, 48000));
- content->set_trim_start(dcpomatic::ContentTime::from_frames(5200, 48000));
+ content->set_trim_start(film, dcpomatic::ContentTime::from_frames(5200, 48000));
/* In the trim */
auto const f1 = content->audio->fade(stream, 0, 2000, 48000);
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();
content->audio->set_fade_in(dcpomatic::ContentTime::from_frames(2000, 48000));
content->audio->set_fade_out(dcpomatic::ContentTime::from_frames(1000, 48000));
- content->set_trim_start(dcpomatic::ContentTime::from_frames(5200, 48000));
+ content->set_trim_start(film, dcpomatic::ContentTime::from_frames(5200, 48000));
content->set_trim_end(dcpomatic::ContentTime::from_frames(9000, 48000));
/* In the 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();
}
+
+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));
+}
+