[aravis] gst: fix gst<->pixel format conversion



commit 858fed07394dc2004a8e5b1a78045b8c4fd3a194
Author: Emmanuel Pacaud <emmanuel gnome org>
Date:   Fri Mar 28 18:06:22 2014 +0100

    gst: fix gst<->pixel format conversion
    
    GStreamer 1.0 doesn't use depth and bpp anymore for video
    format description.

 gst/gstaravis.c |    5 +--
 src/arvmisc.c   |  135 +++++++++---------------------------------------------
 src/arvmisc.h   |    2 +-
 3 files changed, 25 insertions(+), 117 deletions(-)
---
diff --git a/gst/gstaravis.c b/gst/gstaravis.c
index 9ca9f79..ffc0d75 100644
--- a/gst/gstaravis.c
+++ b/gst/gstaravis.c
@@ -145,7 +145,6 @@ gst_aravis_set_caps (GstBaseSrc *src, GstCaps *caps)
        GstStructure *structure;
        ArvPixelFormat pixel_format;
        int height, width;
-       int bpp, depth;
        const GValue *frame_rate;
        const char *caps_string;
        const char *format_string;
@@ -163,11 +162,9 @@ gst_aravis_set_caps (GstBaseSrc *src, GstCaps *caps)
        gst_structure_get_int (structure, "width", &width);
        gst_structure_get_int (structure, "height", &height);
        frame_rate = gst_structure_get_value (structure, "framerate");
-       gst_structure_get_int (structure, "bpp", &bpp);
-       gst_structure_get_int (structure, "depth", &depth);
        format_string = gst_structure_get_string (structure, "format");
 
-       pixel_format = arv_pixel_format_from_gst_caps (gst_structure_get_name (structure), bpp, depth, 
format_string);
+       pixel_format = arv_pixel_format_from_gst_caps (gst_structure_get_name (structure), format_string);
 
        arv_camera_set_region (gst_aravis->camera, gst_aravis->offset_x, gst_aravis->offset_y, width, height);
        arv_camera_set_binning (gst_aravis->camera, gst_aravis->h_binning, gst_aravis->v_binning);
diff --git a/src/arvmisc.c b/src/arvmisc.c
index 2e555a7..e03db0a 100644
--- a/src/arvmisc.c
+++ b/src/arvmisc.c
@@ -590,157 +590,73 @@ typedef struct {
        ArvPixelFormat pixel_format;
        const char *gst_caps_string;
        const char *name;
-       int bpp;
-       int depth;
        const char *format;
 } ArvGstCapsInfos;
 
 ArvGstCapsInfos arv_gst_caps_infos[] = {
        {
                ARV_PIXEL_FORMAT_MONO_8,
-               "video/x-raw, format=(string)GRAY8, bpp=(int)8, depth=(int)8",
-               "video/x-raw",  8,      8,      "GRAY8"
+               "video/x-raw, format=(string)GRAY8",
+               "video/x-raw",  "GRAY8"
        },
        {
                ARV_PIXEL_FORMAT_MONO_10,
-               "video/x-raw, format=(string)GRAY16, bpp=(int)16, depth=(int)10",
-               "video/x-raw",  16,     10,     "GRAY16_LE"
+               "video/x-raw, format=(string)GRAY16_LE",
+               "video/x-raw",  "GRAY16_LE"
        },
        {
                ARV_PIXEL_FORMAT_MONO_12,
-               "video/x-raw, format=(string)GRAY16, bpp=(int)16, depth=(int)12",
-               "video/x-raw",  16,     12,     "GRAY16_LE"
+               "video/x-raw, format=(string)GRAY16_LE",
+               "video/x-raw",  "GRAY16_LE"
        },
        {
                ARV_PIXEL_FORMAT_MONO_16,
-               "video/x-raw, format=(string)GRAY16, bpp=(int)16, depth=(int)16",
-               "video/x-raw",  16,     16,     "GRAY16_LE"
+               "video/x-raw, format=(string)GRAY16_LE",
+               "video/x-raw",  "GRAY16_LE"
        },
        {
                ARV_PIXEL_FORMAT_BAYER_GR_8,
-               "video/x-bayer, format=grbg, bpp=(int)8, depth=(int)8",
-               "video/x-bayer",        8,      8,      "grbg"
+               "video/x-bayer, format=(string)grbg",
+               "video/x-bayer",        "grbg"
        },
        {
                ARV_PIXEL_FORMAT_BAYER_RG_8,
-               "video/x-bayer, format=rggb, bpp=(int)8, depth=(int)8",
-               "video/x-bayer",        8,      8,      "rggb"
+               "video/x-bayer, format=(string)rggb",
+               "video/x-bayer",        "rggb"
        },
        {
                ARV_PIXEL_FORMAT_BAYER_GB_8,
-               "video/x-bayer, format=gbrg, bpp=(int)8, depth=(int)8",
-               "video/x-bayer",        8,      8,      "gbrg"
+               "video/x-bayer, format=(string)gbrg",
+               "video/x-bayer",        "gbrg"
        },
        {
                ARV_PIXEL_FORMAT_BAYER_BG_8,
-               "video/x-bayer, format=bggr, bpp=(int)8, depth=(int)8",
-               "video/x-bayer",        8,      8,      "bggr"
+               "video/x-bayer, format=(string)bggr",
+               "video/x-bayer",        "bggr"
        },
 
-/* Disable non 8bit bayer formats for now, as it's not supported by gstreamer bayer plugin.
+/* Non 8bit bayer formats are not supported by gstreamer bayer plugin.
  * This feature is discussed in bug https://bugzilla.gnome.org/show_bug.cgi?id=693666 .*/
 
-#if 0  
-       {
-               ARV_PIXEL_FORMAT_BAYER_GR_12,
-               "video/x-bayer, format=grbg, bpp=(int)16, depth=(int)12",
-               "video/x-bayer",     16,     12,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_RG_12,
-               "video/x-bayer, format=rggb, bpp=(int)16, depth=(int)12",
-               "video/x-bayer",     16,     12,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_GB_12,
-               "video/x-bayer, format=gbrg, bpp=(int)16, depth=(int)12",
-               "video/x-bayer",        16,     12,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_BG_12,
-               "video/x-bayer, format=bggr, bpp=(int)16, depth=(int)12",
-               "video/x-bayer",        16,     12,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_GR_12_PACKED,
-               "video/x-bayer, format=grbg, bpp=(int)12, depth=(int)12",
-               "video/x-bayer",        12,     12,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_RG_12_PACKED,
-               "video/x-bayer, format=rggb, bpp=(int)12, depth=(int)12",
-               "video/x-bayer",        12,     12,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_GB_12_PACKED,
-               "video/x-bayer, format=gbrg, bpp=(int)12, depth=(int)12",
-               "video/x-bayer",        12,     12,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_BG_12_PACKED,
-               "video/x-bayer, format=bggr, bpp=(int)12, depth=(int)12",
-               "video/x-bayer",        12,     12,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_GR_16,
-               "video/x-bayer, format=grbg, bpp=(int)16, depth=(int)16",
-               "video/x-bayer",        16,     16,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_RG_16,
-               "video/x-bayer, format=rggb, bpp=(int)16, depth=(int)16",
-               "video/x-bayer",        16,     16,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_GB_16,
-               "video/x-bayer, format=gbrg, bpp=(int)16, depth=(int)16",
-               "video/x-bayer",        16,     16,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_BAYER_BG_16,
-               "video/x-bayer, format=bggr, bpp=(int)16, depth=(int)16",
-               "video/x-bayer",        16,     16,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_16,
-               "video/x-bayer, format=grbg, bpp=(int)16, depth=(int)16",
-               "video/x-bayer",        16,     16,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_16,
-               "video/x-bayer, format=rggb, bpp=(int)16, depth=(int)16",
-               "video/x-bayer",        16,     16,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_16,
-               "video/x-bayer, format=gbrg, bpp=(int)16, depth=(int)16",
-               "video/x-bayer",        16,     16,     0
-       },
-       {
-               ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_16,
-               "video/x-bayer, format=bggr, bpp=(int)16, depth=(int)16",
-               "video/x-bayer",        16,     16,     0
-       },
-#endif
        {
                ARV_PIXEL_FORMAT_YUV_422_PACKED,
                "video/x-raw, format=(string)UYVY",
-               "video/x-raw",  0,      0,      "UYVY"
+               "video/x-raw",  "UYVY"
        },
        {
                ARV_PIXEL_FORMAT_YUV_422_YUYV_PACKED,
                "video/x-raw, format=(string)YUY2",
-               "video/x-raw",  0,      0,      "YUY2"
+               "video/x-raw",  "YUY2"
        },
        {
                ARV_PIXEL_FORMAT_RGB_8_PACKED,
-               "video/x-raw, format=(string)RGB, bpp=(int)24, depth=(int)24",
-               "video/x-raw",  24,     24,     "RGB"
+               "video/x-raw, format=(string)RGB",
+               "video/x-raw",  "RGB"
        },
        {
                ARV_PIXEL_FORMAT_CUSTOM_YUV_422_YUYV_PACKED,
                "video/x-raw, format=(string)YUY2",
-               "video/x-raw",  0,      0,      "YUY2"
+               "video/x-raw",  "YUY2"
        }
 };
 
@@ -771,7 +687,7 @@ arv_pixel_format_to_gst_caps_string (ArvPixelFormat pixel_format)
 }
 
 ArvPixelFormat
-arv_pixel_format_from_gst_caps (const char *name, int bpp, int depth, const char *format)
+arv_pixel_format_from_gst_caps (const char *name, const char *format)
 {
        unsigned int i;
 
@@ -784,11 +700,6 @@ arv_pixel_format_from_gst_caps (const char *name, int bpp, int depth, const char
                if (strcmp (name, "video/x-raw") == 0 &&
                    strcmp (format, arv_gst_caps_infos[i].format) == 0)
                        return arv_gst_caps_infos[i].pixel_format;
-
-               if (depth == arv_gst_caps_infos[i].depth &&
-                   bpp == arv_gst_caps_infos[i].bpp &&
-                   strcmp (format, arv_gst_caps_infos[i].format) == 0)
-                       return arv_gst_caps_infos[i].pixel_format;
        }
 
        return 0;
diff --git a/src/arvmisc.h b/src/arvmisc.h
index 3b944dc..7137a73 100644
--- a/src/arvmisc.h
+++ b/src/arvmisc.h
@@ -68,7 +68,7 @@ void          arv_copy_memory_with_endianess  (void *to, size_t to_size, guint to_endia
 void *                 arv_decompress                  (void *input_buffer, size_t input_size, size_t 
*output_size);
 
 const char *   arv_pixel_format_to_gst_caps_string     (ArvPixelFormat pixel_format);
-ArvPixelFormat         arv_pixel_format_from_gst_caps          (const char *name, int bpp, int depth, const 
char *format);
+ArvPixelFormat         arv_pixel_format_from_gst_caps          (const char *name, const char *format);
 
 /*
    Compatibility with old glib


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]