mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-26 17:18:15 +00:00
gst-libs/gst/video/video.h: Fix caps template names to be understandable.
Original commit message from CVS: 2004-01-12 Benjamin Otte <in7y118@public.uni-hamburg.de> * gst-libs/gst/video/video.h: Fix caps template names to be understandable. Prefix everything with GST_VIDEO. * ext/aalib/gstaasink.c: * ext/divx/gstdivxdec.c: * ext/divx/gstdivxenc.c: * ext/gdk_pixbuf/gstgdkpixbuf.c: * ext/hermes/gstcolorspace.c: (gst_colorspace_base_init): * ext/jpeg/gstjpegdec.c: (raw_caps_factory): * ext/jpeg/gstjpegenc.c: (raw_caps_factory): * ext/libcaca/gstcacasink.c: * ext/libpng/gstpngenc.c: (raw_caps_factory): * ext/snapshot/gstsnapshot.c: * ext/swfdec/gstswfdec.c: * ext/xvid/gstxviddec.c: * ext/xvid/gstxvidenc.c: * gst/chart/gstchart.c: * gst/deinterlace/gstdeinterlace.c: * gst/effectv/gsteffectv.c: * gst/flx/gstflxdec.c: (gst_flxdec_loop): * gst/goom/gstgoom.c: * gst/median/gstmedian.c: * gst/monoscope/gstmonoscope.c: (gst_monoscope_init), (gst_monoscope_srcconnect), (gst_monoscope_chain): * gst/overlay/gstoverlay.c: * gst/smooth/gstsmooth.c: * gst/smpte/gstsmpte.c: * gst/synaesthesia/gstsynaesthesia.c: * gst/videocrop/gstvideocrop.c: * gst/videodrop/gstvideodrop.c: * gst/y4m/gsty4mencode.c: * sys/qcam/gstqcamsrc.c: * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps): Make them work with new video.h file. * sys/ximage/ximagesink.c: (gst_ximagesink_chain), (gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc): * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain), (gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc): Make it work with new buffer allocation system.
This commit is contained in:
parent
becf91cdfc
commit
883b6925fd
5 changed files with 173 additions and 160 deletions
42
ChangeLog
42
ChangeLog
|
@ -1,3 +1,45 @@
|
|||
2004-01-12 Benjamin Otte <in7y118@public.uni-hamburg.de>
|
||||
|
||||
* gst-libs/gst/video/video.h:
|
||||
Fix caps template names to be understandable.
|
||||
Prefix everything with GST_VIDEO.
|
||||
* ext/aalib/gstaasink.c:
|
||||
* ext/divx/gstdivxdec.c:
|
||||
* ext/divx/gstdivxenc.c:
|
||||
* ext/gdk_pixbuf/gstgdkpixbuf.c:
|
||||
* ext/hermes/gstcolorspace.c: (gst_colorspace_base_init):
|
||||
* ext/jpeg/gstjpegdec.c: (raw_caps_factory):
|
||||
* ext/jpeg/gstjpegenc.c: (raw_caps_factory):
|
||||
* ext/libcaca/gstcacasink.c:
|
||||
* ext/libpng/gstpngenc.c: (raw_caps_factory):
|
||||
* ext/snapshot/gstsnapshot.c:
|
||||
* ext/swfdec/gstswfdec.c:
|
||||
* ext/xvid/gstxviddec.c:
|
||||
* ext/xvid/gstxvidenc.c:
|
||||
* gst/chart/gstchart.c:
|
||||
* gst/deinterlace/gstdeinterlace.c:
|
||||
* gst/effectv/gsteffectv.c:
|
||||
* gst/flx/gstflxdec.c: (gst_flxdec_loop):
|
||||
* gst/goom/gstgoom.c:
|
||||
* gst/median/gstmedian.c:
|
||||
* gst/monoscope/gstmonoscope.c: (gst_monoscope_init),
|
||||
(gst_monoscope_srcconnect), (gst_monoscope_chain):
|
||||
* gst/overlay/gstoverlay.c:
|
||||
* gst/smooth/gstsmooth.c:
|
||||
* gst/smpte/gstsmpte.c:
|
||||
* gst/synaesthesia/gstsynaesthesia.c:
|
||||
* gst/videocrop/gstvideocrop.c:
|
||||
* gst/videodrop/gstvideodrop.c:
|
||||
* gst/y4m/gsty4mencode.c:
|
||||
* sys/qcam/gstqcamsrc.c:
|
||||
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps):
|
||||
Make them work with new video.h file.
|
||||
* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
|
||||
(gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc):
|
||||
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
|
||||
(gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc):
|
||||
Make it work with new buffer allocation system.
|
||||
|
||||
2004-01-11 Julien MOUTTE <julien@moutte.net>
|
||||
|
||||
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_chain): Fixing the
|
||||
|
|
|
@ -23,156 +23,136 @@
|
|||
|
||||
#include <gst/gst.h>
|
||||
|
||||
#define R_MASK_32 "0xff000000"
|
||||
#define G_MASK_32 "0x00ff0000"
|
||||
#define B_MASK_32 "0x0000ff00"
|
||||
#define GST_VIDEO_BYTE1_MASK_32 "0xFF000000"
|
||||
#define GST_VIDEO_BYTE2_MASK_32 "0x00FF0000"
|
||||
#define GST_VIDEO_BYTE3_MASK_32 "0x0000FF00"
|
||||
#define GST_VIDEO_BYTE4_MASK_32 "0x000000FF"
|
||||
|
||||
#define R_MASK_32_REVERSE "0x000000ff"
|
||||
#define G_MASK_32_REVERSE "0x0000ff00"
|
||||
#define B_MASK_32_REVERSE "0x00ff0000"
|
||||
#define GST_VIDEO_BYTE1_MASK_24 "0x00FF0000"
|
||||
#define GST_VIDEO_BYTE2_MASK_24 "0x0000FF00"
|
||||
#define GST_VIDEO_BYTE3_MASK_24 "0x000000FF"
|
||||
|
||||
#define R_MASK_24 "0xff0000"
|
||||
#define G_MASK_24 "0x00ff00"
|
||||
#define B_MASK_24 "0x0000ff"
|
||||
#define GST_VIDEO_BYTE1_MASK_32_INT 0xFF000000
|
||||
#define GST_VIDEO_BYTE2_MASK_32_INT 0x00FF0000
|
||||
#define GST_VIDEO_BYTE3_MASK_32_INT 0x0000FF00
|
||||
#define GST_VIDEO_BYTE4_MASK_32_INT 0x000000FF
|
||||
|
||||
#define R_MASK_24_REVERSE "0x0000ff"
|
||||
#define G_MASK_24_REVERSE "0x00ff00"
|
||||
#define B_MASK_24_REVERSE "0xff0000"
|
||||
#define GST_VIDEO_BYTE1_MASK_24_INT 0x00FF0000
|
||||
#define GST_VIDEO_BYTE2_MASK_24_INT 0x0000FF00
|
||||
#define GST_VIDEO_BYTE3_MASK_24_INT 0x000000FF
|
||||
|
||||
#define R_MASK_16 "0xf800"
|
||||
#define G_MASK_16 "0x07e0"
|
||||
#define B_MASK_16 "0x001f"
|
||||
#define GST_VIDEO_RED_MASK_16 "0xf800"
|
||||
#define GST_VIDEO_GREEN_MASK_16 "0x07e0"
|
||||
#define GST_VIDEO_BLUE_MASK_16 "0x001f"
|
||||
|
||||
#define R_MASK_15 "0x7c00"
|
||||
#define G_MASK_15 "0x03e0"
|
||||
#define B_MASK_15 "0x001f"
|
||||
#define GST_VIDEO_RED_MASK_15 "0x7c00"
|
||||
#define GST_VIDEO_GREEN_MASK_15 "0x03e0"
|
||||
#define GST_VIDEO_BLUE_MASK_15 "0x001f"
|
||||
|
||||
#define R_MASK_32_INT 0xff000000
|
||||
#define G_MASK_32_INT 0x00ff0000
|
||||
#define B_MASK_32_INT 0x0000ff00
|
||||
#define GST_VIDEO_RED_MASK_16_INT 0xf800
|
||||
#define GST_VIDEO_GREEN_MASK_16_INT 0x07e0
|
||||
#define GST_VIDEO_BLUE_MASK_16_INT 0x001f
|
||||
|
||||
#define R_MASK_32_REVERSE_INT 0x000000ff
|
||||
#define G_MASK_32_REVERSE_INT 0x0000ff00
|
||||
#define B_MASK_32_REVERSE_INT 0x00ff0000
|
||||
#define GST_VIDEO_RED_MASK_15_INT 0x7c00
|
||||
#define GST_VIDEO_GREEN_MASK_15_INT 0x03e0
|
||||
#define GST_VIDEO_BLUE_MASK_15_INT 0x001f
|
||||
|
||||
#define R_MASK_24_INT 0xff0000
|
||||
#define G_MASK_24_INT 0x00ff00
|
||||
#define B_MASK_24_INT 0x0000ff
|
||||
#define GST_VIDEO_SIZE_RANGE "(int) [ 16, 4096 ]"
|
||||
#define GST_VIDEO_FPS_RANGE "(double) [ 0, max ]"
|
||||
|
||||
#define R_MASK_24_REVERSE_INT 0x0000ff
|
||||
#define G_MASK_24_REVERSE_INT 0x00ff00
|
||||
#define B_MASK_24_REVERSE_INT 0xff0000
|
||||
/* consider the next 2 protected */
|
||||
#define __GST_VIDEO_CAPS_MAKE_32(R, G, B) \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 32, " \
|
||||
"depth = (int) 24, " \
|
||||
"endianness = (int) BIG_ENDIAN, " \
|
||||
"red_mask = (int) " GST_VIDEO_BYTE ## R ## _MASK_32 ", " \
|
||||
"green_mask = (int) " GST_VIDEO_BYTE ## G ## _MASK_32 ", " \
|
||||
"blue_mask = (int) " GST_VIDEO_BYTE ## B ## _MASK_32 ", " \
|
||||
"width = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"height = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"framerate = " GST_VIDEO_FPS_RANGE
|
||||
|
||||
#define R_MASK_16_INT 0xf800
|
||||
#define G_MASK_16_INT 0x07e0
|
||||
#define B_MASK_16_INT 0x001f
|
||||
#define __GST_VIDEO_CAPS_MAKE_24(R, G, B) \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 24, " \
|
||||
"depth = (int) 24, " \
|
||||
"endianness = (int) BIG_ENDIAN, " \
|
||||
"red_mask = (int) " GST_VIDEO_BYTE ## R ## _MASK_24 ", " \
|
||||
"green_mask = (int) " GST_VIDEO_BYTE ## G ## _MASK_24 ", " \
|
||||
"blue_mask = (int) " GST_VIDEO_BYTE ## B ## _MASK_24 ", " \
|
||||
"width = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"height = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"framerate = " GST_VIDEO_FPS_RANGE
|
||||
|
||||
#define R_MASK_15_INT 0x7c00
|
||||
#define G_MASK_15_INT 0x03e0
|
||||
#define B_MASK_15_INT 0x001f
|
||||
|
||||
#define SIZE_RANGE "(int) [ 16, 4096 ]"
|
||||
#define FPS_RANGE "(double) [ 0, max ]"
|
||||
/* 24 bit */
|
||||
|
||||
/* properties for pad templates */
|
||||
#define GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_24_32 \
|
||||
GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_32 "; " \
|
||||
GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_24
|
||||
#define GST_VIDEO_CAPS_RGB \
|
||||
__GST_VIDEO_CAPS_MAKE_24 (1, 2, 3)
|
||||
|
||||
#define GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_24_32_REVERSE \
|
||||
GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_32_REVERSE "; " \
|
||||
GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_24_REVERSE
|
||||
#define GST_VIDEO_CAPS_BGR \
|
||||
__GST_VIDEO_CAPS_MAKE_24 (3, 2, 1)
|
||||
|
||||
#define GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_32 \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 32, " \
|
||||
"depth = (int) 24, " \
|
||||
"endianness = (int) BIG_ENDIAN, " \
|
||||
"red_mask = (int) " R_MASK_32 ", " \
|
||||
"green_mask = (int) " G_MASK_32 ", " \
|
||||
"blue_mask = (int) " B_MASK_32 ", " \
|
||||
"width = " SIZE_RANGE ", " \
|
||||
"height = " SIZE_RANGE ", " \
|
||||
"framerate = " FPS_RANGE
|
||||
/* 32 bit */
|
||||
|
||||
#define GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_24 \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 24, " \
|
||||
"depth = (int) 24, " \
|
||||
"endianness = (int) BIG_ENDIAN, " \
|
||||
"red_mask = (int) " R_MASK_24 ", " \
|
||||
"green_mask = (int) " G_MASK_24 ", " \
|
||||
"blue_mask = (int) " B_MASK_24 ", " \
|
||||
"width = " SIZE_RANGE ", " \
|
||||
"height = " SIZE_RANGE ", " \
|
||||
"framerate = " FPS_RANGE
|
||||
#define GST_VIDEO_CAPS_RGBx \
|
||||
__GST_VIDEO_CAPS_MAKE_32 (1, 2, 3)
|
||||
|
||||
#define GST_VIDEO_CAPS_xRGB \
|
||||
__GST_VIDEO_CAPS_MAKE_32 (2, 3, 4)
|
||||
|
||||
#define GST_VIDEO_CAPS_BGRx \
|
||||
__GST_VIDEO_CAPS_MAKE_32 (3, 2, 1)
|
||||
|
||||
#define GST_VIDEO_CAPS_xBGR \
|
||||
__GST_VIDEO_CAPS_MAKE_32 (4, 3, 2)
|
||||
|
||||
#define GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_32_REVERSE \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 32, " \
|
||||
"depth = (int) 24, " \
|
||||
"endianness = (int) BIG_ENDIAN, " \
|
||||
"red_mask = (int) " R_MASK_32_REVERSE ", " \
|
||||
"green_mask = (int) " G_MASK_32_REVERSE ", " \
|
||||
"blue_mask = (int) " B_MASK_32_REVERSE ", " \
|
||||
"width = " SIZE_RANGE ", " \
|
||||
"height = " SIZE_RANGE ", " \
|
||||
"framerate = " FPS_RANGE
|
||||
/* note: the macro name uses the order on BE systems */
|
||||
#if G_BYTE_ORDER == G_BIG_ENDIAN
|
||||
#define GST_VIDEO_CAPS_xRGB_HOST_ENDIAN \
|
||||
GST_VIDEO_CAPS_xRGB
|
||||
#define GST_VIDEO_CAPS_BGRx_HOST_ENDIAN \
|
||||
GST_VIDEO_CAPS_BGRx
|
||||
#else
|
||||
#define GST_VIDEO_CAPS_xRGB_HOST_ENDIAN \
|
||||
GST_VIDEO_CAPS_BGRx
|
||||
#define GST_VIDEO_CAPS_BGRx_HOST_ENDIAN \
|
||||
GST_VIDEO_CAPS_xRGB
|
||||
#endif
|
||||
|
||||
/* 15/16 bit */
|
||||
|
||||
#define GST_VIDEO_CAPS_RGB_16 \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 16, " \
|
||||
"depth = (int) 16, " \
|
||||
"endianness = (int) BYTE_ORDER, " \
|
||||
"red_mask = (int) " GST_VIDEO_RED_MASK_16 ", " \
|
||||
"green_mask = (int) " GST_VIDEO_GREEN_MASK_16 ", " \
|
||||
"blue_mask = (int) " GST_VIDEO_BLUE_MASK_16 ", " \
|
||||
"width = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"height = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"framerate = " GST_VIDEO_FPS_RANGE
|
||||
|
||||
#define GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_24_REVERSE \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 24, " \
|
||||
"depth = (int) 24, " \
|
||||
"endianness = (int) BIG_ENDIAN, " \
|
||||
"red_mask = (int) " R_MASK_24_REVERSE ", " \
|
||||
"green_mask = (int) " G_MASK_24_REVERSE ", " \
|
||||
"blue_mask = (int) " B_MASK_24_REVERSE ", " \
|
||||
"width = " SIZE_RANGE ", " \
|
||||
"height = " SIZE_RANGE ", " \
|
||||
"framerate = " FPS_RANGE
|
||||
#define GST_VIDEO_CAPS_RGB_15 \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 16, " \
|
||||
"depth = (int) 15, " \
|
||||
"endianness = (int) BYTE_ORDER, " \
|
||||
"red_mask = (int) " GST_VIDEO_RED_MASK_15 ", " \
|
||||
"green_mask = (int) " GST_VIDEO_GREEN_MASK_15 ", " \
|
||||
"blue_mask = (int) " GST_VIDEO_BLUE_MASK_15 ", " \
|
||||
"width = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"height = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"framerate = " GST_VIDEO_FPS_RANGE
|
||||
|
||||
#define GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_15_16 \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 16, " \
|
||||
"depth = (int) { 15, 16 }, " \
|
||||
"endianness = (int) BYTE_ORDER, " \
|
||||
"red_mask = (int) { " R_MASK_15 ", " R_MASK_16 " }, " \
|
||||
"green_mask = (int) { " G_MASK_15 ", " G_MASK_16 " }, " \
|
||||
"blue_mask = (int) { " B_MASK_15 ", " B_MASK_16 " }, " \
|
||||
"width = " SIZE_RANGE ", " \
|
||||
"height = " SIZE_RANGE ", " \
|
||||
"framerate = " FPS_RANGE
|
||||
|
||||
#define GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_16 \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 16, " \
|
||||
"depth = (int) 16, " \
|
||||
"endianness = (int) BYTE_ORDER, " \
|
||||
"red_mask = (int) " R_MASK_16 ", " \
|
||||
"green_mask = (int) " G_MASK_16 ", " \
|
||||
"blue_mask = (int) " B_MASK_16 ", " \
|
||||
"width = " SIZE_RANGE ", " \
|
||||
"height = " SIZE_RANGE ", " \
|
||||
"framerate = " FPS_RANGE
|
||||
|
||||
#define GST_VIDEO_RGB_PAD_TEMPLATE_CAPS_15 \
|
||||
"video/x-raw-rgb, " \
|
||||
"bpp = (int) 16, " \
|
||||
"depth = (int) 15, " \
|
||||
"endianness = (int) BYTE_ORDER, " \
|
||||
"red_mask = (int) " R_MASK_15 ", " \
|
||||
"green_mask = (int) " G_MASK_15 ", " \
|
||||
"blue_mask = (int) " B_MASK_15 ", " \
|
||||
"width = " SIZE_RANGE ", " \
|
||||
"height = " SIZE_RANGE ", " \
|
||||
"framerate = " FPS_RANGE
|
||||
|
||||
#define GST_VIDEO_YUV_PAD_TEMPLATE_CAPS(fourcc) \
|
||||
"video/x-raw-yuv, " \
|
||||
"format = (fourcc) " fourcc ", " \
|
||||
"width = " SIZE_RANGE ", " \
|
||||
"height = " SIZE_RANGE ", " \
|
||||
"framerate = " FPS_RANGE
|
||||
#define GST_VIDEO_CAPS_YUV(fourcc) \
|
||||
"video/x-raw-yuv, " \
|
||||
"format = (fourcc) " fourcc ", " \
|
||||
"width = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"height = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"framerate = " GST_VIDEO_FPS_RANGE
|
||||
|
||||
/* functions */
|
||||
gdouble gst_video_frame_rate (GstPad *pad);
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <string.h>
|
||||
#include <sys/time.h>
|
||||
#include "v4lsrc_calls.h"
|
||||
#include <gst/video/video.h>
|
||||
|
||||
/* elementfactory information */
|
||||
static GstElementDetails gst_v4lsrc_details = GST_ELEMENT_DETAILS (
|
||||
|
@ -391,18 +390,18 @@ gst_v4lsrc_palette_to_caps (int palette)
|
|||
"bpp = (int) 24, "
|
||||
"depth = (int) 24, "
|
||||
"endianness = (int) BIG_ENDIAN, "
|
||||
"red_mask = " R_MASK_24 ", "
|
||||
"green_mask = " G_MASK_24 ", "
|
||||
"blue_mask = " B_MASK_24);
|
||||
"red_mask = 0xFF0000, "
|
||||
"green_mask = 0x00FF00, "
|
||||
"blue_mask = 0x0000FF");
|
||||
break;
|
||||
case VIDEO_PALETTE_RGB32:
|
||||
caps = gst_caps_from_string ("video/x-raw-rgb, "
|
||||
"bpp = (int) 24, "
|
||||
"depth = (int) 32, "
|
||||
"endianness = (int) BIG_ENDIAN, "
|
||||
"red_mask = " R_MASK_32 ", "
|
||||
"green_mask = " G_MASK_32 ", "
|
||||
"blue_mask = " B_MASK_32);
|
||||
"red_mask = 0xFF000000, "
|
||||
"green_mask = 0x00FF0000, "
|
||||
"blue_mask = 0x0000FF00");
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
|
|
|
@ -49,6 +49,8 @@ GST_STATIC_PAD_TEMPLATE (
|
|||
"height = (int) [ 0, MAX ]")
|
||||
);
|
||||
|
||||
static void gst_ximagesink_buffer_free (GstBuffer *buffer);
|
||||
|
||||
static GstVideoSinkClass *parent_class = NULL;
|
||||
|
||||
/* ============================================================= */
|
||||
|
@ -739,7 +741,8 @@ gst_ximagesink_chain (GstPad *pad, GstData *data)
|
|||
|
||||
/* If this buffer has been allocated using our buffer management we simply
|
||||
put the ximage which is in the PRIVATE pointer */
|
||||
if (GST_BUFFER_PRIVATE (buf))
|
||||
/* FIXME: need to check for correct xvimagesink here? */
|
||||
if (GST_BUFFER_FREE_DATA_FUNC (buf) == gst_ximagesink_buffer_free)
|
||||
{
|
||||
gst_ximagesink_ximage_put (ximagesink, GST_BUFFER_PRIVATE (buf));
|
||||
}
|
||||
|
@ -773,19 +776,16 @@ gst_ximagesink_chain (GstPad *pad, GstData *data)
|
|||
/* Buffer management */
|
||||
|
||||
static void
|
||||
gst_ximagesink_buffer_free (GstData *data)
|
||||
gst_ximagesink_buffer_free (GstBuffer *buffer)
|
||||
{
|
||||
GstXImageSink *ximagesink;
|
||||
GstXImage *ximage;
|
||||
GstBuffer *buffer;
|
||||
|
||||
ximage = GST_BUFFER_PRIVATE (data);
|
||||
ximage = GST_BUFFER_PRIVATE (buffer);
|
||||
|
||||
g_assert (GST_IS_XIMAGESINK (ximage->ximagesink));
|
||||
ximagesink = ximage->ximagesink;
|
||||
|
||||
buffer = GST_BUFFER (data);
|
||||
|
||||
/* If our geometry changed we can't reuse that image. */
|
||||
if ( (ximage->width != GST_VIDEOSINK_WIDTH (ximagesink)) ||
|
||||
(ximage->height != GST_VIDEOSINK_HEIGHT (ximagesink)) )
|
||||
|
@ -796,10 +796,6 @@ gst_ximagesink_buffer_free (GstData *data)
|
|||
ximagesink->image_pool = g_slist_prepend (ximagesink->image_pool, ximage);
|
||||
g_mutex_unlock (ximagesink->pool_lock);
|
||||
}
|
||||
|
||||
GST_BUFFER_DATA (buffer) = NULL;
|
||||
|
||||
gst_buffer_default_free (buffer);
|
||||
}
|
||||
|
||||
static GstBuffer *
|
||||
|
@ -856,7 +852,7 @@ gst_ximagesink_buffer_alloc (GstPad *pad, guint64 offset, guint size)
|
|||
GST_BUFFER_PRIVATE (buffer) = ximage;
|
||||
|
||||
GST_BUFFER_DATA (buffer) = ximage->ximage->data;
|
||||
GST_DATA_FREE_FUNC (buffer) = gst_ximagesink_buffer_free;
|
||||
GST_BUFFER_FREE_DATA_FUNC (buffer) = gst_ximagesink_buffer_free;
|
||||
GST_BUFFER_SIZE (buffer) = ximage->size;
|
||||
return buffer;
|
||||
}
|
||||
|
|
|
@ -55,6 +55,8 @@ GST_STATIC_PAD_TEMPLATE (
|
|||
)
|
||||
);
|
||||
|
||||
static void gst_xvimagesink_buffer_free (GstBuffer *buffer);
|
||||
|
||||
static GstVideoSinkClass *parent_class = NULL;
|
||||
|
||||
/* ============================================================= */
|
||||
|
@ -899,7 +901,8 @@ gst_xvimagesink_chain (GstPad *pad, GstData *data)
|
|||
|
||||
/* If this buffer has been allocated using our buffer management we simply
|
||||
put the ximage which is in the PRIVATE pointer */
|
||||
if (GST_BUFFER_PRIVATE (buf))
|
||||
/* FIXME: need to check for correct xvimagesink here? */
|
||||
if (GST_BUFFER_FREE_DATA_FUNC (buf) == gst_xvimagesink_buffer_free)
|
||||
{
|
||||
gst_xvimagesink_xvimage_put (xvimagesink, GST_BUFFER_PRIVATE (buf));
|
||||
}
|
||||
|
@ -933,19 +936,16 @@ gst_xvimagesink_chain (GstPad *pad, GstData *data)
|
|||
/* Buffer management */
|
||||
|
||||
static void
|
||||
gst_xvimagesink_buffer_free (GstData *data)
|
||||
gst_xvimagesink_buffer_free (GstBuffer *buffer)
|
||||
{
|
||||
GstXvImageSink *xvimagesink;
|
||||
GstXvImage *xvimage;
|
||||
GstBuffer *buffer;
|
||||
|
||||
xvimage = GST_BUFFER_PRIVATE (data);
|
||||
xvimage = GST_BUFFER_PRIVATE (buffer);
|
||||
|
||||
g_assert (GST_IS_XVIMAGESINK (xvimage->xvimagesink));
|
||||
xvimagesink = xvimage->xvimagesink;
|
||||
|
||||
buffer = GST_BUFFER (data);
|
||||
|
||||
/* If our geometry changed we can't reuse that image. */
|
||||
if ( (xvimage->width != GST_VIDEOSINK_WIDTH (xvimagesink)) ||
|
||||
(xvimage->height != GST_VIDEOSINK_HEIGHT (xvimagesink)) )
|
||||
|
@ -957,10 +957,6 @@ gst_xvimagesink_buffer_free (GstData *data)
|
|||
xvimage);
|
||||
g_mutex_unlock (xvimagesink->pool_lock);
|
||||
}
|
||||
|
||||
GST_BUFFER_DATA (buffer) = NULL;
|
||||
|
||||
gst_buffer_default_free (buffer);
|
||||
}
|
||||
|
||||
static GstBuffer *
|
||||
|
@ -1017,7 +1013,7 @@ gst_xvimagesink_buffer_alloc (GstPad *pad, guint64 offset, guint size)
|
|||
GST_BUFFER_PRIVATE (buffer) = xvimage;
|
||||
|
||||
GST_BUFFER_DATA (buffer) = xvimage->xvimage->data;
|
||||
GST_DATA_FREE_FUNC (buffer) = gst_xvimagesink_buffer_free;
|
||||
GST_BUFFER_FREE_DATA_FUNC (buffer) = gst_xvimagesink_buffer_free;
|
||||
GST_BUFFER_SIZE (buffer) = xvimage->size;
|
||||
return buffer;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue