Support YUV422P9LE in alpha_blend() (#2671). notar1
authorCarl Hetherington <cth@carlh.net>
Mon, 27 Nov 2023 23:33:22 +0000 (00:33 +0100)
committerCarl Hetherington <cth@carlh.net>
Sat, 9 Dec 2023 15:40:06 +0000 (16:40 +0100)
run/tests
src/lib/image.cc
test/image_test.cc

index f45beb78dff72342b3f04e458986cc013669aa8a..eaab27390c905c5d5376b1a6735c9814f5df8bb6 100755 (executable)
--- a/run/tests
+++ b/run/tests
@@ -3,7 +3,7 @@
 # e.g. --run_tests=foo
 set -e
 
-PRIVATE_GIT="26097a7868332dec4175328cb9a9a793fe6d287f"
+PRIVATE_GIT="6907609af727a53bbdc2a967eede4e167a978f92"
 
 if [ "$1" == "--check" ]; then
        shift 1
index 6feea10ca93513c40689e9404d9ef58fa511ce6b..2588d9f21ee57f09e7fa0202ebe8899b5dc6c2fd 100644 (file)
@@ -862,7 +862,7 @@ alpha_blend_onto_yuv420p10(TargetParams const& target, OtherParams const& other,
 
 static
 void
-alpha_blend_onto_yuv422p10le(TargetParams const& target, OtherParams const& other, uint8_t* const* alpha_data, int const* alpha_stride)
+alpha_blend_onto_yuv422p9or10le(TargetParams const& target, OtherParams const& other, uint8_t* const* alpha_data, int const* alpha_stride)
 {
        auto const ts = target.size;
        auto const os = other.size;
@@ -1006,12 +1006,13 @@ Image::alpha_blend (shared_ptr<const Image> other, Position<int> position)
                alpha_blend_onto_yuv420p10(target_params, other_params, other->data(), other->stride());
                break;
        }
+       case AV_PIX_FMT_YUV422P9LE:
        case AV_PIX_FMT_YUV422P10LE:
        {
                auto yuv = other->convert_pixel_format (dcp::YUVToRGB::REC709, _pixel_format, Alignment::COMPACT, false);
                other_params.data = yuv->data();
                other_params.stride = yuv->stride();
-               alpha_blend_onto_yuv422p10le(target_params, other_params, other->data(), other->stride());
+               alpha_blend_onto_yuv422p9or10le(target_params, other_params, other->data(), other->stride());
                break;
        }
        default:
index 77ee7d8982c7a0c0d5a1ada46e66012f10a920a4..899961f50cd8869cad3cc6cf75a2e43391aea3a9 100644 (file)
@@ -242,6 +242,7 @@ BOOST_AUTO_TEST_CASE (alpha_blend_test)
        alpha_blend_test_bgra_onto(AV_PIX_FMT_RGB48LE, "rgb48le");
        alpha_blend_test_bgra_onto(AV_PIX_FMT_YUV420P, "yuv420p");
        alpha_blend_test_bgra_onto(AV_PIX_FMT_YUV420P10, "yuv420p10");
+       alpha_blend_test_bgra_onto(AV_PIX_FMT_YUV422P10LE, "yuv422p9le");
        alpha_blend_test_bgra_onto(AV_PIX_FMT_YUV422P10LE, "yuv422p10le");
 
        alpha_blend_test_rgba64be_onto(AV_PIX_FMT_RGB24, "rgb24");
@@ -250,6 +251,7 @@ BOOST_AUTO_TEST_CASE (alpha_blend_test)
        alpha_blend_test_rgba64be_onto(AV_PIX_FMT_RGB48LE, "rgb48le");
        alpha_blend_test_rgba64be_onto(AV_PIX_FMT_YUV420P, "yuv420p");
        alpha_blend_test_rgba64be_onto(AV_PIX_FMT_YUV420P10, "yuv420p10");
+       alpha_blend_test_rgba64be_onto(AV_PIX_FMT_YUV422P10LE, "yuv422p9le");
        alpha_blend_test_rgba64be_onto(AV_PIX_FMT_YUV422P10LE, "yuv422p10le");
 }