common: fix format and bayer bugs on pixel format conversion
This commit is contained in:
parent
b99e338a7b
commit
51fc570ba8
@ -19,15 +19,15 @@
|
|||||||
|
|
||||||
#define GST_GENICAM_PIXEL_FORMAT_MAKE_BAYER8(format) \
|
#define GST_GENICAM_PIXEL_FORMAT_MAKE_BAYER8(format) \
|
||||||
"video/x-bayer, " \
|
"video/x-bayer, " \
|
||||||
"format = (string) { " format " }, " \
|
"format = (string) " format ", " \
|
||||||
"width = " GST_VIDEO_SIZE_RANGE ", " \
|
"width = " GST_VIDEO_SIZE_RANGE ", " \
|
||||||
"height = " GST_VIDEO_SIZE_RANGE ", " \
|
"height = " GST_VIDEO_SIZE_RANGE ", " \
|
||||||
"framerate = " GST_VIDEO_FPS_RANGE
|
"framerate = " GST_VIDEO_FPS_RANGE
|
||||||
|
|
||||||
#define GST_GENICAM_PIXEL_FORMAT_MAKE_BAYER16(format,endianness) \
|
#define GST_GENICAM_PIXEL_FORMAT_MAKE_BAYER16(format,endianness) \
|
||||||
"video/x-bayer, " \
|
"video/x-bayer, " \
|
||||||
"format = (string) { " format " }, " \
|
"format = (string) " format ", " \
|
||||||
"endianness = (int) { " endianness " }, " \
|
"endianness = (int) " endianness ", " \
|
||||||
"bpp = (int) {16, 14, 12, 10}, " \
|
"bpp = (int) {16, 14, 12, 10}, " \
|
||||||
"width = " GST_VIDEO_SIZE_RANGE ", " \
|
"width = " GST_VIDEO_SIZE_RANGE ", " \
|
||||||
"height = " GST_VIDEO_SIZE_RANGE ", " \
|
"height = " GST_VIDEO_SIZE_RANGE ", " \
|
||||||
@ -233,8 +233,16 @@ gst_genicam_pixel_format_caps_from_pixel_format (const char *pixel_format,
|
|||||||
"framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
|
"framerate", GST_TYPE_FRACTION, framerate_n, framerate_d,
|
||||||
"pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
|
"pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
|
||||||
|
|
||||||
|
if (g_str_has_prefix (pixel_format, "Bayer")) {
|
||||||
|
const GstGenicamPixelFormatInfo *info = gst_genicam_pixel_format_get_info(pixel_format, endianness);
|
||||||
|
g_assert (info);
|
||||||
|
gst_structure_set(structure, "bpp", G_TYPE_INT, (gint)info->bpp, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
caps = gst_caps_new_empty ();
|
caps = gst_caps_new_empty ();
|
||||||
gst_caps_append_structure (caps, structure);
|
gst_caps_append_structure (caps, structure);
|
||||||
|
|
||||||
|
caps = gst_caps_fixate (caps);
|
||||||
|
|
||||||
return caps;
|
return caps;
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user