}
VideoRange range () const {
- return VIDEO_RANGE_FULL;
+ return VideoRange::FULL;
}
std::string name () const {
{
shared_ptr<dcp::OpenJPEGImage> xyz;
- shared_ptr<Image> image = frame->image (bind (&PlayerVideo::keep_xyz_or_rgb, _1), VIDEO_RANGE_FULL, true, false);
+ shared_ptr<Image> image = frame->image (bind (&PlayerVideo::keep_xyz_or_rgb, _1), VideoRange::FULL, true, false);
if (frame->colour_conversion()) {
xyz = dcp::rgb_to_xyz (
image->data()[0],
}
_butler.reset (
- new Butler(_film, _player, map, _output_audio_channels, bind(&PlayerVideo::force, _1, FFmpegFileEncoder::pixel_format(format)), VIDEO_RANGE_VIDEO, true, false)
+ new Butler(_film, _player, map, _output_audio_channels, bind(&PlayerVideo::force, _1, FFmpegFileEncoder::pixel_format(format)), VideoRange::VIDEO, true, false)
);
}
switch (color_range()) {
case AVCOL_RANGE_MPEG:
case AVCOL_RANGE_UNSPECIFIED:
- return VIDEO_RANGE_VIDEO;
+ return VideoRange::VIDEO;
case AVCOL_RANGE_JPEG:
default:
- return VIDEO_RANGE_FULL;
+ return VideoRange::FULL;
}
}
/* All our output formats are video range at the moment */
shared_ptr<Image> image = video->image (
bind (&PlayerVideo::force, _1, _pixel_format),
- VIDEO_RANGE_VIDEO,
+ VideoRange::VIDEO,
true,
false
);
AVPixelFormat const pix_fmt = static_cast<AVPixelFormat>(frame->format);
_image.reset (new Image(frame));
- if (_video_range == VIDEO_RANGE_VIDEO && av_pix_fmt_desc_get(pix_fmt)->flags & AV_PIX_FMT_FLAG_RGB) {
+ if (_video_range == VideoRange::VIDEO && av_pix_fmt_desc_get(pix_fmt)->flags & AV_PIX_FMT_FLAG_RGB) {
/* Asking for the video range to be converted by libswscale (in Image) will not work for
* RGB sources since that method only processes video range in YUV and greyscale. So we have
* to do it ourselves here.
*/
sws_setColorspaceDetails (
scale_context,
- sws_getCoefficients (lut[static_cast<int>(yuv_to_rgb)]), video_range == VIDEO_RANGE_VIDEO ? 0 : 1,
- sws_getCoefficients (lut[static_cast<int>(yuv_to_rgb)]), out_video_range == VIDEO_RANGE_VIDEO ? 0 : 1,
+ sws_getCoefficients (lut[static_cast<int>(yuv_to_rgb)]), video_range == VideoRange::VIDEO ? 0 : 1,
+ sws_getCoefficients (lut[static_cast<int>(yuv_to_rgb)]), out_video_range == VideoRange::VIDEO ? 0 : 1,
0, 1 << 16, 1 << 16
);
}
bool yuv () const;
VideoRange range () const {
- return VIDEO_RANGE_FULL;
+ return VideoRange::FULL;
}
private:
eyes,
PART_WHOLE,
PresetColourConversion::all().front().conversion,
- VIDEO_RANGE_FULL,
+ VideoRange::FULL,
std::weak_ptr<Content>(),
boost::optional<Frame>(),
false
video_range_to_string (VideoRange r)
{
switch (r) {
- case VIDEO_RANGE_FULL:
+ case VideoRange::FULL:
return "full";
- case VIDEO_RANGE_VIDEO:
+ case VideoRange::VIDEO:
return "video";
default:
DCPOMATIC_ASSERT (false);
string_to_video_range (string s)
{
if (s == "full") {
- return VIDEO_RANGE_FULL;
+ return VideoRange::FULL;
} else if (s == "video") {
- return VIDEO_RANGE_VIDEO;
+ return VideoRange::VIDEO;
}
DCPOMATIC_ASSERT (false);
- return VIDEO_RANGE_FULL;
+ return VideoRange::FULL;
}
};
-enum VideoRange
+enum class VideoRange
{
- VIDEO_RANGE_FULL, ///< full, or "JPEG" (0-255 for 8-bit)
- VIDEO_RANGE_VIDEO ///< video, or "MPEG" (16-235 for 8-bit)
+ FULL, ///< full, or "JPEG" (0-255 for 8-bit)
+ VIDEO ///< video, or "MPEG" (16-235 for 8-bit)
};
extern std::string video_range_to_string (VideoRange r);
emit_subtitle_image (ContentTimePeriod period, dcp::SubtitleImage sub, dcp::Size size, shared_ptr<TextDecoder> decoder)
{
/* XXX: this is rather inefficient; decoding the image just to get its size */
- FFmpegImageProxy proxy (sub.png_image(), VIDEO_RANGE_FULL);
+ FFmpegImageProxy proxy (sub.png_image(), VideoRange::FULL);
auto image = proxy.image().image;
/* set up rect with height and width */
dcpomatic::Rect<double> rect(0, 0, image->size().width / double(size.width), image->size().height / double(size.height));
, _yuv (true)
, _fade_in (0)
, _fade_out (0)
- , _range (VIDEO_RANGE_FULL)
+ , _range (VideoRange::FULL)
{
}
_fade_in = _fade_out = 0;
}
- _range = VIDEO_RANGE_FULL;
+ _range = VideoRange::FULL;
if (node->optional_string_child("Range").get_value_or("full") == "video") {
- _range = VIDEO_RANGE_VIDEO;
+ _range = VideoRange::VIDEO;
}
}
node->add_child("YUV")->add_child_text (_yuv ? "1" : "0");
node->add_child("FadeIn")->add_child_text (raw_convert<string> (_fade_in));
node->add_child("FadeOut")->add_child_text (raw_convert<string> (_fade_out));
- node->add_child("Range")->add_child_text(_range == VIDEO_RANGE_FULL ? "full" : "video");
+ node->add_child("Range")->add_child_text(_range == VideoRange::FULL ? "full" : "video");
}
void
_custom_size ? _custom_size->height : 0,
_fade_in,
_fade_out,
- _range == VIDEO_RANGE_FULL ? 0 : 1
+ _range == VideoRange::FULL ? 0 : 1
);
string s (buffer);
boost::optional<double> sample_aspect_ratio () const;
bool yuv () const;
VideoRange range () const {
- return VIDEO_RANGE_FULL;
+ return VideoRange::FULL;
}
private:
Config::instance()->audio_mapping(_audio_channels),
_audio_channels,
bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24),
- VIDEO_RANGE_FULL,
+ VideoRange::FULL,
false,
true
)
{
shared_ptr<PlayerVideo> pv = player_video().first;
if (pv) {
- set_image (pv->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VIDEO_RANGE_FULL, false, true));
+ set_image (pv->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true));
draw (pv->inter_position(), pv->inter_size());
_viewer->image_changed (pv);
}
_state_timer.set ("get image");
set_image (
- player_video().first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VIDEO_RANGE_FULL, false, true)
+ player_video().first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true)
);
_state_timer.set ("ImageChanged");
switch (_range->GetSelection()) {
case 0:
- vc.front()->video->set_range (VIDEO_RANGE_FULL);
+ vc.front()->video->set_range (VideoRange::FULL);
break;
case 1:
- vc.front()->video->set_range (VIDEO_RANGE_VIDEO);
+ vc.front()->video->set_range (VideoRange::VIDEO);
break;
default:
DCPOMATIC_ASSERT (false);
setup_sensitivity ();
} else if (property == VideoContentProperty::RANGE) {
if (vcs) {
- checked_set (_range, vcs->video->range() == VIDEO_RANGE_FULL ? 0 : 1);
+ checked_set (_range, vcs->video->range() == VideoRange::FULL ? 0 : 1);
} else {
checked_set (_range, 0);
}
map.set (i, i, 1);
}
- Butler butler (film, shared_ptr<Player>(new Player(film)), map, 6, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VIDEO_RANGE_FULL, false, false);
+ Butler butler (film, shared_ptr<Player>(new Player(film)), map, 6, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, false);
BOOST_CHECK (butler.get_video(true, 0).second == DCPTime());
BOOST_CHECK (butler.get_video(true, 0).second == DCPTime::from_frames(1, 24));
EYES_BOTH,
PART_WHOLE,
ColourConversion(),
- VIDEO_RANGE_FULL,
+ VideoRange::FULL,
weak_ptr<Content>(),
optional<Frame>(),
false
EYES_BOTH,
PART_WHOLE,
ColourConversion(),
- VIDEO_RANGE_FULL,
+ VideoRange::FULL,
weak_ptr<Content>(),
optional<Frame>(),
false
EYES_BOTH,
PART_WHOLE,
ColourConversion(),
- VIDEO_RANGE_FULL,
+ VideoRange::FULL,
weak_ptr<Content>(),
optional<Frame>(),
false
EYES_BOTH,
PART_WHOLE,
PresetColourConversion::all().front().conversion,
- VIDEO_RANGE_FULL,
+ VideoRange::FULL,
weak_ptr<Content>(),
optional<Frame>(),
false
AudioMapping(6, 6),
6,
bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24),
- VIDEO_RANGE_FULL,
+ VideoRange::FULL,
false,
true)
);
}
/* assuming DCP is 24fps/48kHz */
butler->get_audio (audio_buffer, 2000);
- p.first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VIDEO_RANGE_FULL, false, true);
+ p.first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true);
}
delete[] audio_buffer;
}
BOOST_AUTO_TEST_CASE (ffmpeg_image_proxy_same_test)
{
{
- shared_ptr<FFmpegImageProxy> proxy1(new FFmpegImageProxy(data_file0, VIDEO_RANGE_FULL));
- shared_ptr<FFmpegImageProxy> proxy2(new FFmpegImageProxy(data_file0, VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy1(new FFmpegImageProxy(data_file0, VideoRange::FULL));
+ shared_ptr<FFmpegImageProxy> proxy2(new FFmpegImageProxy(data_file0, VideoRange::FULL));
BOOST_CHECK (proxy1->same(proxy2));
}
{
- shared_ptr<FFmpegImageProxy> proxy1(new FFmpegImageProxy(data_file0, VIDEO_RANGE_FULL));
- shared_ptr<FFmpegImageProxy> proxy2(new FFmpegImageProxy(data_file1, VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy1(new FFmpegImageProxy(data_file0, VideoRange::FULL));
+ shared_ptr<FFmpegImageProxy> proxy2(new FFmpegImageProxy(data_file1, VideoRange::FULL));
BOOST_CHECK (!proxy1->same(proxy2));
}
}
void
alpha_blend_test_one (AVPixelFormat format, string suffix)
{
- shared_ptr<FFmpegImageProxy> proxy (new FFmpegImageProxy (TestPaths::private_data() / "prophet_frame.tiff", VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy (new FFmpegImageProxy (TestPaths::private_data() / "prophet_frame.tiff", VideoRange::FULL));
shared_ptr<Image> raw = proxy->image().image;
shared_ptr<Image> background = raw->convert_pixel_format (dcp::YUVToRGB::REC709, format, true, false);
/** Test Image::crop_scale_window with YUV420P and some windowing */
BOOST_AUTO_TEST_CASE (crop_scale_window_test)
{
- shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy("test/data/flat_red.png", VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy("test/data/flat_red.png", VideoRange::FULL));
shared_ptr<Image> raw = proxy->image().image;
shared_ptr<Image> out = raw->crop_scale_window(
- Crop(), dcp::Size(1998, 836), dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, VIDEO_RANGE_FULL, AV_PIX_FMT_YUV420P, VIDEO_RANGE_FULL, true, false
+ Crop(), dcp::Size(1998, 836), dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, VideoRange::FULL, AV_PIX_FMT_YUV420P, VideoRange::FULL, true, false
);
shared_ptr<Image> save = out->scale(dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, AV_PIX_FMT_RGB24, false, false);
write_image(save, "build/test/crop_scale_window_test.png");
{
shared_ptr<Image> image (new Image(AV_PIX_FMT_XYZ12LE, dcp::Size(2048, 858), true));
image->crop_scale_window (
- Crop(279, 0, 0, 0), dcp::Size(1069, 448), dcp::Size(1069, 578), dcp::YUVToRGB::REC709, VIDEO_RANGE_FULL, AV_PIX_FMT_RGB24, VIDEO_RANGE_FULL, false, false
+ Crop(279, 0, 0, 0), dcp::Size(1069, 448), dcp::Size(1069, 578), dcp::YUVToRGB::REC709, VideoRange::FULL, AV_PIX_FMT_RGB24, VideoRange::FULL, false, false
);
image->crop_scale_window (
- Crop(2048, 0, 0, 0), dcp::Size(1069, 448), dcp::Size(1069, 578), dcp::YUVToRGB::REC709, VIDEO_RANGE_FULL, AV_PIX_FMT_RGB24, VIDEO_RANGE_FULL, false, false
+ Crop(2048, 0, 0, 0), dcp::Size(1069, 448), dcp::Size(1069, 578), dcp::YUVToRGB::REC709, VideoRange::FULL, AV_PIX_FMT_RGB24, VideoRange::FULL, false, false
);
}
BOOST_AUTO_TEST_CASE (crop_scale_window_test3)
{
- shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy(TestPaths::private_data() / "player_seek_test_0.png", VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy(TestPaths::private_data() / "player_seek_test_0.png", VideoRange::FULL));
shared_ptr<Image> xyz = proxy->image().image->convert_pixel_format(dcp::YUVToRGB::REC709, AV_PIX_FMT_RGB24, true, false);
shared_ptr<Image> cropped = xyz->crop_scale_window(
- Crop(512, 0, 0, 0), dcp::Size(1486, 1080), dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, VIDEO_RANGE_FULL, AV_PIX_FMT_RGB24, VIDEO_RANGE_FULL, false, false
+ Crop(512, 0, 0, 0), dcp::Size(1486, 1080), dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, VideoRange::FULL, AV_PIX_FMT_RGB24, VideoRange::FULL, false, false
);
write_image(cropped, "build/test/crop_scale_window_test3.png");
check_image("test/data/crop_scale_window_test3.png", "build/test/crop_scale_window_test3.png");
BOOST_AUTO_TEST_CASE (crop_scale_window_test4)
{
- shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy(TestPaths::private_data() / "player_seek_test_0.png", VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy(TestPaths::private_data() / "player_seek_test_0.png", VideoRange::FULL));
shared_ptr<Image> xyz = proxy->image().image->convert_pixel_format(dcp::YUVToRGB::REC709, AV_PIX_FMT_RGB24, true, false);
shared_ptr<Image> cropped = xyz->crop_scale_window(
- Crop(512, 0, 0, 0), dcp::Size(1486, 1080), dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, VIDEO_RANGE_FULL, AV_PIX_FMT_XYZ12LE, VIDEO_RANGE_FULL, false, false
+ Crop(512, 0, 0, 0), dcp::Size(1486, 1080), dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, VideoRange::FULL, AV_PIX_FMT_XYZ12LE, VideoRange::FULL, false, false
);
write_image(cropped, "build/test/crop_scale_window_test4.png");
check_image("test/data/crop_scale_window_test4.png", "build/test/crop_scale_window_test4.png", 35000);
BOOST_AUTO_TEST_CASE (crop_scale_window_test5)
{
- shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy(TestPaths::private_data() / "player_seek_test_0.png", VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy(TestPaths::private_data() / "player_seek_test_0.png", VideoRange::FULL));
shared_ptr<Image> xyz = proxy->image().image->convert_pixel_format(dcp::YUVToRGB::REC709, AV_PIX_FMT_XYZ12LE, true, false);
shared_ptr<Image> cropped = xyz->crop_scale_window(
- Crop(512, 0, 0, 0), dcp::Size(1486, 1080), dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, VIDEO_RANGE_FULL, AV_PIX_FMT_RGB24, VIDEO_RANGE_FULL, false, false
+ Crop(512, 0, 0, 0), dcp::Size(1486, 1080), dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, VideoRange::FULL, AV_PIX_FMT_RGB24, VideoRange::FULL, false, false
);
write_image(cropped, "build/test/crop_scale_window_test5.png");
check_image("test/data/crop_scale_window_test5.png", "build/test/crop_scale_window_test5.png");
BOOST_AUTO_TEST_CASE (crop_scale_window_test6)
{
- shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy(TestPaths::private_data() / "player_seek_test_0.png", VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy(TestPaths::private_data() / "player_seek_test_0.png", VideoRange::FULL));
shared_ptr<Image> xyz = proxy->image().image->convert_pixel_format(dcp::YUVToRGB::REC709, AV_PIX_FMT_XYZ12LE, true, false);
shared_ptr<Image> cropped = xyz->crop_scale_window(
- Crop(512, 0, 0, 0), dcp::Size(1486, 1080), dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, VIDEO_RANGE_FULL, AV_PIX_FMT_XYZ12LE, VIDEO_RANGE_FULL, false, false
+ Crop(512, 0, 0, 0), dcp::Size(1486, 1080), dcp::Size(1998, 1080), dcp::YUVToRGB::REC709, VideoRange::FULL, AV_PIX_FMT_XYZ12LE, VideoRange::FULL, false, false
);
write_image(cropped, "build/test/crop_scale_window_test6.png");
check_image("test/data/crop_scale_window_test6.png", "build/test/crop_scale_window_test6.png", 35000);
{
using namespace boost::filesystem;
for (int left_crop = 0; left_crop < 8; ++left_crop) {
- shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy("test/data/rgb_grey_testcard.png", VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy("test/data/rgb_grey_testcard.png", VideoRange::FULL));
shared_ptr<Image> yuv = proxy->image().image->convert_pixel_format(dcp::YUVToRGB::REC709, AV_PIX_FMT_YUV420P, true, false);
int rounded = left_crop - (left_crop % 2);
shared_ptr<Image> cropped = yuv->crop_scale_window(
dcp::Size(1998 - rounded, 1080),
dcp::Size(1998 - rounded, 1080),
dcp::YUVToRGB::REC709,
- VIDEO_RANGE_VIDEO,
+ VideoRange::VIDEO,
AV_PIX_FMT_RGB24,
- VIDEO_RANGE_VIDEO,
+ VideoRange::VIDEO,
true,
false
);
BOOST_AUTO_TEST_CASE (as_png_test)
{
- shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy("test/data/3d_test/000001.png", VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy("test/data/3d_test/000001.png", VideoRange::FULL));
shared_ptr<Image> image_rgb = proxy->image().image;
shared_ptr<Image> image_bgr = image_rgb->convert_pixel_format(dcp::YUVToRGB::REC709, AV_PIX_FMT_BGRA, true, false);
image_rgb->as_png().write ("build/test/as_png_rgb.png");
static void
fade_test_format_red (AVPixelFormat f, float amount, string name)
{
- shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy("test/data/flat_red.png", VIDEO_RANGE_FULL));
+ shared_ptr<FFmpegImageProxy> proxy(new FFmpegImageProxy("test/data/flat_red.png", VideoRange::FULL));
shared_ptr<Image> red = proxy->image().image->convert_pixel_format(dcp::YUVToRGB::REC709, f, true, false);
red->fade (amount);
string const filename = "fade_test_red_" + name + ".png";
shared_ptr<Image> image (new Image (AV_PIX_FMT_RGB24, dcp::Size(128, 128), true));
image->make_black ();
shared_ptr<Image> scaled = image->crop_scale_window (
- Crop(0, 0, 128, 128), dcp::Size(1323, 565), dcp::Size(1349, 565), dcp::YUVToRGB::REC709, VIDEO_RANGE_FULL, AV_PIX_FMT_RGB24, VIDEO_RANGE_FULL, true, true
+ Crop(0, 0, 128, 128), dcp::Size(1323, 565), dcp::Size(1349, 565), dcp::YUVToRGB::REC709, VideoRange::FULL, AV_PIX_FMT_RGB24, VideoRange::FULL, true, true
);
string const filename = "over_crop_test.png";
write_image (scaled, "build/test/" + filename);
player->set_always_burn_open_subtitles ();
player->set_play_referenced ();
- shared_ptr<Butler> butler (new Butler (film, player, AudioMapping(), 2, bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VIDEO_RANGE_FULL, false, true));
+ shared_ptr<Butler> butler (new Butler (film, player, AudioMapping(), 2, bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true));
butler->disable_audio();
for (int i = 0; i < 10; ++i) {
butler->seek (t, true);
pair<shared_ptr<PlayerVideo>, DCPTime> video = butler->get_video(true, 0);
BOOST_CHECK_EQUAL(video.second.get(), t.get());
- write_image(video.first->image(bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VIDEO_RANGE_FULL, false, true), String::compose("build/test/player_seek_test_%1.png", i));
+ write_image(video.first->image(bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true), String::compose("build/test/player_seek_test_%1.png", i));
/* This 14.08 is empirically chosen (hopefully) to accept changes in rendering between the reference and a test machine
(17.10 and 16.04 seem to anti-alias a little differently) but to reject gross errors e.g. missing fonts or missing
text altogether.
player->set_always_burn_open_subtitles ();
player->set_play_referenced ();
- shared_ptr<Butler> butler (new Butler(film, player, AudioMapping(), 2, bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VIDEO_RANGE_FULL, false, true));
+ shared_ptr<Butler> butler (new Butler(film, player, AudioMapping(), 2, bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true));
butler->disable_audio();
butler->seek(DCPTime::from_seconds(5), true);
pair<shared_ptr<PlayerVideo>, DCPTime> video = butler->get_video(true, 0);
BOOST_CHECK_EQUAL(video.second.get(), t.get());
write_image(
- video.first->image(bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VIDEO_RANGE_FULL, false, true), String::compose("build/test/player_seek_test2_%1.png", i)
+ video.first->image(bind(PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true), String::compose("build/test/player_seek_test2_%1.png", i)
);
check_image(TestPaths::private_data() / String::compose("player_seek_test2_%1.png", i), String::compose("build/test/player_seek_test2_%1.png", i), 14.08);
}
shared_ptr<Player> player (new Player(film));
player->set_fast ();
- shared_ptr<Butler> butler (new Butler(film, player, AudioMapping(), 6, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VIDEO_RANGE_FULL, false, true));
+ shared_ptr<Butler> butler (new Butler(film, player, AudioMapping(), 6, bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), VideoRange::FULL, false, true));
/* Wait for the butler to fill */
dcpomatic_sleep_seconds (5);
double
rms_error (boost::filesystem::path ref, boost::filesystem::path check)
{
- FFmpegImageProxy ref_proxy (ref, VIDEO_RANGE_FULL);
+ FFmpegImageProxy ref_proxy (ref, VideoRange::FULL);
shared_ptr<Image> ref_image = ref_proxy.image().image;
- FFmpegImageProxy check_proxy (check, VIDEO_RANGE_FULL);
+ FFmpegImageProxy check_proxy (check, VideoRange::FULL);
shared_ptr<Image> check_image = check_proxy.image().image;
BOOST_REQUIRE_EQUAL (ref_image->pixel_format(), check_image->pixel_format());
write_image (grey_image(size, grey_pixel), file);
- FFmpegImageProxy proxy (file, VIDEO_RANGE_FULL);
+ FFmpegImageProxy proxy (file, VideoRange::FULL);
ImageProxy::Result result = proxy.image ();
BOOST_REQUIRE (!result.error);
write_image (grey_image(size, grey_pixel), file);
- FFmpegImageProxy proxy (file, VIDEO_RANGE_VIDEO);
+ FFmpegImageProxy proxy (file, VideoRange::VIDEO);
ImageProxy::Result result = proxy.image ();
BOOST_REQUIRE (!result.error);
BOOST_REQUIRE (content);
film->examine_and_add_content (content);
BOOST_REQUIRE (!wait_for_jobs());
- content->video->set_range (VIDEO_RANGE_FULL);
+ content->video->set_range (VideoRange::FULL);
pair<int, int> range = pixel_range (film, content);
BOOST_CHECK_EQUAL (range.first, 15);
BOOST_REQUIRE (content);
film->examine_and_add_content (content);
BOOST_REQUIRE (!wait_for_jobs());
- content->video->set_range (VIDEO_RANGE_VIDEO);
+ content->video->set_range (VideoRange::VIDEO);
pair<int, int> range = pixel_range (film, content);
BOOST_CHECK_EQUAL (range.first, 0);
BOOST_REQUIRE (content);
film->examine_and_add_content (content);
BOOST_REQUIRE (!wait_for_jobs());
- content->video->set_range (VIDEO_RANGE_VIDEO);
+ content->video->set_range (VideoRange::VIDEO);
pair<int, int> range = pixel_range (film, content);
BOOST_CHECK_EQUAL (range.first, 11);