diff --git a/libavdevice/videomaster_common.c b/libavdevice/videomaster_common.c index 0259f330035fc..835785861ce97 100644 --- a/libavdevice/videomaster_common.c +++ b/libavdevice/videomaster_common.c @@ -66,6 +66,13 @@ static const VideoMasterBufferPackingInfo buffer_packing_info_table[] = { 1, 1, false }, + { AV_VIDEOMASTER_BUFFER_PACKING_PLANAR_P010, + false, + { .pixel_format = AV_PIX_FMT_P010LE }, + 24, + 1, + 1, + false }, { AV_VIDEOMASTER_BUFFER_PACKING_RGB_32, false, { .pixel_format = AV_PIX_FMT_BGR0 }, @@ -1009,6 +1016,8 @@ get_buffer_packing_based_on_cable_bit_sampling( { case VHD_DV_SAMPLING_4_2_0_8BITS: return AV_VIDEOMASTER_BUFFER_PACKING_PLANAR_NV12; + case VHD_DV_SAMPLING_4_2_0_10BITS: + return AV_VIDEOMASTER_BUFFER_PACKING_PLANAR_P010; default: return AV_VIDEOMASTER_BUFFER_PACKING_YUV422_10; } diff --git a/libavdevice/videomaster_common.h b/libavdevice/videomaster_common.h index 0eecd56573d74..154a0b0bff792 100644 --- a/libavdevice/videomaster_common.h +++ b/libavdevice/videomaster_common.h @@ -160,6 +160,7 @@ enum AVVideoMasterBufferPacking AV_VIDEOMASTER_BUFFER_PACKING_RGBA4444_10_LSB_PAD = VHD_BUFPACK_VIDEO_RGBA4444_10_LSB_PAD, AV_VIDEOMASTER_BUFFER_PACKING_RGBA4444_16 = VHD_BUFPACK_VIDEO_RGBA4444_16, + AV_VIDEOMASTER_BUFFER_PACKING_PLANAR_P010 = VHD_BUFPACK_VIDEO_PLANAR_P010, AV_NB_VIDEOMASTER_BUFFER_PACKINGS }; diff --git a/libavdevice/videomaster_dec.c b/libavdevice/videomaster_dec.c index 6d9a87e045993..d2880ed33b3aa 100644 --- a/libavdevice/videomaster_dec.c +++ b/libavdevice/videomaster_dec.c @@ -1514,6 +1514,15 @@ static const AVOption options[] = { 0, AV_OPT_FLAG_DECODING_PARAM | DEC | AV_OPT_FLAG_VIDEO_PARAM, .unit = "buffer_packing_value" }, + { "PLANAR_P010", + NULL, + 0, + AV_OPT_TYPE_CONST, + { .i64 = AV_VIDEOMASTER_BUFFER_PACKING_PLANAR_P010 }, + 0, + 0, + AV_OPT_FLAG_DECODING_PARAM | DEC | AV_OPT_FLAG_VIDEO_PARAM, + .unit = "buffer_packing_value" }, { NULL }, };