diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-11-17 22:06:12 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-11-17 22:06:12 +0000 |
| commit | cafa76a2b52449ce3c9eecfd0ea53b7318814951 (patch) | |
| tree | 81fe66f74256a54eb50f398790f2eea010bb3113 /test | |
| parent | 40532d61ea4909b3f8b12dd7024de217dbdfec6d (diff) | |
Another attempt to do external audio moderately nicely.
Diffstat (limited to 'test')
| -rw-r--r-- | test/metadata.ref | 4 | ||||
| -rw-r--r-- | test/test.cc | 59 |
2 files changed, 44 insertions, 19 deletions
diff --git a/test/metadata.ref b/test/metadata.ref index af6e9fddb..3f129c6e2 100644 --- a/test/metadata.ref +++ b/test/metadata.ref @@ -1,5 +1,6 @@ +version 1 name fred -use_dci_name 0 +use_dci_name 1 content dcp_content_type Short format 185 @@ -31,4 +32,5 @@ width 0 height 0 length 0 content_digest +external_audio_stream external 0 0 frames_per_second 0 diff --git a/test/test.cc b/test/test.cc index f8f51ddf5..87ec15be9 100644 --- a/test/test.cc +++ b/test/test.cc @@ -38,6 +38,8 @@ #include "job.h" #include "subtitle.h" #include "scaler.h" +#include "ffmpeg_decoder.h" +#include "external_audio_decoder.h" #define BOOST_TEST_DYN_LINK #define BOOST_TEST_MODULE dvdomatic_test #include <boost/test/unit_test.hpp> @@ -48,6 +50,7 @@ using std::stringstream; using std::vector; using boost::shared_ptr; using boost::thread; +using boost::dynamic_pointer_cast; void setup_test_config () @@ -129,6 +132,39 @@ BOOST_AUTO_TEST_CASE (film_metadata_test) BOOST_CHECK_EQUAL (::system (s.str().c_str ()), 0); } +BOOST_AUTO_TEST_CASE (stream_test) +{ + FFmpegAudioStream a ("ffmpeg 4 44100 1 hello there world", boost::optional<int> (1)); + BOOST_CHECK_EQUAL (a.id(), 4); + BOOST_CHECK_EQUAL (a.sample_rate(), 44100); + BOOST_CHECK_EQUAL (a.channel_layout(), 1); + BOOST_CHECK_EQUAL (a.name(), "hello there world"); + BOOST_CHECK_EQUAL (a.to_string(), "ffmpeg 4 44100 1 hello there world"); + + ExternalAudioStream e ("external 44100 1", boost::optional<int> (1)); + BOOST_CHECK_EQUAL (e.sample_rate(), 44100); + BOOST_CHECK_EQUAL (e.channel_layout(), 1); + BOOST_CHECK_EQUAL (e.to_string(), "external 44100 1"); + + SubtitleStream s ("5 a b c", boost::optional<int> (1)); + BOOST_CHECK_EQUAL (s.id(), 5); + BOOST_CHECK_EQUAL (s.name(), "a b c"); + + shared_ptr<AudioStream> ff = audio_stream_factory ("ffmpeg 4 44100 1 hello there world", boost::optional<int> (1)); + shared_ptr<FFmpegAudioStream> cff = dynamic_pointer_cast<FFmpegAudioStream> (ff); + BOOST_CHECK (cff); + BOOST_CHECK_EQUAL (cff->id(), 4); + BOOST_CHECK_EQUAL (cff->sample_rate(), 44100); + BOOST_CHECK_EQUAL (cff->channel_layout(), 1); + BOOST_CHECK_EQUAL (cff->name(), "hello there world"); + BOOST_CHECK_EQUAL (cff->to_string(), "ffmpeg 4 44100 1 hello there world"); + + shared_ptr<AudioStream> fe = audio_stream_factory ("external 44100 1", boost::optional<int> (1)); + BOOST_CHECK_EQUAL (fe->sample_rate(), 44100); + BOOST_CHECK_EQUAL (fe->channel_layout(), 1); + BOOST_CHECK_EQUAL (fe->to_string(), "external 44100 1"); +} + BOOST_AUTO_TEST_CASE (format_test) { Format::setup_formats (); @@ -423,21 +459,21 @@ BOOST_AUTO_TEST_CASE (audio_sampling_rate_test) shared_ptr<Film> f = new_test_film ("audio_sampling_rate_test"); f->set_frames_per_second (24); - f->set_audio_stream (AudioStream ("a", 42, 48000, 0)); + f->set_content_audio_stream (shared_ptr<AudioStream> (new FFmpegAudioStream ("a", 42, 48000, 0))); BOOST_CHECK_EQUAL (f->target_audio_sample_rate(), 48000); - f->set_audio_stream (AudioStream ("a", 42, 44100, 0)); + f->set_content_audio_stream (shared_ptr<AudioStream> (new FFmpegAudioStream ("a", 42, 44100, 0))); BOOST_CHECK_EQUAL (f->target_audio_sample_rate(), 48000); - f->set_audio_stream (AudioStream ("a", 42, 80000, 0)); + f->set_content_audio_stream (shared_ptr<AudioStream> (new FFmpegAudioStream ("a", 42, 80000, 0))); BOOST_CHECK_EQUAL (f->target_audio_sample_rate(), 96000); f->set_frames_per_second (23.976); - f->set_audio_stream (AudioStream ("a", 42, 48000, 0)); + f->set_content_audio_stream (shared_ptr<AudioStream> (new FFmpegAudioStream ("a", 42, 48000, 0))); BOOST_CHECK_EQUAL (f->target_audio_sample_rate(), 47952); f->set_frames_per_second (29.97); - f->set_audio_stream (AudioStream ("a", 42, 48000, 0)); + f->set_content_audio_stream (shared_ptr<AudioStream> (new FFmpegAudioStream ("a", 42, 48000, 0))); BOOST_CHECK_EQUAL (f->target_audio_sample_rate(), 47952); } @@ -518,16 +554,3 @@ BOOST_AUTO_TEST_CASE (job_manager_test) BOOST_CHECK_EQUAL (b->running(), false); } -BOOST_AUTO_TEST_CASE (stream_test) -{ - AudioStream a ("4 44100 1 hello there world", boost::optional<int> (1)); - BOOST_CHECK_EQUAL (a.id(), 4); - BOOST_CHECK_EQUAL (a.sample_rate(), 44100); - BOOST_CHECK_EQUAL (a.channel_layout(), 1); - BOOST_CHECK_EQUAL (a.name(), "hello there world"); - BOOST_CHECK_EQUAL (a.to_string(), "4 44100 1 hello there world"); - - SubtitleStream s ("5 a b c"); - BOOST_CHECK_EQUAL (s.id(), 5); - BOOST_CHECK_EQUAL (s.name(), "a b c"); -} |
