libs: Add packed 24 RGB format support.
authorHe Junyan <junyan.he@hotmail.com>
Tue, 16 Apr 2019 10:33:54 +0000 (18:33 +0800)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Mon, 6 May 2019 19:28:43 +0000 (19:28 +0000)
Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
type. This kind of surface will just be created by new API with fourcc
and no old style chrome based creation is available.

fixes: #151

gst-libs/gst/vaapi/gstvaapiimage.c
gst-libs/gst/vaapi/video-format.c

index c919830..f5c3569 100644 (file)
@@ -99,6 +99,9 @@ vaapi_image_is_linear (const VAImage * va_image)
     case VA_FOURCC ('P', '0', '1', '0'):
       data_size = 2 * (width * height + 2 * width2 * height2);
       break;
+    case VA_FOURCC ('R', 'G', '2', '4'):
+      data_size = 3 * width * height;
+      break;
     default:
       GST_ERROR ("FIXME: incomplete formats %" GST_FOURCC_FORMAT,
           GST_FOURCC_ARGS (va_image->format.fourcc));
index 3238d25..db67cae 100644 (file)
@@ -88,6 +88,8 @@ static const GstVideoFormatMap gst_vaapi_video_formats[] = {
       24, 0x000000ff, 0x0000ff00, 0x00ff0000, 0x00000000),
   DEF_RGB (RGB16, ('R', 'G', '1', '6'), 16,
       16, 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000),
+  DEF_RGB (RGB, ('R', 'G', '2', '4'), 32,
+      24, 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000),
   {0,}
 };
 /* *INDENT-ON* */