diff options
author | Edward Hervey <bilboed@bilboed.com> | 2010-04-14 18:13:56 +0200 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2010-04-14 18:27:52 +0200 |
commit | 146e50455b2b2901de623e65e27c347493005cff (patch) | |
tree | d5cd495488811eecdfd871beee1e53f1ead90e37 | |
parent | f30f907c37c86df0e24fc96d4b43a3d8f4acdc23 (diff) |
videobox: transform_caps : We can only convert AYUV to xRGB
We were previously stating that we could convert AYUV/I420/YV12 to xRGB.
-rw-r--r-- | gst/videobox/gstvideobox.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/gst/videobox/gstvideobox.c b/gst/videobox/gstvideobox.c index 81931cf8d..d83481b5f 100644 --- a/gst/videobox/gstvideobox.c +++ b/gst/videobox/gstvideobox.c @@ -1576,18 +1576,21 @@ gst_video_box_transform_caps (GstBaseTransform * trans, gst_structure_set_value (structure, "format", &list); g_value_unset (&list); - gst_structure_set_name (s2, "video/x-raw-rgb"); - g_value_init (&list, GST_TYPE_LIST); - g_value_init (&val, G_TYPE_INT); - g_value_set_int (&val, 32); - gst_value_list_append_value (&list, &val); - g_value_reset (&val); - g_value_set_int (&val, 24); - gst_value_list_append_value (&list, &val); - g_value_unset (&val); - gst_structure_set_value (s2, "depth", &list); - gst_structure_set_value (s2, "bpp", &list); - g_value_unset (&list); + /* We can only convert to RGB if input is AYUV */ + if (fourcc == GST_STR_FOURCC ("AYUV")) { + gst_structure_set_name (s2, "video/x-raw-rgb"); + g_value_init (&list, GST_TYPE_LIST); + g_value_init (&val, G_TYPE_INT); + g_value_set_int (&val, 32); + gst_value_list_append_value (&list, &val); + g_value_reset (&val); + g_value_set_int (&val, 24); + gst_value_list_append_value (&list, &val); + g_value_unset (&val); + gst_structure_set_value (s2, "depth", &list); + gst_structure_set_value (s2, "bpp", &list); + g_value_unset (&list); + } gst_caps_append_structure (to, s2); } } else if (g_str_equal (name, "video/x-raw-rgb")) { |