/*
- Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-2014 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
#include "lib/player.h"
#include "lib/ratio.h"
#include "lib/dcp_content_type.h"
+#include "lib/player_video_frame.h"
#include "test.h"
/* This test needs stuff in Player that is only included in debug mode */
PlayerWrapper (shared_ptr<Player> p)
: _player (p)
{
- _player->Video.connect (bind (&PlayerWrapper::process_video, this, _1, _2, _5));
+ _player->Video.connect (bind (&PlayerWrapper::process_video, this, _1, _3));
}
- void process_video (shared_ptr<const Image> i, bool, Time t)
+ void process_video (shared_ptr<PlayerVideoFrame> i, Time t)
{
Video v;
v.content = _player->_last_video;
- v.image = i;
+ v.image = i->image (PIX_FMT_RGB24);
v.time = t;
_queue.push_front (v);
}
BOOST_AUTO_TEST_CASE (play_test)
{
shared_ptr<Film> film = new_test_film ("play_test");
- film->set_dcp_content_type (DCPContentType::from_dci_name ("FTR"));
+ film->set_dcp_content_type (DCPContentType::from_isdcf_name ("FTR"));
film->set_container (Ratio::from_id ("185"));
film->set_name ("play_test");
film->examine_and_add_content (A);
wait_for_jobs ();
- BOOST_CHECK_EQUAL (A->video_length(), 16);
+ BOOST_CHECK_EQUAL (A->video_length_after_3d_combine(), 16);
shared_ptr<FFmpegContent> B (new FFmpegContent (film, "test/data/red_30.mp4"));
film->examine_and_add_content (B);
wait_for_jobs ();
- BOOST_CHECK_EQUAL (B->video_length(), 16);
+ BOOST_CHECK_EQUAL (B->video_length_after_3d_combine(), 16);
/* Film should have been set to 25fps */
BOOST_CHECK_EQUAL (film->video_frame_rate(), 25);
/* A is 16 frames long at 25 fps */
BOOST_CHECK_EQUAL (B->position(), 16 * TIME_HZ / 25);
- shared_ptr<Player> player = film->make_player ();
+ shared_ptr<Player> player (new Player (film));
PlayerWrapper wrap (player);
/* Seek and audio don't get on at the moment */
player->disable_audio ();
}
}
- player->seek (10 * TIME_HZ / 25, true);
+ wrap.seek (10 * TIME_HZ / 25, true);
optional<Video> v = wrap.get_video ();
BOOST_CHECK (v);
BOOST_CHECK_EQUAL (v.get().time, 10 * TIME_HZ / 25);