#include "lib/ratio.h"
#include "lib/dcp_content_type.h"
#include "lib/ffmpeg_decoder.h"
+#include "lib/ffmpeg_audio_stream.h"
#include "lib/content_video.h"
#include "test.h"
using std::cout;
+using std::list;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
using boost::optional;
film->examine_and_add_content (content);
wait_for_jobs ();
+ /* Work out the first video frame index that we will be given, taking into account
+ * the difference between first video and first audio.
+ */
+ ContentTime video_delay = content->first_video().get() - content->audio_stream()->first_audio.get();
+ if (video_delay < ContentTime ()) {
+ video_delay = ContentTime ();
+ }
+
+ VideoFrame const first_frame = video_delay.round_up (content->video_frame_rate ()).frames (content->video_frame_rate ());
+
FFmpegDecoder decoder (content, film->log());
- optional<ContentVideo> a = decoder.get_video (0, true);
- optional<ContentVideo> b = decoder.get_video (0, true);
- BOOST_CHECK_EQUAL (a->frame, 0);
- BOOST_CHECK_EQUAL (b->frame, 0);
+ list<ContentVideo> a = decoder.get_video (first_frame, true);
+ BOOST_CHECK (a.size() == 1);
+ BOOST_CHECK_EQUAL (a.front().frame, first_frame);
}