[aravis] gst: fix gst<->pixel format conversion
- From: Emmanuel Pacaud <emmanuel src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [aravis] gst: fix gst<->pixel format conversion
- Date: Fri, 28 Mar 2014 17:07:26 +0000 (UTC)
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]