Merge branch 'sync-fixes' into staging
[dcpomatic.git] / test / stream_test.cc
1 /*
2     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
3
4     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation; either version 2 of the License, or
7     (at your option) any later version.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU General Public License
15     along with this program; if not, write to the Free Software
16     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18 */
19
20 BOOST_AUTO_TEST_CASE (stream_test)
21 {
22         FFmpegAudioStream a ("ffmpeg 4 44100 1 hello there world", boost::optional<int> (1));
23         BOOST_CHECK_EQUAL (a.id(), 4);
24         BOOST_CHECK_EQUAL (a.sample_rate(), 44100);
25         BOOST_CHECK_EQUAL (a.channel_layout(), 1);
26         BOOST_CHECK_EQUAL (a.name(), "hello there world");
27         BOOST_CHECK_EQUAL (a.to_string(), "ffmpeg 4 44100 1 hello there world");
28
29         SndfileStream e ("external 44100 1", boost::optional<int> (1));
30         BOOST_CHECK_EQUAL (e.sample_rate(), 44100);
31         BOOST_CHECK_EQUAL (e.channel_layout(), 1);
32         BOOST_CHECK_EQUAL (e.to_string(), "external 44100 1");
33
34         SubtitleStream s ("5 a b c", boost::optional<int> (1));
35         BOOST_CHECK_EQUAL (s.id(), 5);
36         BOOST_CHECK_EQUAL (s.name(), "a b c");
37
38         shared_ptr<AudioStream> ff = audio_stream_factory ("ffmpeg 4 44100 1 hello there world", boost::optional<int> (1));
39         shared_ptr<FFmpegAudioStream> cff = dynamic_pointer_cast<FFmpegAudioStream> (ff);
40         BOOST_CHECK (cff);
41         BOOST_CHECK_EQUAL (cff->id(), 4);
42         BOOST_CHECK_EQUAL (cff->sample_rate(), 44100);
43         BOOST_CHECK_EQUAL (cff->channel_layout(), 1);
44         BOOST_CHECK_EQUAL (cff->name(), "hello there world");
45         BOOST_CHECK_EQUAL (cff->to_string(), "ffmpeg 4 44100 1 hello there world");
46
47         shared_ptr<AudioStream> fe = audio_stream_factory ("external 44100 1", boost::optional<int> (1));
48         BOOST_CHECK_EQUAL (fe->sample_rate(), 44100);
49         BOOST_CHECK_EQUAL (fe->channel_layout(), 1);
50         BOOST_CHECK_EQUAL (fe->to_string(), "external 44100 1");
51 }
52