mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
gst-plugins-good/gst/rtp/: Making these depayloaders (H263+ and mpeg4 video) inherit from
Original commit message from CVS: 2005-12-22 Philippe Khalaf <burger@speedy.org> * gst-plugins-good/gst/rtp/gstrtph263pdepay.h: * gst-plugins-good/gst/rtp/gstrtph263pdepay.c: * gst-plugins-good/gst/rtp/gstrtpmp4vdepay.h: * gst-plugins-good/gst/rtp/gstrtpmp4vdepay.c: Making these depayloaders (H263+ and mpeg4 video) inherit from RtpBaseDepayloaderClass. Fixes bugs #323922 and #323908.
This commit is contained in:
parent
dccf2f0ef9
commit
0c2414650a
19 changed files with 143 additions and 176 deletions
|
@ -1,3 +1,12 @@
|
|||
2005-12-22 Philippe Khalaf <burger@speedy.org>
|
||||
|
||||
* gst-plugins-good/gst/rtp/gstrtph263pdepay.h:
|
||||
* gst-plugins-good/gst/rtp/gstrtph263pdepay.c:
|
||||
* gst-plugins-good/gst/rtp/gstrtpmp4vdepay.h:
|
||||
* gst-plugins-good/gst/rtp/gstrtpmp4vdepay.c:
|
||||
Making these depayloaders (H263+ and mpeg4 video) inherit from
|
||||
RtpBaseDepayloaderClass. Fixes bugs #323922 and #323908.
|
||||
|
||||
2005-12-21 Jan Schmidt <thaytan@mad.scientist.com>
|
||||
|
||||
* docs/plugins/gst-plugins-good-plugins.args:
|
||||
|
|
|
@ -58,15 +58,10 @@ GST_STATIC_PAD_TEMPLATE ("sink",
|
|||
"clock-rate = (int) 90000, " "encoding-name = (string) \"H263-1998\"")
|
||||
);
|
||||
|
||||
GST_BOILERPLATE (GstRtpH263PDepay, gst_rtp_h263p_depay, GstBaseRTPDepayload,
|
||||
GST_TYPE_BASE_RTP_DEPAYLOAD);
|
||||
|
||||
static void gst_rtp_h263p_depay_class_init (GstRtpH263PDepayClass * klass);
|
||||
static void gst_rtp_h263p_depay_base_init (GstRtpH263PDepayClass * klass);
|
||||
static void gst_rtp_h263p_depay_init (GstRtpH263PDepay * rtph263pdepay);
|
||||
static void gst_rtp_h263p_depay_finalize (GObject * object);
|
||||
|
||||
static GstFlowReturn gst_rtp_h263p_depay_chain (GstPad * pad,
|
||||
GstBuffer * buffer);
|
||||
|
||||
static void gst_rtp_h263p_depay_set_property (GObject * object, guint prop_id,
|
||||
const GValue * value, GParamSpec * pspec);
|
||||
static void gst_rtp_h263p_depay_get_property (GObject * object, guint prop_id,
|
||||
|
@ -75,35 +70,13 @@ static void gst_rtp_h263p_depay_get_property (GObject * object, guint prop_id,
|
|||
static GstStateChangeReturn gst_rtp_h263p_depay_change_state (GstElement *
|
||||
element, GstStateChange transition);
|
||||
|
||||
static GstElementClass *parent_class = NULL;
|
||||
|
||||
static GType
|
||||
gst_rtp_h263p_depay_get_type (void)
|
||||
{
|
||||
static GType rtph263pdepay_type = 0;
|
||||
|
||||
if (!rtph263pdepay_type) {
|
||||
static const GTypeInfo rtph263pdepay_info = {
|
||||
sizeof (GstRtpH263PDepayClass),
|
||||
(GBaseInitFunc) gst_rtp_h263p_depay_base_init,
|
||||
NULL,
|
||||
(GClassInitFunc) gst_rtp_h263p_depay_class_init,
|
||||
NULL,
|
||||
NULL,
|
||||
sizeof (GstRtpH263PDepay),
|
||||
0,
|
||||
(GInstanceInitFunc) gst_rtp_h263p_depay_init,
|
||||
};
|
||||
|
||||
rtph263pdepay_type =
|
||||
g_type_register_static (GST_TYPE_ELEMENT, "GstRtpH263PDepay",
|
||||
&rtph263pdepay_info, 0);
|
||||
}
|
||||
return rtph263pdepay_type;
|
||||
}
|
||||
static GstBuffer *gst_rtp_h263p_depay_process (GstBaseRTPDepayload * depayload,
|
||||
GstBuffer * buf);
|
||||
gboolean gst_rtp_h263p_depay_setcaps (GstBaseRTPDepayload * filter,
|
||||
GstCaps * caps);
|
||||
|
||||
static void
|
||||
gst_rtp_h263p_depay_base_init (GstRtpH263PDepayClass * klass)
|
||||
gst_rtp_h263p_depay_base_init (gpointer klass)
|
||||
{
|
||||
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
|
||||
|
||||
|
@ -112,6 +85,7 @@ gst_rtp_h263p_depay_base_init (GstRtpH263PDepayClass * klass)
|
|||
gst_element_class_add_pad_template (element_class,
|
||||
gst_static_pad_template_get (&gst_rtp_h263p_depay_sink_template));
|
||||
|
||||
|
||||
gst_element_class_set_details (element_class, &gst_rtp_h263pdepay_details);
|
||||
}
|
||||
|
||||
|
@ -120,11 +94,16 @@ gst_rtp_h263p_depay_class_init (GstRtpH263PDepayClass * klass)
|
|||
{
|
||||
GObjectClass *gobject_class;
|
||||
GstElementClass *gstelement_class;
|
||||
GstBaseRTPDepayloadClass *gstbasertpdepayload_class;
|
||||
|
||||
gobject_class = (GObjectClass *) klass;
|
||||
gstelement_class = (GstElementClass *) klass;
|
||||
gstbasertpdepayload_class = (GstBaseRTPDepayloadClass *) klass;
|
||||
|
||||
parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
|
||||
parent_class = g_type_class_ref (GST_TYPE_BASE_RTP_DEPAYLOAD);
|
||||
|
||||
gstbasertpdepayload_class->process = gst_rtp_h263p_depay_process;
|
||||
gstbasertpdepayload_class->set_caps = gst_rtp_h263p_depay_setcaps;
|
||||
|
||||
gobject_class->finalize = gst_rtp_h263p_depay_finalize;
|
||||
|
||||
|
@ -135,20 +114,9 @@ gst_rtp_h263p_depay_class_init (GstRtpH263PDepayClass * klass)
|
|||
}
|
||||
|
||||
static void
|
||||
gst_rtp_h263p_depay_init (GstRtpH263PDepay * rtph263pdepay)
|
||||
gst_rtp_h263p_depay_init (GstRtpH263PDepay * rtph263pdepay,
|
||||
GstRtpH263PDepayClass * klass)
|
||||
{
|
||||
rtph263pdepay->srcpad =
|
||||
gst_pad_new_from_template (gst_static_pad_template_get
|
||||
(&gst_rtp_h263p_depay_src_template), "src");
|
||||
gst_element_add_pad (GST_ELEMENT (rtph263pdepay), rtph263pdepay->srcpad);
|
||||
|
||||
rtph263pdepay->sinkpad =
|
||||
gst_pad_new_from_template (gst_static_pad_template_get
|
||||
(&gst_rtp_h263p_depay_sink_template), "sink");
|
||||
gst_pad_set_chain_function (rtph263pdepay->sinkpad,
|
||||
gst_rtp_h263p_depay_chain);
|
||||
gst_element_add_pad (GST_ELEMENT (rtph263pdepay), rtph263pdepay->sinkpad);
|
||||
|
||||
rtph263pdepay->adapter = gst_adapter_new ();
|
||||
}
|
||||
|
||||
|
@ -165,16 +133,34 @@ gst_rtp_h263p_depay_finalize (GObject * object)
|
|||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_rtp_h263p_depay_chain (GstPad * pad, GstBuffer * buf)
|
||||
// only on the sink
|
||||
gboolean
|
||||
gst_rtp_h263p_depay_setcaps (GstBaseRTPDepayload * filter, GstCaps * caps)
|
||||
{
|
||||
|
||||
GstStructure *structure = gst_caps_get_structure (caps, 0);
|
||||
gint clock_rate = 90000; // default
|
||||
|
||||
if (gst_structure_has_field (structure, "clock-rate")) {
|
||||
gst_structure_get_int (structure, "clock-rate", &clock_rate);
|
||||
}
|
||||
|
||||
filter->clock_rate = clock_rate;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
static GstBuffer *
|
||||
gst_rtp_h263p_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
|
||||
{
|
||||
|
||||
GstRtpH263PDepay *rtph263pdepay;
|
||||
GstBuffer *outbuf;
|
||||
GstFlowReturn ret;
|
||||
|
||||
/* GstRTPPayload pt; */
|
||||
|
||||
rtph263pdepay = GST_RTP_H263P_DEPAY (GST_OBJECT_PARENT (pad));
|
||||
rtph263pdepay = GST_RTP_H263P_DEPAY (depayload);
|
||||
|
||||
if (!gst_rtp_buffer_validate (buf))
|
||||
goto bad_packet;
|
||||
|
@ -223,12 +209,16 @@ gst_rtp_h263p_depay_chain (GstPad * pad, GstBuffer * buf)
|
|||
|
||||
if (M) {
|
||||
/* frame is completed: append to previous, push it out */
|
||||
guint len;
|
||||
guint avail;
|
||||
guint8 *data;
|
||||
|
||||
avail = gst_adapter_available (rtph263pdepay->adapter);
|
||||
|
||||
outbuf = gst_buffer_new_and_alloc (avail + payload_len);
|
||||
len = avail + payload_len;
|
||||
outbuf = gst_buffer_new_and_alloc (len + (len % 4) + 4);
|
||||
memset (GST_BUFFER_DATA (outbuf) + len, 0, (len % 4) + 4);
|
||||
GST_BUFFER_SIZE (outbuf) = len;
|
||||
|
||||
/* prepend previous data */
|
||||
if (avail > 0) {
|
||||
|
@ -238,11 +228,14 @@ gst_rtp_h263p_depay_chain (GstPad * pad, GstBuffer * buf)
|
|||
}
|
||||
memcpy (GST_BUFFER_DATA (outbuf) + avail, payload, payload_len);
|
||||
|
||||
GST_BUFFER_TIMESTAMP (outbuf) = timestamp * GST_SECOND / 90000;
|
||||
gst_buffer_set_caps (outbuf,
|
||||
(GstCaps *) gst_pad_get_pad_template_caps (rtph263pdepay->srcpad));
|
||||
GST_BUFFER_TIMESTAMP (outbuf) =
|
||||
timestamp * GST_SECOND / depayload->clock_rate;
|
||||
|
||||
gst_buffer_set_caps (outbuf,
|
||||
(GstCaps *) gst_pad_get_pad_template_caps (depayload->srcpad));
|
||||
|
||||
return outbuf;
|
||||
|
||||
ret = gst_pad_push (rtph263pdepay->srcpad, outbuf);
|
||||
} else {
|
||||
/* frame not completed: store in adapter */
|
||||
outbuf = gst_buffer_new_and_alloc (payload_len);
|
||||
|
@ -251,19 +244,18 @@ gst_rtp_h263p_depay_chain (GstPad * pad, GstBuffer * buf)
|
|||
|
||||
gst_adapter_push (rtph263pdepay->adapter, outbuf);
|
||||
|
||||
ret = GST_FLOW_OK;
|
||||
}
|
||||
|
||||
gst_buffer_unref (buf);
|
||||
}
|
||||
|
||||
return ret;
|
||||
return NULL;
|
||||
|
||||
bad_packet:
|
||||
{
|
||||
GST_DEBUG ("Packet does not validate");
|
||||
gst_buffer_unref (buf);
|
||||
return GST_FLOW_ERROR;
|
||||
GST_ELEMENT_WARNING (rtph263pdepay, STREAM, DECODE,
|
||||
("Packet did not validate"), (NULL));
|
||||
|
||||
return NULL;
|
||||
}
|
||||
/*
|
||||
bad_payload:
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include <gst/gst.h>
|
||||
#include <gst/base/gstadapter.h>
|
||||
#include <gst/rtp/gstbasertpdepayload.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
|
@ -41,10 +42,7 @@ typedef struct _GstRtpH263PDepayClass GstRtpH263PDepayClass;
|
|||
|
||||
struct _GstRtpH263PDepay
|
||||
{
|
||||
GstElement element;
|
||||
|
||||
GstPad *sinkpad;
|
||||
GstPad *srcpad;
|
||||
GstBaseRTPDepayload depayload;
|
||||
|
||||
GstAdapter *adapter;
|
||||
|
||||
|
@ -53,7 +51,7 @@ struct _GstRtpH263PDepay
|
|||
|
||||
struct _GstRtpH263PDepayClass
|
||||
{
|
||||
GstElementClass parent_class;
|
||||
GstBaseRTPDepayloadClass parent_class;
|
||||
};
|
||||
|
||||
gboolean gst_rtp_h263p_depay_plugin_init (GstPlugin * plugin);
|
||||
|
|
|
@ -65,14 +65,13 @@ GST_STATIC_PAD_TEMPLATE ("sink",
|
|||
)
|
||||
);
|
||||
|
||||
GST_BOILERPLATE (GstRtpMP4VDepay, gst_rtp_mp4v_depay, GstBaseRTPDepayload,
|
||||
GST_TYPE_BASE_RTP_DEPAYLOAD);
|
||||
|
||||
static void gst_rtp_mp4v_depay_class_init (GstRtpMP4VDepayClass * klass);
|
||||
static void gst_rtp_mp4v_depay_base_init (GstRtpMP4VDepayClass * klass);
|
||||
static void gst_rtp_mp4v_depay_init (GstRtpMP4VDepay * rtpmp4vdepay);
|
||||
|
||||
static gboolean gst_rtp_mp4v_depay_setcaps (GstPad * pad, GstCaps * caps);
|
||||
static GstFlowReturn gst_rtp_mp4v_depay_chain (GstPad * pad,
|
||||
GstBuffer * buffer);
|
||||
static gboolean gst_rtp_mp4v_depay_setcaps (GstBaseRTPDepayload * depayload,
|
||||
GstCaps * caps);
|
||||
static GstBuffer *gst_rtp_mp4v_depay_process (GstBaseRTPDepayload * depayload,
|
||||
GstBuffer * buf);
|
||||
|
||||
static void gst_rtp_mp4v_depay_set_property (GObject * object, guint prop_id,
|
||||
const GValue * value, GParamSpec * pspec);
|
||||
|
@ -82,35 +81,9 @@ static void gst_rtp_mp4v_depay_get_property (GObject * object, guint prop_id,
|
|||
static GstStateChangeReturn gst_rtp_mp4v_depay_change_state (GstElement *
|
||||
element, GstStateChange transition);
|
||||
|
||||
static GstElementClass *parent_class = NULL;
|
||||
|
||||
static GType
|
||||
gst_rtp_mp4v_depay_get_type (void)
|
||||
{
|
||||
static GType rtpmp4vdepay_type = 0;
|
||||
|
||||
if (!rtpmp4vdepay_type) {
|
||||
static const GTypeInfo rtpmp4vdepay_info = {
|
||||
sizeof (GstRtpMP4VDepayClass),
|
||||
(GBaseInitFunc) gst_rtp_mp4v_depay_base_init,
|
||||
NULL,
|
||||
(GClassInitFunc) gst_rtp_mp4v_depay_class_init,
|
||||
NULL,
|
||||
NULL,
|
||||
sizeof (GstRtpMP4VDepay),
|
||||
0,
|
||||
(GInstanceInitFunc) gst_rtp_mp4v_depay_init,
|
||||
};
|
||||
|
||||
rtpmp4vdepay_type =
|
||||
g_type_register_static (GST_TYPE_ELEMENT, "GstRtpMP4VDepay",
|
||||
&rtpmp4vdepay_info, 0);
|
||||
}
|
||||
return rtpmp4vdepay_type;
|
||||
}
|
||||
|
||||
static void
|
||||
gst_rtp_mp4v_depay_base_init (GstRtpMP4VDepayClass * klass)
|
||||
gst_rtp_mp4v_depay_base_init (gpointer klass)
|
||||
{
|
||||
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
|
||||
|
||||
|
@ -127,11 +100,17 @@ gst_rtp_mp4v_depay_class_init (GstRtpMP4VDepayClass * klass)
|
|||
{
|
||||
GObjectClass *gobject_class;
|
||||
GstElementClass *gstelement_class;
|
||||
GstBaseRTPDepayloadClass *gstbasertpdepayload_class;
|
||||
|
||||
gobject_class = (GObjectClass *) klass;
|
||||
gstelement_class = (GstElementClass *) klass;
|
||||
|
||||
parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
|
||||
gstbasertpdepayload_class = (GstBaseRTPDepayloadClass *) klass;
|
||||
|
||||
parent_class = g_type_class_ref (GST_TYPE_BASE_RTP_DEPAYLOAD);
|
||||
|
||||
gstbasertpdepayload_class->process = gst_rtp_mp4v_depay_process;
|
||||
gstbasertpdepayload_class->set_caps = gst_rtp_mp4v_depay_setcaps;
|
||||
|
||||
gobject_class->set_property = gst_rtp_mp4v_depay_set_property;
|
||||
gobject_class->get_property = gst_rtp_mp4v_depay_get_property;
|
||||
|
@ -140,42 +119,35 @@ gst_rtp_mp4v_depay_class_init (GstRtpMP4VDepayClass * klass)
|
|||
}
|
||||
|
||||
static void
|
||||
gst_rtp_mp4v_depay_init (GstRtpMP4VDepay * rtpmp4vdepay)
|
||||
gst_rtp_mp4v_depay_init (GstRtpMP4VDepay * rtpmp4vdepay,
|
||||
GstRtpMP4VDepayClass * klass)
|
||||
{
|
||||
rtpmp4vdepay->srcpad =
|
||||
gst_pad_new_from_template (gst_static_pad_template_get
|
||||
(&gst_rtp_mp4v_depay_src_template), "src");
|
||||
gst_element_add_pad (GST_ELEMENT (rtpmp4vdepay), rtpmp4vdepay->srcpad);
|
||||
|
||||
rtpmp4vdepay->sinkpad =
|
||||
gst_pad_new_from_template (gst_static_pad_template_get
|
||||
(&gst_rtp_mp4v_depay_sink_template), "sink");
|
||||
gst_pad_set_setcaps_function (rtpmp4vdepay->sinkpad,
|
||||
gst_rtp_mp4v_depay_setcaps);
|
||||
gst_pad_set_chain_function (rtpmp4vdepay->sinkpad, gst_rtp_mp4v_depay_chain);
|
||||
gst_element_add_pad (GST_ELEMENT (rtpmp4vdepay), rtpmp4vdepay->sinkpad);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_rtp_mp4v_depay_setcaps (GstPad * pad, GstCaps * caps)
|
||||
gst_rtp_mp4v_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps)
|
||||
{
|
||||
|
||||
GstStructure *structure;
|
||||
GstRtpMP4VDepay *rtpmp4vdepay;
|
||||
GstCaps *srccaps;
|
||||
const gchar *str;
|
||||
|
||||
rtpmp4vdepay = GST_RTP_MP4V_DEPAY (GST_OBJECT_PARENT (pad));
|
||||
rtpmp4vdepay = GST_RTP_MP4V_DEPAY (depayload);
|
||||
|
||||
structure = gst_caps_get_structure (caps, 0);
|
||||
|
||||
if (!gst_structure_get_int (structure, "clock-rate", &rtpmp4vdepay->rate))
|
||||
rtpmp4vdepay->rate = 90000;
|
||||
gint clock_rate = 90000; // default
|
||||
|
||||
if (gst_structure_has_field (structure, "clock-rate")) {
|
||||
gst_structure_get_int (structure, "clock-rate", &clock_rate);
|
||||
}
|
||||
|
||||
depayload->clock_rate = clock_rate;
|
||||
|
||||
srccaps = gst_caps_new_simple ("video/mpeg",
|
||||
"mpegversion", G_TYPE_INT, 4,
|
||||
"systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
|
||||
gst_pad_set_caps (rtpmp4vdepay->srcpad, srccaps);
|
||||
gst_caps_unref (srccaps);
|
||||
|
||||
if ((str = gst_structure_get_string (structure, "config"))) {
|
||||
GValue v = { 0 };
|
||||
|
@ -188,9 +160,11 @@ gst_rtp_mp4v_depay_setcaps (GstPad * pad, GstCaps * caps)
|
|||
gst_buffer_ref (buffer);
|
||||
g_value_unset (&v);
|
||||
|
||||
gst_buffer_set_caps (buffer, GST_PAD_CAPS (rtpmp4vdepay->srcpad));
|
||||
gst_buffer_set_caps (buffer, srccaps);
|
||||
|
||||
gst_pad_push (rtpmp4vdepay->srcpad, buffer);
|
||||
gst_caps_unref (srccaps);
|
||||
|
||||
gst_pad_push (depayload->srcpad, buffer);
|
||||
} else {
|
||||
g_warning ("cannot convert config to buffer");
|
||||
}
|
||||
|
@ -199,14 +173,13 @@ gst_rtp_mp4v_depay_setcaps (GstPad * pad, GstCaps * caps)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static GstFlowReturn
|
||||
gst_rtp_mp4v_depay_chain (GstPad * pad, GstBuffer * buf)
|
||||
static GstBuffer *
|
||||
gst_rtp_mp4v_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
|
||||
{
|
||||
GstRtpMP4VDepay *rtpmp4vdepay;
|
||||
GstBuffer *outbuf;
|
||||
GstFlowReturn ret;
|
||||
|
||||
rtpmp4vdepay = GST_RTP_MP4V_DEPAY (gst_pad_get_parent (pad));
|
||||
rtpmp4vdepay = GST_RTP_MP4V_DEPAY (depayload);
|
||||
|
||||
if (!gst_rtp_buffer_validate (buf))
|
||||
goto bad_packet;
|
||||
|
@ -233,32 +206,31 @@ gst_rtp_mp4v_depay_chain (GstPad * pad, GstBuffer * buf)
|
|||
avail = gst_adapter_available (rtpmp4vdepay->adapter);
|
||||
|
||||
outbuf = gst_buffer_new_and_alloc (avail);
|
||||
|
||||
GST_BUFFER_MALLOCDATA (outbuf) =
|
||||
gst_adapter_take (rtpmp4vdepay->adapter, avail);
|
||||
GST_BUFFER_DATA (outbuf) = GST_BUFFER_MALLOCDATA (outbuf);
|
||||
gst_buffer_set_caps (outbuf, GST_PAD_CAPS (rtpmp4vdepay->srcpad));
|
||||
gst_buffer_set_caps (outbuf, GST_PAD_CAPS (depayload->srcpad));
|
||||
GST_BUFFER_TIMESTAMP (outbuf) =
|
||||
timestamp * GST_SECOND / rtpmp4vdepay->rate;
|
||||
timestamp * GST_SECOND / depayload->clock_rate;
|
||||
|
||||
GST_DEBUG ("gst_rtp_mp4v_depay_chain: pushing buffer of size %d",
|
||||
GST_BUFFER_SIZE (outbuf));
|
||||
|
||||
ret = gst_pad_push (rtpmp4vdepay->srcpad, outbuf);
|
||||
return outbuf;
|
||||
} else {
|
||||
ret = GST_FLOW_OK;
|
||||
return NULL;
|
||||
}
|
||||
gst_buffer_unref (buf);
|
||||
}
|
||||
gst_object_unref (rtpmp4vdepay);
|
||||
|
||||
return ret;
|
||||
return NULL;
|
||||
|
||||
bad_packet:
|
||||
{
|
||||
GST_DEBUG ("Packet did not validate");
|
||||
gst_buffer_unref (buf);
|
||||
gst_object_unref (rtpmp4vdepay);
|
||||
GST_ELEMENT_WARNING (rtpmp4vdepay, STREAM, DECODE,
|
||||
("Packet did not validate"), (NULL));
|
||||
|
||||
return GST_FLOW_ERROR;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include <gst/gst.h>
|
||||
#include <gst/base/gstadapter.h>
|
||||
#include <gst/rtp/gstbasertpdepayload.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
|
@ -41,19 +42,14 @@ typedef struct _GstRtpMP4VDepayClass GstRtpMP4VDepayClass;
|
|||
|
||||
struct _GstRtpMP4VDepay
|
||||
{
|
||||
GstElement element;
|
||||
|
||||
GstPad *sinkpad;
|
||||
GstPad *srcpad;
|
||||
|
||||
GstBaseRTPDepayload depayload;
|
||||
|
||||
GstAdapter *adapter;
|
||||
|
||||
gint rate;
|
||||
};
|
||||
|
||||
struct _GstRtpMP4VDepayClass
|
||||
{
|
||||
GstElementClass parent_class;
|
||||
GstBaseRTPDepayloadClass parent_class;
|
||||
};
|
||||
|
||||
gboolean gst_rtp_mp4v_depay_plugin_init (GstPlugin * plugin);
|
||||
|
|
4
po/af.po
4
po/af.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.7.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-03-18 14:16+0200\n"
|
||||
"Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
|
||||
"Language-Team: Afrikaans <i18n@af.org.za>\n"
|
||||
|
@ -16,7 +16,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/az.po
4
po/az.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins-0.8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-03-19 18:29+0200\n"
|
||||
"Last-Translator: Metin Amiroff <metin@karegen.com>\n"
|
||||
"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
"X-Generator: KBabel 1.0.2\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/cs.po
4
po/cs.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.8.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-08-08 22:58+0200\n"
|
||||
"Last-Translator: Miloslav Trmac <mitr@volny.cz>\n"
|
||||
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
|
||||
|
@ -19,7 +19,7 @@ msgstr ""
|
|||
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.8.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-04-26 10:41-0400\n"
|
||||
"Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
|
||||
"Language-Team: English (British) <en_gb@li.org>\n"
|
||||
|
@ -15,7 +15,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/hu.po
4
po/hu.po
|
@ -6,7 +6,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.8.2\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-07-18 11:03+0200\n"
|
||||
"Last-Translator: Laszlo Dvornik <dvornik@invitel.hu>\n"
|
||||
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
|
||||
|
@ -15,7 +15,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/it.po
4
po/it.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.8.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-11-07 19:11+0100\n"
|
||||
"Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
|
||||
"Language-Team: Italian <tp@lists.linux.it>\n"
|
||||
|
@ -16,7 +16,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/nb.po
4
po/nb.po
|
@ -6,7 +6,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.8.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-10-04 15:54+0200\n"
|
||||
"Last-Translator: Kjartan Maraas <kmaraas@broadpark.no>\n"
|
||||
"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
|
||||
|
@ -15,7 +15,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/nl.po
4
po/nl.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.8.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-08-05 16:26+0200\n"
|
||||
"Last-Translator: Elros Cyriatan <cyriatan@fastmail.fm>\n"
|
||||
"Language-Team: Dutch <vertaling@nl.linux.org>\n"
|
||||
|
@ -16,7 +16,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
6
po/or.po
6
po/or.po
|
@ -2,13 +2,13 @@
|
|||
# Copyright (C) 2004, Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the gst-plugins-0.8.3 package.
|
||||
# Gora Mohanty <gora_mohanty@yahoo.co.in>, 2004.
|
||||
# $Id: or.po,v 1.16 2005/12/05 15:08:46 thomasvs Exp $
|
||||
# $Id: or.po,v 1.17 2005/12/05 16:21:08 thomasvs Exp $
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins-0.8.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-09-27 13:32+0530\n"
|
||||
"Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
|
||||
"Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/sq.po
4
po/sq.po
|
@ -6,7 +6,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.8.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-08-07 20:29+0200\n"
|
||||
"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
|
||||
"Language-Team: Albanian <begraj@hotmail.com>\n"
|
||||
|
@ -15,7 +15,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/sr.po
4
po/sr.po
|
@ -6,7 +6,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.7.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-03-13 00:18+0100\n"
|
||||
"Last-Translator: Danilo Segan <dsegan@gmx.net>\n"
|
||||
"Language-Team: Serbian <gnu@prevod.org>\n"
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/sv.po
4
po/sv.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.8.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-08-03 20:53+0200\n"
|
||||
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
|
||||
"Language-Team: Swedish <sv@li.org>\n"
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/uk.po
4
po/uk.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins 0.8.2\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2004-08-03 15:40+0200\n"
|
||||
"Last-Translator: Maxim V. Dziumanenko <mvd@mylinux.com.ua>\n"
|
||||
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
|
||||
|
@ -16,7 +16,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
4
po/vi.po
4
po/vi.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gst-plugins-0.8.3\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2005-12-05 17:20+0100\n"
|
||||
"POT-Creation-Date: 2005-12-17 19:50-0500\n"
|
||||
"PO-Revision-Date: 2005-01-22 17:17+0930\n"
|
||||
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
|
||||
"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net> \n"
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ext/libpng/gstpngdec.c:275 ext/libpng/gstpngdec.c:438
|
||||
#: gst/wavparse/gstwavparse.c:1035
|
||||
#: gst/wavparse/gstwavparse.c:1141
|
||||
msgid "Internal data stream error."
|
||||
msgstr ""
|
||||
|
||||
|
|
Loading…
Reference in a new issue