diff options
author | Mark Yen <mook@songbirdnest.com> | 2010-01-06 18:30:57 -0800 |
---|---|---|
committer | Michael Smith <msmith@songbirdnest.com> | 2010-01-06 18:31:22 -0800 |
commit | 140283c12bac83640b2f1ba99c551c786d05ac53 (patch) | |
tree | 78437c595cd396bf15a8caeadf7d82b16ae893c5 | |
parent | 3f4820d6c26d8f88071b256deaf6f7a8d96ec012 (diff) |
riff-media: handle 32 bit raw RGB video.
-rw-r--r-- | gst-libs/gst/riff/riff-media.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/gst-libs/gst/riff/riff-media.c b/gst-libs/gst/riff/riff-media.c index 6ec75e37..a06598a1 100644 --- a/gst-libs/gst/riff/riff-media.c +++ b/gst-libs/gst/riff/riff-media.c @@ -77,20 +77,31 @@ gst_riff_create_video_caps (guint32 codec_fcc, "endianness", G_TYPE_INT, G_BIG_ENDIAN, "red_mask", G_TYPE_INT, 0xff, "green_mask", G_TYPE_INT, 0xff00, "blue_mask", G_TYPE_INT, 0xff0000, NULL); + } else if (bpp == 32) { + caps = gst_caps_new_simple ("video/x-raw-rgb", + "bpp", G_TYPE_INT, 32, "depth", G_TYPE_INT, 24, + "endianness", G_TYPE_INT, G_BIG_ENDIAN, + "red_mask", G_TYPE_INT, 0xff00, "green_mask", G_TYPE_INT, + 0xff0000, "blue_mask", G_TYPE_INT, 0xff000000, NULL); } else { GST_WARNING ("Unhandled DIB RGB depth: %d", bpp); return NULL; } } else { /* for template */ - caps = gst_caps_from_string ("video/x-raw-rgb, bpp = (int) { 8, 24 }, " + caps = + gst_caps_from_string ("video/x-raw-rgb, bpp = (int) { 8, 24, 32 }, " "depth = (int) { 8, 24}"); } palette = strf_data; strf_data = NULL; - if (codec_name) - *codec_name = g_strdup_printf ("Palettized %d-bit RGB", bpp); + if (codec_name) { + if (bpp == 8) + *codec_name = g_strdup_printf ("Palettized %d-bit RGB", bpp); + else + *codec_name = g_strdup_printf ("%d-bit RGB", bpp); + } break; } case GST_MAKE_FOURCC ('I', '4', '2', '0'): |