mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-21 13:36:39 +00:00
cacasink: Fix support for RGB formats and add support for more of them
This commit is contained in:
parent
c43e7001ab
commit
797ebfc32b
1 changed files with 10 additions and 11 deletions
|
@ -71,7 +71,8 @@ enum
|
||||||
static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
|
static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
|
||||||
GST_PAD_SINK,
|
GST_PAD_SINK,
|
||||||
GST_PAD_ALWAYS,
|
GST_PAD_ALWAYS,
|
||||||
GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("{ RGB, RGBx, RGB16, RGB15 }"))
|
GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE
|
||||||
|
("{ RGB, BGR, RGBx, xRGB, BGRx, xBGR, RGB16, RGB15 }"))
|
||||||
);
|
);
|
||||||
|
|
||||||
static gboolean gst_cacasink_setcaps (GstBaseSink * pad, GstCaps * caps);
|
static gboolean gst_cacasink_setcaps (GstBaseSink * pad, GstCaps * caps);
|
||||||
|
@ -180,19 +181,17 @@ gst_cacasink_setcaps (GstBaseSink * basesink, GstCaps * caps)
|
||||||
if (!gst_video_info_from_caps (&info, caps))
|
if (!gst_video_info_from_caps (&info, caps))
|
||||||
goto caps_error;
|
goto caps_error;
|
||||||
|
|
||||||
|
|
||||||
switch (GST_VIDEO_INFO_FORMAT (&info)) {
|
switch (GST_VIDEO_INFO_FORMAT (&info)) {
|
||||||
case GST_VIDEO_FORMAT_RGB:
|
case GST_VIDEO_FORMAT_RGB:
|
||||||
bpp = 24;
|
case GST_VIDEO_FORMAT_BGR:
|
||||||
red_mask = 0xff0000;
|
|
||||||
green_mask = 0x00ff00;
|
|
||||||
blue_mask = 0x0000ff;
|
|
||||||
break;
|
|
||||||
case GST_VIDEO_FORMAT_RGBx:
|
case GST_VIDEO_FORMAT_RGBx:
|
||||||
bpp = 32;
|
case GST_VIDEO_FORMAT_xRGB:
|
||||||
red_mask = 0xff000000;
|
case GST_VIDEO_FORMAT_BGRx:
|
||||||
green_mask = 0x00ff0000;
|
case GST_VIDEO_FORMAT_xBGR:
|
||||||
blue_mask = 0x0000ff00;
|
bpp = 8 * info.finfo->pixel_stride[0];
|
||||||
|
red_mask = 0xff << (8 * info.finfo->poffset[GST_VIDEO_COMP_R]);
|
||||||
|
green_mask = 0xff << (8 * info.finfo->poffset[GST_VIDEO_COMP_G]);
|
||||||
|
blue_mask = 0xff << (8 * info.finfo->poffset[GST_VIDEO_COMP_B]);
|
||||||
break;
|
break;
|
||||||
case GST_VIDEO_FORMAT_RGB16:
|
case GST_VIDEO_FORMAT_RGB16:
|
||||||
bpp = 16;
|
bpp = 16;
|
||||||
|
|
Loading…
Reference in a new issue