Use enum class for VideoRange.
authorCarl Hetherington <cth@carlh.net>
Wed, 27 Jan 2021 00:44:20 +0000 (01:44 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 27 Jan 2021 00:44:20 +0000 (01:44 +0100)
26 files changed:
src/lib/dcp_examiner.h
src/lib/dcp_video.cc
src/lib/ffmpeg_encoder.cc
src/lib/ffmpeg_examiner.cc
src/lib/ffmpeg_file_encoder.cc
src/lib/ffmpeg_image_proxy.cc
src/lib/image.cc
src/lib/image_examiner.h
src/lib/player.cc
src/lib/types.cc
src/lib/types.h
src/lib/util.cc
src/lib/video_content.cc
src/lib/video_mxf_examiner.h
src/wx/film_viewer.cc
src/wx/gl_video_view.cc
src/wx/simple_video_view.cc
src/wx/video_panel.cc
test/butler_test.cc
test/client_server_test.cc
test/dcp_playback_test.cc
test/image_proxy_test.cc
test/image_test.cc
test/player_test.cc
test/test.cc
test/video_level_test.cc

index f577e2b3552c999a1f5f0b3e681fbafe4c785248..b61dd94a5535a78a25e817e487df00085907dbe4 100644 (file)
@@ -59,7 +59,7 @@ public:
        }
 
        VideoRange range () const {
-               return VIDEO_RANGE_FULL;
+               return VideoRange::FULL;
        }
 
        std::string name () const {
index ddad3d8e06ac2949cb04a36e8087cc4f32495a04..67baa121570c0f95016bb89449e44618d11f4910 100644 (file)
@@ -99,7 +99,7 @@ DCPVideo::convert_to_xyz (shared_ptr<const PlayerVideo> frame, dcp::NoteHandler
 {
        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],
index 9504b51b867651369480f81273de7d0a9a6b1930..059742025a7349985991a91948386ca39e192f6f 100644 (file)
@@ -107,7 +107,7 @@ FFmpegEncoder::FFmpegEncoder (
        }
 
        _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)
                );
 }
 
index 23c2f1a72609189a010ba041f9e02f292f96b9c3..384c21e9c27288cbfc26b92c7c640985cfcf5a0f 100644 (file)
@@ -431,9 +431,9 @@ FFmpegExaminer::range () const
        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;
        }
 }
index 0eea003a92dda1f4a282af05988ca24811c03b93..0aa976c3fcf0187b35c901039f1d527596c2c61b 100644 (file)
@@ -401,7 +401,7 @@ FFmpegFileEncoder::video (shared_ptr<PlayerVideo> video, DCPTime time)
        /* 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
                );
index 5b2280cfdfbf5b500261b8e3e34834c2038f8313..d082a8ef7143b58c12b5b8ca381d2adf13a7e8d0 100644 (file)
@@ -195,7 +195,7 @@ FFmpegImageProxy::image (optional<dcp::Size>) const
        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.
index 3a23d1abb49c69aa077644edee893f7b621c3029..efe5b3390c5e84719677c12ab60f962f60f3ed51 100644 (file)
@@ -239,8 +239,8 @@ Image::crop_scale_window (
        */
        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
                );
 
index 839e390ed17dd01570bdf6ae318e2b75fda38415..cad8683a19b3e23148668f1a97b6eb5bf82ccaf6 100644 (file)
@@ -37,7 +37,7 @@ public:
        }
        bool yuv () const;
        VideoRange range () const {
-               return VIDEO_RANGE_FULL;
+               return VideoRange::FULL;
        }
 
 private:
index 5b449ccc1bda6172f33de161ba9f87f0054c6424..cbfea55b6d5a9cf8e153d84ac73fd076d55e0ade 100644 (file)
@@ -382,7 +382,7 @@ Player::black_player_video_frame (Eyes eyes) const
                        eyes,
                        PART_WHOLE,
                        PresetColourConversion::all().front().conversion,
-                       VIDEO_RANGE_FULL,
+                       VideoRange::FULL,
                        std::weak_ptr<Content>(),
                        boost::optional<Frame>(),
                        false
index 177b5e5815875737008f60f6c12f27243f27b842..840ee3aa8b5608fb9ff946f04efdffa22c4f6eb9 100644 (file)
@@ -234,9 +234,9 @@ string
 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);
@@ -248,12 +248,12 @@ VideoRange
 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;
 }
 
index f8f23a300c87d2dc5a38ac6b27306e4724653b08..4569cfd9a6d25b58c6b55409bb6daeb5829119f8 100644 (file)
@@ -139,10 +139,10 @@ enum ChangeType
 };
 
 
-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);
index 36143e2327fe46bd180480e0530ef8d88f49347d..67b6599ea44459dd78d32ecd0dbdd7fe427fb415 100644 (file)
@@ -954,7 +954,7 @@ void
 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));
index 14e4824679cfaff42a42fa70b0211d25053d384e..f5e5139122191337183735e764573480894688cf 100644 (file)
@@ -75,7 +75,7 @@ VideoContent::VideoContent (Content* parent)
        , _yuv (true)
        , _fade_in (0)
        , _fade_out (0)
-       , _range (VIDEO_RANGE_FULL)
+       , _range (VideoRange::FULL)
 {
 
 }
@@ -178,9 +178,9 @@ VideoContent::VideoContent (Content* parent, cxml::ConstNodePtr node, int versio
                _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;
        }
 }
 
@@ -270,7 +270,7 @@ VideoContent::as_xml (xmlpp::Node* node) const
        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
@@ -321,7 +321,7 @@ VideoContent::identifier () const
                _custom_size ? _custom_size->height : 0,
                _fade_in,
                _fade_out,
-               _range == VIDEO_RANGE_FULL ? 0 : 1
+               _range == VideoRange::FULL ? 0 : 1
                );
 
        string s (buffer);
index c66774876708c4c19286305a796db69787ddab08..37badafba4adc15f2a96b60986806d9255e993bd 100644 (file)
@@ -40,7 +40,7 @@ public:
        boost::optional<double> sample_aspect_ratio () const;
        bool yuv () const;
        VideoRange range () const {
-               return VIDEO_RANGE_FULL;
+               return VideoRange::FULL;
        }
 
 private:
index 6e5b486d59ac59d75d60076835c469f3dee03dbd..e8c3b8c71363292bccd5cbd8c1dea57bf26f0990 100644 (file)
@@ -217,7 +217,7 @@ FilmViewer::recreate_butler ()
                        Config::instance()->audio_mapping(_audio_channels),
                        _audio_channels,
                        bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24),
-                       VIDEO_RANGE_FULL,
+                       VideoRange::FULL,
                        false,
                        true
                        )
index a1379741582e6513397bbd2b0159f72a5fc3bd10..f24a78f1cbee42cc5217aa38f12cd88a064e8cb0 100644 (file)
@@ -343,7 +343,7 @@ GLVideoView::set_image_and_draw ()
 {
        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);
        }
index 9ebb8c82fe2716a37214312da67f63ee0433c8b5..cd138e2393bff7d581584618d3f419d243fe0507 100644 (file)
@@ -221,7 +221,7 @@ SimpleVideoView::update ()
        _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");
index cfbc78c349b56bb2e2d173238f1581e7b54d10fe..b9c09cc69672007c6d76c7117a01ad817ee8d466 100644 (file)
@@ -311,10 +311,10 @@ VideoPanel::range_changed ()
 
        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);
@@ -444,7 +444,7 @@ VideoPanel::film_content_changed (int property)
                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);
                }
index 8a588dcc9f8a5e2156cf119976c9d6d6559037e6..016767e1c321099bf729ea7ac33733567947b13c 100644 (file)
@@ -55,7 +55,7 @@ BOOST_AUTO_TEST_CASE (butler_test1)
                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));
index 675d1eb24ecd2ee50474a99f97546f838c2edea8..eb066ce0fd19edc588704f309cf2eea01ff40e46 100644 (file)
@@ -98,7 +98,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_rgb)
                        EYES_BOTH,
                        PART_WHOLE,
                        ColourConversion(),
-                       VIDEO_RANGE_FULL,
+                       VideoRange::FULL,
                        weak_ptr<Content>(),
                        optional<Frame>(),
                        false
@@ -184,7 +184,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_yuv)
                        EYES_BOTH,
                        PART_WHOLE,
                        ColourConversion(),
-                       VIDEO_RANGE_FULL,
+                       VideoRange::FULL,
                        weak_ptr<Content>(),
                        optional<Frame>(),
                        false
@@ -257,7 +257,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_j2k)
                        EYES_BOTH,
                        PART_WHOLE,
                        ColourConversion(),
-                       VIDEO_RANGE_FULL,
+                       VideoRange::FULL,
                        weak_ptr<Content>(),
                        optional<Frame>(),
                        false
@@ -286,7 +286,7 @@ BOOST_AUTO_TEST_CASE (client_server_test_j2k)
                        EYES_BOTH,
                        PART_WHOLE,
                        PresetColourConversion::all().front().conversion,
-                       VIDEO_RANGE_FULL,
+                       VideoRange::FULL,
                        weak_ptr<Content>(),
                        optional<Frame>(),
                        false
index fd4c939bd5869e19f7f6554d7e1834321c50a434..1e587e93ed179da17da97664bfca61c1c6ea428c 100644 (file)
@@ -48,7 +48,7 @@ BOOST_AUTO_TEST_CASE (dcp_playback_test)
                        AudioMapping(6, 6),
                        6,
                        bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24),
-                       VIDEO_RANGE_FULL,
+                       VideoRange::FULL,
                        false,
                        true)
                );
@@ -60,7 +60,7 @@ BOOST_AUTO_TEST_CASE (dcp_playback_test)
                }
                /* 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;
 }
index 9dedb854ab36be4e36b2082b757c0f64b15d8f21..750b77561ad823fc8986831df8c75f56b6d417f5 100644 (file)
@@ -53,14 +53,14 @@ BOOST_AUTO_TEST_CASE (j2k_image_proxy_same_test)
 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));
        }
 }
index f69383724ca567c4e787524e5f675b6bf25e50cc..88a56a7ee72c99e66a82ceabba2fcacd2e8a0010 100644 (file)
@@ -138,7 +138,7 @@ BOOST_AUTO_TEST_CASE (compact_image_test)
 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);
 
@@ -260,10 +260,10 @@ BOOST_AUTO_TEST_CASE (merge_test2)
 /** 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");
@@ -275,19 +275,19 @@ BOOST_AUTO_TEST_CASE (crop_scale_window_test2)
 {
        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");
@@ -295,10 +295,10 @@ BOOST_AUTO_TEST_CASE (crop_scale_window_test3)
 
 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);
@@ -306,10 +306,10 @@ BOOST_AUTO_TEST_CASE (crop_scale_window_test4)
 
 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");
@@ -317,10 +317,10 @@ BOOST_AUTO_TEST_CASE (crop_scale_window_test5)
 
 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);
@@ -332,7 +332,7 @@ BOOST_AUTO_TEST_CASE (crop_scale_window_test7)
 {
        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(
@@ -340,9 +340,9 @@ BOOST_AUTO_TEST_CASE (crop_scale_window_test7)
                        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
                        );
@@ -355,7 +355,7 @@ BOOST_AUTO_TEST_CASE (crop_scale_window_test7)
 
 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");
@@ -381,7 +381,7 @@ fade_test_format_black (AVPixelFormat f, string name)
 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";
@@ -490,7 +490,7 @@ BOOST_AUTO_TEST_CASE (over_crop_test)
        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);
index 46bd016098a4bee1a41b283c917b64a5a0076ad1..96f75f098ff15273b16b768af2549524f07094c4 100644 (file)
@@ -218,7 +218,7 @@ BOOST_AUTO_TEST_CASE (player_seek_test)
        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) {
@@ -226,7 +226,7 @@ BOOST_AUTO_TEST_CASE (player_seek_test)
                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.
@@ -249,7 +249,7 @@ BOOST_AUTO_TEST_CASE (player_seek_test2)
        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);
@@ -260,7 +260,7 @@ BOOST_AUTO_TEST_CASE (player_seek_test2)
                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);
        }
@@ -336,7 +336,7 @@ BOOST_AUTO_TEST_CASE (player_trim_crash)
 
        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);
index cbd12e1ee363cf7d6a592703db2d7984980d2193..6af6409ce5d915588d71bffc40cd05e2ab9ecd56 100644 (file)
@@ -339,9 +339,9 @@ static
 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());
index 95b69d2aa2a3cca6dcf8cff7699b16802d271fb3..632551fa4a5d8f798df4786a91f547b6434146f6 100644 (file)
@@ -89,7 +89,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_image_full_range_not_changed)
 
        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);
 
@@ -111,7 +111,7 @@ BOOST_AUTO_TEST_CASE (ffmpeg_image_video_range_expanded)
 
        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);
 
@@ -289,7 +289,7 @@ movie_VoF (string name)
        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);
@@ -326,7 +326,7 @@ movie_FoV (string name)
        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);
@@ -363,7 +363,7 @@ image_FoV (string name)
        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);