/*
- Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2015 Carl Hetherington <cth@carlh.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
+/** @file test/ffmpeg_decoder_seek_test.cc
+ * @brief Check that get_video() returns the frame indexes that we ask for
+ * for FFmpegDecoder.
+ *
+ * This doesn't check that the contents of those frames are right, which
+ * it probably should.
+ */
+
#include <vector>
#include <boost/test/unit_test.hpp>
#include <boost/filesystem.hpp>
using std::cerr;
using std::vector;
+using std::list;
using boost::shared_ptr;
using boost::optional;
static void
-check (FFmpegDecoder& decoder, int frame)
+check (shared_ptr<FFmpegDecoder> decoder, int frame)
{
- optional<ContentVideo> v;
- v = decoder.get_video (frame, true);
- BOOST_CHECK (v);
- BOOST_CHECK_EQUAL (v->frame, frame);
+ list<ContentVideo> v;
+ v = decoder->get_video (frame, true);
+ BOOST_CHECK (v.size() == 1);
+ BOOST_CHECK_EQUAL (v.front().frame, frame);
}
static void
film->examine_and_add_content (content);
wait_for_jobs ();
shared_ptr<Log> log (new NullLog);
- FFmpegDecoder decoder (content, log);
+ shared_ptr<FFmpegDecoder> decoder (new FFmpegDecoder (content, log));
for (vector<int>::const_iterator i = frames.begin(); i != frames.end(); ++i) {
check (decoder, *i);