gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
/* GStreamer
|
2008-11-25 18:03:02 +00:00
|
|
|
* Copyright (C) <2005> Wim Taymans <wim.taymans@gmail.com>
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Library General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
2006-05-22 13:51:30 +00:00
|
|
|
* Library General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Library General Public
|
|
|
|
* License along with this library; if not, write to the
|
|
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
* Boston, MA 02111-1307, USA.
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include "config.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <gst/rtp/gstrtpbuffer.h>
|
|
|
|
|
2006-09-25 11:47:42 +00:00
|
|
|
#include <stdlib.h>
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
#include <string.h>
|
2005-12-01 14:30:01 +00:00
|
|
|
#include "gstrtpamrdepay.h"
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2008-09-26 14:44:49 +00:00
|
|
|
GST_DEBUG_CATEGORY_STATIC (rtpamrdepay_debug);
|
|
|
|
#define GST_CAT_DEFAULT (rtpamrdepay_debug)
|
|
|
|
|
2005-08-23 16:54:38 +00:00
|
|
|
/* references:
|
|
|
|
*
|
2006-05-22 13:51:30 +00:00
|
|
|
* RFC 3267 - Real-Time Transport Protocol (RTP) Payload Format and File
|
|
|
|
* Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate
|
|
|
|
* Wideband (AMR-WB) Audio Codecs.
|
2005-08-23 16:54:38 +00:00
|
|
|
*/
|
|
|
|
|
2005-12-01 14:30:01 +00:00
|
|
|
/* RtpAMRDepay signals and args */
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
enum
|
|
|
|
{
|
|
|
|
/* FILL ME */
|
|
|
|
LAST_SIGNAL
|
|
|
|
};
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
2006-07-14 13:33:54 +00:00
|
|
|
ARG_0
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
};
|
|
|
|
|
2006-05-22 13:51:30 +00:00
|
|
|
/* input is an RTP packet
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
*
|
|
|
|
* params see RFC 3267, section 8.1
|
|
|
|
*/
|
2005-12-01 14:30:01 +00:00
|
|
|
static GstStaticPadTemplate gst_rtp_amr_depay_sink_template =
|
2007-06-01 11:16:17 +00:00
|
|
|
GST_STATIC_PAD_TEMPLATE ("sink",
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
GST_PAD_SINK,
|
|
|
|
GST_PAD_ALWAYS,
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
GST_STATIC_CAPS ("application/x-rtp, "
|
2005-09-15 13:57:56 +00:00
|
|
|
"media = (string) \"audio\", "
|
2007-01-24 12:22:51 +00:00
|
|
|
"payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
|
2005-09-20 10:51:51 +00:00
|
|
|
"clock-rate = (int) 8000, "
|
|
|
|
"encoding-name = (string) \"AMR\", "
|
|
|
|
"encoding-params = (string) \"1\", "
|
gst/rtp/: Caps extra properties must be defined as strings for depayloaders because they are generated from an SDP.
Original commit message from CVS:
* gst/rtp/gstrtpamrdepay.c:
* gst/rtp/gstrtpmp4gdepay.c:
Caps extra properties must be defined as strings for
depayloaders because they are generated from an SDP.
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_base_init),
(gst_rtp_h264_depay_class_init), (gst_rtp_h264_depay_init),
(gst_rtp_h264_depay_finalize), (decode_base64),
(gst_rtp_h264_depay_setcaps), (gst_rtp_h264_depay_process),
(gst_rtp_h264_depay_set_property),
(gst_rtp_h264_depay_get_property),
(gst_rtp_h264_depay_change_state),
(gst_rtp_h264_depay_plugin_init):
* gst/rtp/gstrtph264depay.h:
Added basic, not completely functional RFC 3984 H264 depayloader.
2006-08-16 10:05:00 +00:00
|
|
|
/* NOTE that all values must be strings in orde to be able to do SDP <->
|
|
|
|
* GstCaps mapping. */
|
2005-09-21 17:50:29 +00:00
|
|
|
"octet-align = (string) \"1\", "
|
|
|
|
"crc = (string) { \"0\", \"1\" }, "
|
2007-06-01 11:16:17 +00:00
|
|
|
"robust-sorting = (string) \"0\", " "interleaving = (string) \"0\";"
|
|
|
|
/* following options are not needed for a decoder
|
|
|
|
*
|
|
|
|
"mode-set = (int) [ 0, 7 ], "
|
|
|
|
"mode-change-period = (int) [ 1, MAX ], "
|
|
|
|
"mode-change-neighbor = (boolean) { TRUE, FALSE }, "
|
|
|
|
"maxptime = (int) [ 20, MAX ], "
|
|
|
|
"ptime = (int) [ 20, MAX ]"
|
|
|
|
*/
|
|
|
|
"application/x-rtp, "
|
|
|
|
"media = (string) \"audio\", "
|
|
|
|
"payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
|
|
|
|
"clock-rate = (int) 16000, "
|
|
|
|
"encoding-name = (string) \"AMR-WB\", "
|
|
|
|
"encoding-params = (string) \"1\", "
|
|
|
|
/* NOTE that all values must be strings in orde to be able to do SDP <->
|
|
|
|
* GstCaps mapping. */
|
|
|
|
"octet-align = (string) \"1\", "
|
|
|
|
"crc = (string) { \"0\", \"1\" }, "
|
2005-09-21 17:50:29 +00:00
|
|
|
"robust-sorting = (string) \"0\", " "interleaving = (string) \"0\""
|
2006-05-22 13:51:30 +00:00
|
|
|
/* following options are not needed for a decoder
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
*
|
|
|
|
"mode-set = (int) [ 0, 7 ], "
|
|
|
|
"mode-change-period = (int) [ 1, MAX ], "
|
|
|
|
"mode-change-neighbor = (boolean) { TRUE, FALSE }, "
|
|
|
|
"maxptime = (int) [ 20, MAX ], "
|
|
|
|
"ptime = (int) [ 20, MAX ]"
|
|
|
|
*/
|
|
|
|
)
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
);
|
|
|
|
|
2005-12-01 14:30:01 +00:00
|
|
|
static GstStaticPadTemplate gst_rtp_amr_depay_src_template =
|
2007-06-01 11:16:17 +00:00
|
|
|
GST_STATIC_PAD_TEMPLATE ("src",
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
GST_PAD_SRC,
|
|
|
|
GST_PAD_ALWAYS,
|
2007-06-01 11:16:17 +00:00
|
|
|
GST_STATIC_CAPS ("audio/AMR, " "channels = (int) 1," "rate = (int) 8000;"
|
|
|
|
"audio/AMR-WB, " "channels = (int) 1," "rate = (int) 16000")
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
);
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2006-07-14 13:33:54 +00:00
|
|
|
static gboolean gst_rtp_amr_depay_setcaps (GstBaseRTPDepayload * depayload,
|
|
|
|
GstCaps * caps);
|
|
|
|
static GstBuffer *gst_rtp_amr_depay_process (GstBaseRTPDepayload * depayload,
|
|
|
|
GstBuffer * buf);
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2006-07-14 13:33:54 +00:00
|
|
|
GST_BOILERPLATE (GstRtpAMRDepay, gst_rtp_amr_depay, GstBaseRTPDepayload,
|
|
|
|
GST_TYPE_BASE_RTP_DEPAYLOAD);
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
|
|
|
static void
|
2006-07-14 13:33:54 +00:00
|
|
|
gst_rtp_amr_depay_base_init (gpointer klass)
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
{
|
|
|
|
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
|
|
|
|
|
2011-11-28 12:58:44 +00:00
|
|
|
gst_element_class_add_static_pad_template (element_class,
|
|
|
|
&gst_rtp_amr_depay_src_template);
|
|
|
|
gst_element_class_add_static_pad_template (element_class,
|
|
|
|
&gst_rtp_amr_depay_sink_template);
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2010-03-18 13:31:35 +00:00
|
|
|
gst_element_class_set_details_simple (element_class, "RTP AMR depayloader",
|
2010-12-21 15:58:47 +00:00
|
|
|
"Codec/Depayloader/Network/RTP",
|
2010-03-18 13:31:35 +00:00
|
|
|
"Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)",
|
|
|
|
"Wim Taymans <wim.taymans@gmail.com>");
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2005-12-01 14:30:01 +00:00
|
|
|
gst_rtp_amr_depay_class_init (GstRtpAMRDepayClass * klass)
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
{
|
2006-07-14 13:33:54 +00:00
|
|
|
GstBaseRTPDepayloadClass *gstbasertpdepayload_class;
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2006-07-14 13:33:54 +00:00
|
|
|
gstbasertpdepayload_class = (GstBaseRTPDepayloadClass *) klass;
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2006-07-14 13:33:54 +00:00
|
|
|
gstbasertpdepayload_class->process = gst_rtp_amr_depay_process;
|
|
|
|
gstbasertpdepayload_class->set_caps = gst_rtp_amr_depay_setcaps;
|
2008-09-26 14:44:49 +00:00
|
|
|
|
|
|
|
GST_DEBUG_CATEGORY_INIT (rtpamrdepay_debug, "rtpamrdepay", 0,
|
|
|
|
"AMR/AMR-WB RTP Depayloader");
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2006-07-14 13:33:54 +00:00
|
|
|
gst_rtp_amr_depay_init (GstRtpAMRDepay * rtpamrdepay,
|
|
|
|
GstRtpAMRDepayClass * klass)
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
{
|
2006-07-14 13:33:54 +00:00
|
|
|
GstBaseRTPDepayload *depayload;
|
|
|
|
|
|
|
|
depayload = GST_BASE_RTP_DEPAYLOAD (rtpamrdepay);
|
|
|
|
|
|
|
|
gst_pad_use_fixed_caps (GST_BASE_RTP_DEPAYLOAD_SRCPAD (depayload));
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
}
|
|
|
|
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
static gboolean
|
2006-07-14 13:33:54 +00:00
|
|
|
gst_rtp_amr_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps)
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
{
|
|
|
|
GstStructure *structure;
|
|
|
|
GstCaps *srccaps;
|
2005-12-01 14:30:01 +00:00
|
|
|
GstRtpAMRDepay *rtpamrdepay;
|
2005-09-15 13:57:56 +00:00
|
|
|
const gchar *params;
|
2007-06-01 11:16:17 +00:00
|
|
|
const gchar *str, *type;
|
|
|
|
gint clock_rate, need_clock_rate;
|
gst/rtp/gstrtpL16depay.c: Check if clock-rate and channels are valid.
Original commit message from CVS:
* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16_depay_setcaps),
(gst_rtp_L16_depay_process):
Check if clock-rate and channels are valid.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpL16pay.c: (gst_rtp_L16_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpac3depay.c: (gst_rtp_ac3_depay_setcaps),
(gst_rtp_ac3_depay_process):
Don't ignore the return value of set_caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_setcaps),
(gst_rtp_amr_depay_process):
* gst/rtp/gstrtpamrdepay.h:
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set output caps on the buffers, the base class does that for
us.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpdvdepay.c: (gst_rtp_dv_depay_setcaps),
(gst_rtp_dv_depay_process), (gst_rtp_dv_depay_reset):
* gst/rtp/gstrtpdvdepay.h:
Clean up caps negotiation.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpg726depay.c: (gst_rtp_g726_depay_setcaps),
(gst_rtp_g726_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpg729depay.c: (gst_rtp_g729_depay_init),
(gst_rtp_g729_depay_setcaps), (gst_rtp_g729_depay_process):
* gst/rtp/gstrtpg729depay.h:
The subclass will make sure we are negotiated.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_setcaps),
(gst_rtp_gsm_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmpay.c: (gst_rtp_gsm_pay_setcaps):
Clean up caps negotiation.
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_setcaps),
(gst_rtp_h263_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263pay.c: (gst_rtp_h263_pay_setcaps),
(gst_rtp_h263_pay_flush), (gst_rtp_h263_pay_handle_buffer):
* gst/rtp/gstrtph263pay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_setcaps),
(gst_rtp_h263p_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263ppay.c: (gst_rtp_h263p_pay_class_init),
(gst_rtp_h263p_pay_setcaps), (gst_rtp_h263p_pay_flush),
(gst_rtp_h263p_pay_handle_buffer):
* gst/rtp/gstrtph263ppay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_setcaps),
(gst_rtp_h264_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
Fix possible caps leak.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_setcaps):
Add some more debug info.
* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_setcaps),
(gst_rtp_ilbc_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpilbcpay.c: (gst_rtpilbcpay_sink_setcaps):
Clean up caps negotiation.
* gst/rtp/gstrtpmp1sdepay.c: (gst_rtp_mp1s_depay_setcaps),
(gst_rtp_mp1s_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_setcaps),
(gst_rtp_mp2t_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_setcaps),
(gst_rtp_mp4a_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmp4apay.c: (gst_rtp_mp4a_pay_new_caps),
(gst_rtp_mp4a_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_setcaps),
(gst_rtp_mp4g_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_finalize),
(gst_rtp_mp4g_pay_new_caps), (gst_rtp_mp4g_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps),
(gst_rtp_mp4v_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_new_caps),
(gst_rtp_mp4v_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_setcaps),
(gst_rtp_mpa_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpmpapay.c: (gst_rtp_mpa_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_setcaps),
(gst_rtp_mpv_depay_process):
Clean up caps negotiation.
Actually set output caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmpvpay.c: (gst_rtp_mpv_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_setcaps),
(gst_rtp_pcma_depay_process):
Clean up caps negotiation.
Set output buffer duration because we can.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_setcaps),
(gst_rtp_pcmu_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_setcaps), (gst_rtp_speex_depay_process):
Clean up caps negotiation.
Set output caps on the pad and header buffers.
Set duration on output buffers because we can.
* gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_parse_ident):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_setcaps),
(gst_rtp_sv3v_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
No need to set caps out output buffers, subclass does that.
* gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps),
(gst_rtp_theora_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtptheorapay.c: (gst_rtp_theora_pay_class_init),
(gst_rtp_theora_pay_flush_packet), (encode_base64),
(gst_rtp_theora_pay_finish_headers), (gst_rtp_theora_pay_parse_id),
(gst_rtp_theora_pay_handle_buffer):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps),
(gst_rtp_vorbis_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_finish_headers):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvrawdepay.c: (gst_rtp_vraw_depay_setcaps):
Clean up caps negotiation, don't ignore setcaps return.
* gst/rtp/gstrtpvrawpay.c: (gst_rtp_vraw_pay_setcaps):
Don't ignore the return value of set_outcaps.
2008-10-27 11:03:53 +00:00
|
|
|
gboolean res;
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
|
2006-07-14 13:33:54 +00:00
|
|
|
rtpamrdepay = GST_RTP_AMR_DEPAY (depayload);
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
|
|
|
|
structure = gst_caps_get_structure (caps, 0);
|
|
|
|
|
2007-06-01 11:16:17 +00:00
|
|
|
/* figure out the mode first and set the clock rates */
|
|
|
|
if ((str = gst_structure_get_string (structure, "encoding-name"))) {
|
|
|
|
if (strcmp (str, "AMR") == 0) {
|
|
|
|
rtpamrdepay->mode = GST_RTP_AMR_DP_MODE_NB;
|
gst/rtp/gstrtpL16depay.c: Check if clock-rate and channels are valid.
Original commit message from CVS:
* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16_depay_setcaps),
(gst_rtp_L16_depay_process):
Check if clock-rate and channels are valid.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpL16pay.c: (gst_rtp_L16_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpac3depay.c: (gst_rtp_ac3_depay_setcaps),
(gst_rtp_ac3_depay_process):
Don't ignore the return value of set_caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_setcaps),
(gst_rtp_amr_depay_process):
* gst/rtp/gstrtpamrdepay.h:
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set output caps on the buffers, the base class does that for
us.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpdvdepay.c: (gst_rtp_dv_depay_setcaps),
(gst_rtp_dv_depay_process), (gst_rtp_dv_depay_reset):
* gst/rtp/gstrtpdvdepay.h:
Clean up caps negotiation.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpg726depay.c: (gst_rtp_g726_depay_setcaps),
(gst_rtp_g726_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpg729depay.c: (gst_rtp_g729_depay_init),
(gst_rtp_g729_depay_setcaps), (gst_rtp_g729_depay_process):
* gst/rtp/gstrtpg729depay.h:
The subclass will make sure we are negotiated.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_setcaps),
(gst_rtp_gsm_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmpay.c: (gst_rtp_gsm_pay_setcaps):
Clean up caps negotiation.
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_setcaps),
(gst_rtp_h263_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263pay.c: (gst_rtp_h263_pay_setcaps),
(gst_rtp_h263_pay_flush), (gst_rtp_h263_pay_handle_buffer):
* gst/rtp/gstrtph263pay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_setcaps),
(gst_rtp_h263p_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263ppay.c: (gst_rtp_h263p_pay_class_init),
(gst_rtp_h263p_pay_setcaps), (gst_rtp_h263p_pay_flush),
(gst_rtp_h263p_pay_handle_buffer):
* gst/rtp/gstrtph263ppay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_setcaps),
(gst_rtp_h264_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
Fix possible caps leak.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_setcaps):
Add some more debug info.
* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_setcaps),
(gst_rtp_ilbc_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpilbcpay.c: (gst_rtpilbcpay_sink_setcaps):
Clean up caps negotiation.
* gst/rtp/gstrtpmp1sdepay.c: (gst_rtp_mp1s_depay_setcaps),
(gst_rtp_mp1s_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_setcaps),
(gst_rtp_mp2t_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_setcaps),
(gst_rtp_mp4a_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmp4apay.c: (gst_rtp_mp4a_pay_new_caps),
(gst_rtp_mp4a_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_setcaps),
(gst_rtp_mp4g_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_finalize),
(gst_rtp_mp4g_pay_new_caps), (gst_rtp_mp4g_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps),
(gst_rtp_mp4v_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_new_caps),
(gst_rtp_mp4v_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_setcaps),
(gst_rtp_mpa_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpmpapay.c: (gst_rtp_mpa_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_setcaps),
(gst_rtp_mpv_depay_process):
Clean up caps negotiation.
Actually set output caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmpvpay.c: (gst_rtp_mpv_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_setcaps),
(gst_rtp_pcma_depay_process):
Clean up caps negotiation.
Set output buffer duration because we can.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_setcaps),
(gst_rtp_pcmu_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_setcaps), (gst_rtp_speex_depay_process):
Clean up caps negotiation.
Set output caps on the pad and header buffers.
Set duration on output buffers because we can.
* gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_parse_ident):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_setcaps),
(gst_rtp_sv3v_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
No need to set caps out output buffers, subclass does that.
* gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps),
(gst_rtp_theora_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtptheorapay.c: (gst_rtp_theora_pay_class_init),
(gst_rtp_theora_pay_flush_packet), (encode_base64),
(gst_rtp_theora_pay_finish_headers), (gst_rtp_theora_pay_parse_id),
(gst_rtp_theora_pay_handle_buffer):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps),
(gst_rtp_vorbis_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_finish_headers):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvrawdepay.c: (gst_rtp_vraw_depay_setcaps):
Clean up caps negotiation, don't ignore setcaps return.
* gst/rtp/gstrtpvrawpay.c: (gst_rtp_vraw_pay_setcaps):
Don't ignore the return value of set_outcaps.
2008-10-27 11:03:53 +00:00
|
|
|
need_clock_rate = 8000;
|
2007-06-01 11:16:17 +00:00
|
|
|
type = "audio/AMR";
|
|
|
|
} else if (strcmp (str, "AMR-WB") == 0) {
|
|
|
|
rtpamrdepay->mode = GST_RTP_AMR_DP_MODE_WB;
|
gst/rtp/gstrtpL16depay.c: Check if clock-rate and channels are valid.
Original commit message from CVS:
* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16_depay_setcaps),
(gst_rtp_L16_depay_process):
Check if clock-rate and channels are valid.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpL16pay.c: (gst_rtp_L16_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpac3depay.c: (gst_rtp_ac3_depay_setcaps),
(gst_rtp_ac3_depay_process):
Don't ignore the return value of set_caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_setcaps),
(gst_rtp_amr_depay_process):
* gst/rtp/gstrtpamrdepay.h:
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set output caps on the buffers, the base class does that for
us.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpdvdepay.c: (gst_rtp_dv_depay_setcaps),
(gst_rtp_dv_depay_process), (gst_rtp_dv_depay_reset):
* gst/rtp/gstrtpdvdepay.h:
Clean up caps negotiation.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpg726depay.c: (gst_rtp_g726_depay_setcaps),
(gst_rtp_g726_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpg729depay.c: (gst_rtp_g729_depay_init),
(gst_rtp_g729_depay_setcaps), (gst_rtp_g729_depay_process):
* gst/rtp/gstrtpg729depay.h:
The subclass will make sure we are negotiated.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_setcaps),
(gst_rtp_gsm_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmpay.c: (gst_rtp_gsm_pay_setcaps):
Clean up caps negotiation.
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_setcaps),
(gst_rtp_h263_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263pay.c: (gst_rtp_h263_pay_setcaps),
(gst_rtp_h263_pay_flush), (gst_rtp_h263_pay_handle_buffer):
* gst/rtp/gstrtph263pay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_setcaps),
(gst_rtp_h263p_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263ppay.c: (gst_rtp_h263p_pay_class_init),
(gst_rtp_h263p_pay_setcaps), (gst_rtp_h263p_pay_flush),
(gst_rtp_h263p_pay_handle_buffer):
* gst/rtp/gstrtph263ppay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_setcaps),
(gst_rtp_h264_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
Fix possible caps leak.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_setcaps):
Add some more debug info.
* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_setcaps),
(gst_rtp_ilbc_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpilbcpay.c: (gst_rtpilbcpay_sink_setcaps):
Clean up caps negotiation.
* gst/rtp/gstrtpmp1sdepay.c: (gst_rtp_mp1s_depay_setcaps),
(gst_rtp_mp1s_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_setcaps),
(gst_rtp_mp2t_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_setcaps),
(gst_rtp_mp4a_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmp4apay.c: (gst_rtp_mp4a_pay_new_caps),
(gst_rtp_mp4a_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_setcaps),
(gst_rtp_mp4g_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_finalize),
(gst_rtp_mp4g_pay_new_caps), (gst_rtp_mp4g_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps),
(gst_rtp_mp4v_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_new_caps),
(gst_rtp_mp4v_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_setcaps),
(gst_rtp_mpa_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpmpapay.c: (gst_rtp_mpa_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_setcaps),
(gst_rtp_mpv_depay_process):
Clean up caps negotiation.
Actually set output caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmpvpay.c: (gst_rtp_mpv_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_setcaps),
(gst_rtp_pcma_depay_process):
Clean up caps negotiation.
Set output buffer duration because we can.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_setcaps),
(gst_rtp_pcmu_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_setcaps), (gst_rtp_speex_depay_process):
Clean up caps negotiation.
Set output caps on the pad and header buffers.
Set duration on output buffers because we can.
* gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_parse_ident):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_setcaps),
(gst_rtp_sv3v_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
No need to set caps out output buffers, subclass does that.
* gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps),
(gst_rtp_theora_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtptheorapay.c: (gst_rtp_theora_pay_class_init),
(gst_rtp_theora_pay_flush_packet), (encode_base64),
(gst_rtp_theora_pay_finish_headers), (gst_rtp_theora_pay_parse_id),
(gst_rtp_theora_pay_handle_buffer):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps),
(gst_rtp_vorbis_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_finish_headers):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvrawdepay.c: (gst_rtp_vraw_depay_setcaps):
Clean up caps negotiation, don't ignore setcaps return.
* gst/rtp/gstrtpvrawpay.c: (gst_rtp_vraw_pay_setcaps):
Don't ignore the return value of set_outcaps.
2008-10-27 11:03:53 +00:00
|
|
|
need_clock_rate = 16000;
|
2007-06-01 11:16:17 +00:00
|
|
|
type = "audio/AMR-WB";
|
|
|
|
} else
|
|
|
|
goto invalid_mode;
|
|
|
|
} else
|
|
|
|
goto invalid_mode;
|
|
|
|
|
2005-09-21 12:19:24 +00:00
|
|
|
if (!(str = gst_structure_get_string (structure, "octet-align")))
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->octet_align = FALSE;
|
2005-09-21 12:19:24 +00:00
|
|
|
else
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->octet_align = (atoi (str) == 1);
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
|
2005-09-21 12:19:24 +00:00
|
|
|
if (!(str = gst_structure_get_string (structure, "crc")))
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->crc = FALSE;
|
2005-09-21 12:19:24 +00:00
|
|
|
else
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->crc = (atoi (str) == 1);
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
|
2005-12-01 14:30:01 +00:00
|
|
|
if (rtpamrdepay->crc) {
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
/* crc mode implies octet aligned mode */
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->octet_align = TRUE;
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
}
|
|
|
|
|
2005-09-21 12:19:24 +00:00
|
|
|
if (!(str = gst_structure_get_string (structure, "robust-sorting")))
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->robust_sorting = FALSE;
|
2005-09-21 12:19:24 +00:00
|
|
|
else
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->robust_sorting = (atoi (str) == 1);
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
|
2005-12-01 14:30:01 +00:00
|
|
|
if (rtpamrdepay->robust_sorting) {
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
/* robust_sorting mode implies octet aligned mode */
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->octet_align = TRUE;
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
}
|
|
|
|
|
2005-09-21 12:19:24 +00:00
|
|
|
if (!(str = gst_structure_get_string (structure, "interleaving")))
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->interleaving = FALSE;
|
2005-09-21 12:19:24 +00:00
|
|
|
else
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->interleaving = (atoi (str) == 1);
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
|
2005-12-01 14:30:01 +00:00
|
|
|
if (rtpamrdepay->interleaving) {
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
/* interleaving mode implies octet aligned mode */
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->octet_align = TRUE;
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
}
|
|
|
|
|
2005-09-20 10:51:51 +00:00
|
|
|
if (!(params = gst_structure_get_string (structure, "encoding-params")))
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->channels = 1;
|
2005-09-15 13:57:56 +00:00
|
|
|
else {
|
2005-12-01 14:30:01 +00:00
|
|
|
rtpamrdepay->channels = atoi (params);
|
2005-09-15 13:57:56 +00:00
|
|
|
}
|
|
|
|
|
gst/rtp/gstrtpL16depay.c: Check if clock-rate and channels are valid.
Original commit message from CVS:
* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16_depay_setcaps),
(gst_rtp_L16_depay_process):
Check if clock-rate and channels are valid.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpL16pay.c: (gst_rtp_L16_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpac3depay.c: (gst_rtp_ac3_depay_setcaps),
(gst_rtp_ac3_depay_process):
Don't ignore the return value of set_caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_setcaps),
(gst_rtp_amr_depay_process):
* gst/rtp/gstrtpamrdepay.h:
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set output caps on the buffers, the base class does that for
us.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpdvdepay.c: (gst_rtp_dv_depay_setcaps),
(gst_rtp_dv_depay_process), (gst_rtp_dv_depay_reset):
* gst/rtp/gstrtpdvdepay.h:
Clean up caps negotiation.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpg726depay.c: (gst_rtp_g726_depay_setcaps),
(gst_rtp_g726_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpg729depay.c: (gst_rtp_g729_depay_init),
(gst_rtp_g729_depay_setcaps), (gst_rtp_g729_depay_process):
* gst/rtp/gstrtpg729depay.h:
The subclass will make sure we are negotiated.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_setcaps),
(gst_rtp_gsm_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmpay.c: (gst_rtp_gsm_pay_setcaps):
Clean up caps negotiation.
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_setcaps),
(gst_rtp_h263_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263pay.c: (gst_rtp_h263_pay_setcaps),
(gst_rtp_h263_pay_flush), (gst_rtp_h263_pay_handle_buffer):
* gst/rtp/gstrtph263pay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_setcaps),
(gst_rtp_h263p_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263ppay.c: (gst_rtp_h263p_pay_class_init),
(gst_rtp_h263p_pay_setcaps), (gst_rtp_h263p_pay_flush),
(gst_rtp_h263p_pay_handle_buffer):
* gst/rtp/gstrtph263ppay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_setcaps),
(gst_rtp_h264_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
Fix possible caps leak.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_setcaps):
Add some more debug info.
* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_setcaps),
(gst_rtp_ilbc_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpilbcpay.c: (gst_rtpilbcpay_sink_setcaps):
Clean up caps negotiation.
* gst/rtp/gstrtpmp1sdepay.c: (gst_rtp_mp1s_depay_setcaps),
(gst_rtp_mp1s_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_setcaps),
(gst_rtp_mp2t_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_setcaps),
(gst_rtp_mp4a_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmp4apay.c: (gst_rtp_mp4a_pay_new_caps),
(gst_rtp_mp4a_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_setcaps),
(gst_rtp_mp4g_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_finalize),
(gst_rtp_mp4g_pay_new_caps), (gst_rtp_mp4g_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps),
(gst_rtp_mp4v_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_new_caps),
(gst_rtp_mp4v_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_setcaps),
(gst_rtp_mpa_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpmpapay.c: (gst_rtp_mpa_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_setcaps),
(gst_rtp_mpv_depay_process):
Clean up caps negotiation.
Actually set output caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmpvpay.c: (gst_rtp_mpv_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_setcaps),
(gst_rtp_pcma_depay_process):
Clean up caps negotiation.
Set output buffer duration because we can.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_setcaps),
(gst_rtp_pcmu_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_setcaps), (gst_rtp_speex_depay_process):
Clean up caps negotiation.
Set output caps on the pad and header buffers.
Set duration on output buffers because we can.
* gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_parse_ident):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_setcaps),
(gst_rtp_sv3v_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
No need to set caps out output buffers, subclass does that.
* gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps),
(gst_rtp_theora_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtptheorapay.c: (gst_rtp_theora_pay_class_init),
(gst_rtp_theora_pay_flush_packet), (encode_base64),
(gst_rtp_theora_pay_finish_headers), (gst_rtp_theora_pay_parse_id),
(gst_rtp_theora_pay_handle_buffer):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps),
(gst_rtp_vorbis_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_finish_headers):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvrawdepay.c: (gst_rtp_vraw_depay_setcaps):
Clean up caps negotiation, don't ignore setcaps return.
* gst/rtp/gstrtpvrawpay.c: (gst_rtp_vraw_pay_setcaps):
Don't ignore the return value of set_outcaps.
2008-10-27 11:03:53 +00:00
|
|
|
if (!gst_structure_get_int (structure, "clock-rate", &clock_rate))
|
|
|
|
clock_rate = need_clock_rate;
|
2007-04-10 17:06:05 +00:00
|
|
|
depayload->clock_rate = clock_rate;
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
|
2005-09-20 10:51:51 +00:00
|
|
|
/* we require 1 channel, 8000 Hz, octet aligned, no CRC,
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
* no robust sorting, no interleaving for now */
|
2005-12-01 14:30:01 +00:00
|
|
|
if (rtpamrdepay->channels != 1)
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
return FALSE;
|
2007-06-01 11:16:17 +00:00
|
|
|
if (clock_rate != need_clock_rate)
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
return FALSE;
|
2005-12-01 14:30:01 +00:00
|
|
|
if (rtpamrdepay->octet_align != TRUE)
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
return FALSE;
|
2005-12-01 14:30:01 +00:00
|
|
|
if (rtpamrdepay->robust_sorting != FALSE)
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
return FALSE;
|
2005-12-01 14:30:01 +00:00
|
|
|
if (rtpamrdepay->interleaving != FALSE)
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
return FALSE;
|
|
|
|
|
2007-06-01 11:16:17 +00:00
|
|
|
srccaps = gst_caps_new_simple (type,
|
2005-12-01 14:30:01 +00:00
|
|
|
"channels", G_TYPE_INT, rtpamrdepay->channels,
|
2006-07-14 13:33:54 +00:00
|
|
|
"rate", G_TYPE_INT, clock_rate, NULL);
|
gst/rtp/gstrtpL16depay.c: Check if clock-rate and channels are valid.
Original commit message from CVS:
* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16_depay_setcaps),
(gst_rtp_L16_depay_process):
Check if clock-rate and channels are valid.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpL16pay.c: (gst_rtp_L16_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpac3depay.c: (gst_rtp_ac3_depay_setcaps),
(gst_rtp_ac3_depay_process):
Don't ignore the return value of set_caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_setcaps),
(gst_rtp_amr_depay_process):
* gst/rtp/gstrtpamrdepay.h:
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set output caps on the buffers, the base class does that for
us.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpdvdepay.c: (gst_rtp_dv_depay_setcaps),
(gst_rtp_dv_depay_process), (gst_rtp_dv_depay_reset):
* gst/rtp/gstrtpdvdepay.h:
Clean up caps negotiation.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpg726depay.c: (gst_rtp_g726_depay_setcaps),
(gst_rtp_g726_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpg729depay.c: (gst_rtp_g729_depay_init),
(gst_rtp_g729_depay_setcaps), (gst_rtp_g729_depay_process):
* gst/rtp/gstrtpg729depay.h:
The subclass will make sure we are negotiated.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_setcaps),
(gst_rtp_gsm_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmpay.c: (gst_rtp_gsm_pay_setcaps):
Clean up caps negotiation.
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_setcaps),
(gst_rtp_h263_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263pay.c: (gst_rtp_h263_pay_setcaps),
(gst_rtp_h263_pay_flush), (gst_rtp_h263_pay_handle_buffer):
* gst/rtp/gstrtph263pay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_setcaps),
(gst_rtp_h263p_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263ppay.c: (gst_rtp_h263p_pay_class_init),
(gst_rtp_h263p_pay_setcaps), (gst_rtp_h263p_pay_flush),
(gst_rtp_h263p_pay_handle_buffer):
* gst/rtp/gstrtph263ppay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_setcaps),
(gst_rtp_h264_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
Fix possible caps leak.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_setcaps):
Add some more debug info.
* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_setcaps),
(gst_rtp_ilbc_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpilbcpay.c: (gst_rtpilbcpay_sink_setcaps):
Clean up caps negotiation.
* gst/rtp/gstrtpmp1sdepay.c: (gst_rtp_mp1s_depay_setcaps),
(gst_rtp_mp1s_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_setcaps),
(gst_rtp_mp2t_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_setcaps),
(gst_rtp_mp4a_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmp4apay.c: (gst_rtp_mp4a_pay_new_caps),
(gst_rtp_mp4a_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_setcaps),
(gst_rtp_mp4g_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_finalize),
(gst_rtp_mp4g_pay_new_caps), (gst_rtp_mp4g_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps),
(gst_rtp_mp4v_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_new_caps),
(gst_rtp_mp4v_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_setcaps),
(gst_rtp_mpa_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpmpapay.c: (gst_rtp_mpa_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_setcaps),
(gst_rtp_mpv_depay_process):
Clean up caps negotiation.
Actually set output caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmpvpay.c: (gst_rtp_mpv_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_setcaps),
(gst_rtp_pcma_depay_process):
Clean up caps negotiation.
Set output buffer duration because we can.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_setcaps),
(gst_rtp_pcmu_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_setcaps), (gst_rtp_speex_depay_process):
Clean up caps negotiation.
Set output caps on the pad and header buffers.
Set duration on output buffers because we can.
* gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_parse_ident):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_setcaps),
(gst_rtp_sv3v_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
No need to set caps out output buffers, subclass does that.
* gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps),
(gst_rtp_theora_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtptheorapay.c: (gst_rtp_theora_pay_class_init),
(gst_rtp_theora_pay_flush_packet), (encode_base64),
(gst_rtp_theora_pay_finish_headers), (gst_rtp_theora_pay_parse_id),
(gst_rtp_theora_pay_handle_buffer):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps),
(gst_rtp_vorbis_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_finish_headers):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvrawdepay.c: (gst_rtp_vraw_depay_setcaps):
Clean up caps negotiation, don't ignore setcaps return.
* gst/rtp/gstrtpvrawpay.c: (gst_rtp_vraw_pay_setcaps):
Don't ignore the return value of set_outcaps.
2008-10-27 11:03:53 +00:00
|
|
|
res = gst_pad_set_caps (GST_BASE_RTP_DEPAYLOAD_SRCPAD (depayload), srccaps);
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
gst_caps_unref (srccaps);
|
|
|
|
|
gst/rtp/gstrtpL16depay.c: Check if clock-rate and channels are valid.
Original commit message from CVS:
* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16_depay_setcaps),
(gst_rtp_L16_depay_process):
Check if clock-rate and channels are valid.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpL16pay.c: (gst_rtp_L16_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpac3depay.c: (gst_rtp_ac3_depay_setcaps),
(gst_rtp_ac3_depay_process):
Don't ignore the return value of set_caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_setcaps),
(gst_rtp_amr_depay_process):
* gst/rtp/gstrtpamrdepay.h:
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set output caps on the buffers, the base class does that for
us.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpdvdepay.c: (gst_rtp_dv_depay_setcaps),
(gst_rtp_dv_depay_process), (gst_rtp_dv_depay_reset):
* gst/rtp/gstrtpdvdepay.h:
Clean up caps negotiation.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpg726depay.c: (gst_rtp_g726_depay_setcaps),
(gst_rtp_g726_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpg729depay.c: (gst_rtp_g729_depay_init),
(gst_rtp_g729_depay_setcaps), (gst_rtp_g729_depay_process):
* gst/rtp/gstrtpg729depay.h:
The subclass will make sure we are negotiated.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_setcaps),
(gst_rtp_gsm_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmpay.c: (gst_rtp_gsm_pay_setcaps):
Clean up caps negotiation.
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_setcaps),
(gst_rtp_h263_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263pay.c: (gst_rtp_h263_pay_setcaps),
(gst_rtp_h263_pay_flush), (gst_rtp_h263_pay_handle_buffer):
* gst/rtp/gstrtph263pay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_setcaps),
(gst_rtp_h263p_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263ppay.c: (gst_rtp_h263p_pay_class_init),
(gst_rtp_h263p_pay_setcaps), (gst_rtp_h263p_pay_flush),
(gst_rtp_h263p_pay_handle_buffer):
* gst/rtp/gstrtph263ppay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_setcaps),
(gst_rtp_h264_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
Fix possible caps leak.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_setcaps):
Add some more debug info.
* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_setcaps),
(gst_rtp_ilbc_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpilbcpay.c: (gst_rtpilbcpay_sink_setcaps):
Clean up caps negotiation.
* gst/rtp/gstrtpmp1sdepay.c: (gst_rtp_mp1s_depay_setcaps),
(gst_rtp_mp1s_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_setcaps),
(gst_rtp_mp2t_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_setcaps),
(gst_rtp_mp4a_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmp4apay.c: (gst_rtp_mp4a_pay_new_caps),
(gst_rtp_mp4a_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_setcaps),
(gst_rtp_mp4g_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_finalize),
(gst_rtp_mp4g_pay_new_caps), (gst_rtp_mp4g_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps),
(gst_rtp_mp4v_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_new_caps),
(gst_rtp_mp4v_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_setcaps),
(gst_rtp_mpa_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpmpapay.c: (gst_rtp_mpa_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_setcaps),
(gst_rtp_mpv_depay_process):
Clean up caps negotiation.
Actually set output caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmpvpay.c: (gst_rtp_mpv_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_setcaps),
(gst_rtp_pcma_depay_process):
Clean up caps negotiation.
Set output buffer duration because we can.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_setcaps),
(gst_rtp_pcmu_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_setcaps), (gst_rtp_speex_depay_process):
Clean up caps negotiation.
Set output caps on the pad and header buffers.
Set duration on output buffers because we can.
* gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_parse_ident):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_setcaps),
(gst_rtp_sv3v_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
No need to set caps out output buffers, subclass does that.
* gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps),
(gst_rtp_theora_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtptheorapay.c: (gst_rtp_theora_pay_class_init),
(gst_rtp_theora_pay_flush_packet), (encode_base64),
(gst_rtp_theora_pay_finish_headers), (gst_rtp_theora_pay_parse_id),
(gst_rtp_theora_pay_handle_buffer):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps),
(gst_rtp_vorbis_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_finish_headers):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvrawdepay.c: (gst_rtp_vraw_depay_setcaps):
Clean up caps negotiation, don't ignore setcaps return.
* gst/rtp/gstrtpvrawpay.c: (gst_rtp_vraw_pay_setcaps):
Don't ignore the return value of set_outcaps.
2008-10-27 11:03:53 +00:00
|
|
|
return res;
|
2007-06-01 11:16:17 +00:00
|
|
|
|
|
|
|
/* ERRORS */
|
|
|
|
invalid_mode:
|
|
|
|
{
|
|
|
|
GST_ERROR_OBJECT (rtpamrdepay, "invalid encoding-name");
|
|
|
|
return FALSE;
|
|
|
|
}
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
}
|
|
|
|
|
2005-09-21 17:50:29 +00:00
|
|
|
/* -1 is invalid */
|
2010-09-06 13:40:02 +00:00
|
|
|
static const gint nb_frame_size[16] = {
|
2005-09-21 17:50:29 +00:00
|
|
|
12, 13, 15, 17, 19, 20, 26, 31,
|
|
|
|
5, -1, -1, -1, -1, -1, -1, 0
|
|
|
|
};
|
2009-08-27 10:36:37 +00:00
|
|
|
|
2010-09-06 13:40:02 +00:00
|
|
|
static const gint wb_frame_size[16] = {
|
2007-06-01 11:16:17 +00:00
|
|
|
17, 23, 32, 36, 40, 46, 50, 58,
|
2010-08-18 09:42:07 +00:00
|
|
|
60, 5, -1, -1, -1, -1, -1, 0
|
2007-06-01 11:16:17 +00:00
|
|
|
};
|
2005-09-21 17:50:29 +00:00
|
|
|
|
2006-07-14 13:33:54 +00:00
|
|
|
static GstBuffer *
|
|
|
|
gst_rtp_amr_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf)
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
{
|
2005-12-01 14:30:01 +00:00
|
|
|
GstRtpAMRDepay *rtpamrdepay;
|
2010-09-06 13:40:02 +00:00
|
|
|
const gint *frame_size;
|
2006-07-14 13:33:54 +00:00
|
|
|
GstBuffer *outbuf = NULL;
|
2007-04-10 17:06:05 +00:00
|
|
|
gint payload_len;
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2006-07-14 13:33:54 +00:00
|
|
|
rtpamrdepay = GST_RTP_AMR_DEPAY (depayload);
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2007-06-01 11:16:17 +00:00
|
|
|
/* setup frame size pointer */
|
|
|
|
if (rtpamrdepay->mode == GST_RTP_AMR_DP_MODE_NB)
|
|
|
|
frame_size = nb_frame_size;
|
|
|
|
else
|
|
|
|
frame_size = wb_frame_size;
|
|
|
|
|
2009-08-27 10:36:37 +00:00
|
|
|
/* when we get here, 1 channel, 8000/16000 Hz, octet aligned, no CRC,
|
2006-02-09 14:14:07 +00:00
|
|
|
* no robust sorting, no interleaving data is to be depayloaded */
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
{
|
2005-09-21 17:50:29 +00:00
|
|
|
guint8 *payload, *p, *dp;
|
|
|
|
gint i, num_packets, num_nonempty_packets;
|
|
|
|
gint amr_len;
|
|
|
|
gint ILL, ILP;
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2005-12-01 14:30:01 +00:00
|
|
|
payload_len = gst_rtp_buffer_get_payload_len (buf);
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
|
|
|
|
/* need at least 2 bytes for the header */
|
2007-04-10 17:06:05 +00:00
|
|
|
if (payload_len < 2)
|
|
|
|
goto too_small;
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
|
2005-12-01 14:30:01 +00:00
|
|
|
payload = gst_rtp_buffer_get_payload (buf);
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2005-12-01 14:39:30 +00:00
|
|
|
/* depay CMR. The CMR is used by the sender to request
|
2005-09-21 17:50:29 +00:00
|
|
|
* a new encoding mode.
|
|
|
|
*
|
2009-08-27 10:36:37 +00:00
|
|
|
* 0 1 2 3 4 5 6 7
|
2005-09-21 17:50:29 +00:00
|
|
|
* +-+-+-+-+-+-+-+-+
|
|
|
|
* | CMR |R|R|R|R|
|
|
|
|
* +-+-+-+-+-+-+-+-+
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
*/
|
2011-04-15 12:57:20 +00:00
|
|
|
/* CMR = (payload[0] & 0xf0) >> 4; */
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
|
2005-09-21 17:50:29 +00:00
|
|
|
/* strip CMR header now, pack FT and the data for the decoder */
|
ext/amrnb/: Update caps with audio/AMR.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps):
* ext/amrnb/amrnbparse.c:
Update caps with audio/AMR.
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init),
(gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain),
(gst_rtpamrdec_change_state):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain):
Dont set FT headers twice, it was already in the encoded
bitstream.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play):
* gst/rtsp/rtspconnection.c: (parse_line):
Cleanups
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property):
* gst/udp/gstudpsrc.h:
Added caps property, we need this soon to type the buffers.
2005-08-19 12:44:35 +00:00
|
|
|
payload_len -= 1;
|
|
|
|
payload += 1;
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2006-02-09 14:14:07 +00:00
|
|
|
GST_DEBUG_OBJECT (rtpamrdepay, "payload len %d", payload_len);
|
|
|
|
|
2005-12-01 14:30:01 +00:00
|
|
|
if (rtpamrdepay->interleaving) {
|
2005-09-21 17:50:29 +00:00
|
|
|
ILL = (payload[0] & 0xf0) >> 4;
|
|
|
|
ILP = (payload[0] & 0x0f);
|
|
|
|
|
|
|
|
payload_len -= 1;
|
|
|
|
payload += 1;
|
|
|
|
|
2007-04-10 17:06:05 +00:00
|
|
|
if (ILP > ILL)
|
|
|
|
goto wrong_interleaving;
|
2005-09-21 17:50:29 +00:00
|
|
|
}
|
|
|
|
|
2009-08-27 10:36:37 +00:00
|
|
|
/*
|
|
|
|
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
|
2005-09-21 17:50:29 +00:00
|
|
|
* +-+-+-+-+-+-+-+-+..
|
|
|
|
* |F| FT |Q|P|P| more FT..
|
|
|
|
* +-+-+-+-+-+-+-+-+..
|
|
|
|
*/
|
|
|
|
/* count number of packets by counting the FTs. Also
|
|
|
|
* count number of amr data bytes and number of non-empty
|
|
|
|
* packets (this is also the number of CRCs if present). */
|
|
|
|
amr_len = 0;
|
|
|
|
num_nonempty_packets = 0;
|
|
|
|
num_packets = 0;
|
|
|
|
for (i = 0; i < payload_len; i++) {
|
|
|
|
gint fr_size;
|
|
|
|
guint8 FT;
|
|
|
|
|
|
|
|
FT = (payload[i] & 0x78) >> 3;
|
|
|
|
|
|
|
|
fr_size = frame_size[FT];
|
2006-02-09 14:14:07 +00:00
|
|
|
GST_DEBUG_OBJECT (rtpamrdepay, "frame size %d", fr_size);
|
2007-04-10 17:06:05 +00:00
|
|
|
if (fr_size == -1)
|
|
|
|
goto wrong_framesize;
|
2005-09-21 17:50:29 +00:00
|
|
|
|
|
|
|
if (fr_size > 0) {
|
|
|
|
amr_len += fr_size;
|
|
|
|
num_nonempty_packets++;
|
|
|
|
}
|
|
|
|
num_packets++;
|
|
|
|
|
|
|
|
if ((payload[i] & 0x80) == 0)
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2005-12-01 14:30:01 +00:00
|
|
|
if (rtpamrdepay->crc) {
|
2005-09-21 17:50:29 +00:00
|
|
|
/* data len + CRC len + header bytes should be smaller than payload_len */
|
2007-04-10 17:06:05 +00:00
|
|
|
if (num_packets + num_nonempty_packets + amr_len > payload_len)
|
|
|
|
goto wrong_length_1;
|
2005-09-21 17:50:29 +00:00
|
|
|
} else {
|
|
|
|
/* data len + header bytes should be smaller than payload_len */
|
2007-04-10 17:06:05 +00:00
|
|
|
if (num_packets + amr_len > payload_len)
|
|
|
|
goto wrong_length_2;
|
2005-09-21 17:50:29 +00:00
|
|
|
}
|
|
|
|
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
outbuf = gst_buffer_new_and_alloc (payload_len);
|
|
|
|
|
2005-09-21 17:50:29 +00:00
|
|
|
/* point to destination */
|
|
|
|
p = GST_BUFFER_DATA (outbuf);
|
|
|
|
/* point to first data packet */
|
|
|
|
dp = payload + num_packets;
|
2005-12-01 14:30:01 +00:00
|
|
|
if (rtpamrdepay->crc) {
|
2005-09-21 17:50:29 +00:00
|
|
|
/* skip CRC if present */
|
|
|
|
dp += num_nonempty_packets;
|
|
|
|
}
|
|
|
|
|
|
|
|
for (i = 0; i < num_packets; i++) {
|
|
|
|
gint fr_size;
|
|
|
|
|
2006-02-17 15:37:38 +00:00
|
|
|
/* copy FT, clear F bit */
|
|
|
|
*p++ = payload[i] & 0x7f;
|
|
|
|
|
2005-09-21 17:50:29 +00:00
|
|
|
fr_size = frame_size[(payload[i] & 0x78) >> 3];
|
|
|
|
if (fr_size > 0) {
|
|
|
|
/* copy data packet, FIXME, calc CRC here. */
|
|
|
|
memcpy (p, dp, fr_size);
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2005-09-21 17:50:29 +00:00
|
|
|
p += fr_size;
|
|
|
|
dp += fr_size;
|
|
|
|
}
|
|
|
|
}
|
2007-09-21 11:34:34 +00:00
|
|
|
/* we can set the duration because each packet is 20 milliseconds */
|
|
|
|
GST_BUFFER_DURATION (outbuf) = num_packets * 20 * GST_MSECOND;
|
|
|
|
|
2009-04-18 16:48:06 +00:00
|
|
|
if (gst_rtp_buffer_get_marker (buf)) {
|
gst/rtp/gstrtpL16depay.c: Check if clock-rate and channels are valid.
Original commit message from CVS:
* gst/rtp/gstrtpL16depay.c: (gst_rtp_L16_depay_setcaps),
(gst_rtp_L16_depay_process):
Check if clock-rate and channels are valid.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpL16pay.c: (gst_rtp_L16_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpac3depay.c: (gst_rtp_ac3_depay_setcaps),
(gst_rtp_ac3_depay_process):
Don't ignore the return value of set_caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_setcaps),
(gst_rtp_amr_depay_process):
* gst/rtp/gstrtpamrdepay.h:
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set output caps on the buffers, the base class does that for
us.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpdvdepay.c: (gst_rtp_dv_depay_setcaps),
(gst_rtp_dv_depay_process), (gst_rtp_dv_depay_reset):
* gst/rtp/gstrtpdvdepay.h:
Clean up caps negotiation.
The subclass will make sure we are negotiated.
* gst/rtp/gstrtpg726depay.c: (gst_rtp_g726_depay_setcaps),
(gst_rtp_g726_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpg729depay.c: (gst_rtp_g729_depay_init),
(gst_rtp_g729_depay_setcaps), (gst_rtp_g729_depay_process):
* gst/rtp/gstrtpg729depay.h:
The subclass will make sure we are negotiated.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmdepay.c: (gst_rtp_gsm_depay_setcaps),
(gst_rtp_gsm_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpgsmpay.c: (gst_rtp_gsm_pay_setcaps):
Clean up caps negotiation.
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtph263depay.c: (gst_rtp_h263_depay_setcaps),
(gst_rtp_h263_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263pay.c: (gst_rtp_h263_pay_setcaps),
(gst_rtp_h263_pay_flush), (gst_rtp_h263_pay_handle_buffer):
* gst/rtp/gstrtph263pay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph263pdepay.c: (gst_rtp_h263p_depay_setcaps),
(gst_rtp_h263p_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph263ppay.c: (gst_rtp_h263p_pay_class_init),
(gst_rtp_h263p_pay_setcaps), (gst_rtp_h263p_pay_flush),
(gst_rtp_h263p_pay_handle_buffer):
* gst/rtp/gstrtph263ppay.h:
Don't ignore the return value of set_outcaps.
Do some more timestamps.
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_setcaps),
(gst_rtp_h264_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
Fix possible caps leak.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_setcaps):
Add some more debug info.
* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_setcaps),
(gst_rtp_ilbc_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpilbcpay.c: (gst_rtpilbcpay_sink_setcaps):
Clean up caps negotiation.
* gst/rtp/gstrtpmp1sdepay.c: (gst_rtp_mp1s_depay_setcaps),
(gst_rtp_mp1s_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp2tdepay.c: (gst_rtp_mp2t_depay_setcaps),
(gst_rtp_mp2t_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4adepay.c: (gst_rtp_mp4a_depay_setcaps),
(gst_rtp_mp4a_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmp4apay.c: (gst_rtp_mp4a_pay_new_caps),
(gst_rtp_mp4a_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_setcaps),
(gst_rtp_mp4g_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_finalize),
(gst_rtp_mp4g_pay_new_caps), (gst_rtp_mp4g_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_setcaps),
(gst_rtp_mp4v_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
No need to set caps on buffers, subclass does that for us.
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_new_caps),
(gst_rtp_mp4v_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_setcaps),
(gst_rtp_mpa_depay_process):
Clean up caps negotiation.
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtpmpapay.c: (gst_rtp_mpa_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpmpvdepay.c: (gst_rtp_mpv_depay_setcaps),
(gst_rtp_mpv_depay_process):
Clean up caps negotiation.
Actually set output caps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpmpvpay.c: (gst_rtp_mpv_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmadepay.c: (gst_rtp_pcma_depay_setcaps),
(gst_rtp_pcma_depay_process):
Clean up caps negotiation.
Set output buffer duration because we can.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmapay.c: (gst_rtp_pcma_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtppcmudepay.c: (gst_rtp_pcmu_depay_setcaps),
(gst_rtp_pcmu_depay_process):
Clean up caps negotiation.
Use the marker bit to set the DISCONT flag on outgoing buffers.
* gst/rtp/gstrtppcmupay.c: (gst_rtp_pcmu_pay_setcaps):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_setcaps), (gst_rtp_speex_depay_process):
Clean up caps negotiation.
Set output caps on the pad and header buffers.
Set duration on output buffers because we can.
* gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_parse_ident):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_setcaps),
(gst_rtp_sv3v_depay_process):
Clean up caps negotiation.
No need to validate the buffer, the base class does that for us.
No need to set caps out output buffers, subclass does that.
* gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps),
(gst_rtp_theora_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtptheorapay.c: (gst_rtp_theora_pay_class_init),
(gst_rtp_theora_pay_flush_packet), (encode_base64),
(gst_rtp_theora_pay_finish_headers), (gst_rtp_theora_pay_parse_id),
(gst_rtp_theora_pay_handle_buffer):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps),
(gst_rtp_vorbis_depay_process):
Don't ignore the return value of setcaps.
No need to validate the buffer, the base class does that for us.
* gst/rtp/gstrtpvorbispay.c: (gst_rtp_vorbis_pay_finish_headers):
Don't ignore the return value of set_outcaps.
* gst/rtp/gstrtpvrawdepay.c: (gst_rtp_vraw_depay_setcaps):
Clean up caps negotiation, don't ignore setcaps return.
* gst/rtp/gstrtpvrawpay.c: (gst_rtp_vraw_pay_setcaps):
Don't ignore the return value of set_outcaps.
2008-10-27 11:03:53 +00:00
|
|
|
/* marker bit marks a discont buffer after a talkspurt. */
|
2008-09-26 14:44:49 +00:00
|
|
|
GST_DEBUG_OBJECT (depayload, "marker bit was set");
|
|
|
|
GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
|
|
|
|
}
|
|
|
|
|
|
|
|
GST_DEBUG_OBJECT (depayload, "pushing buffer of size %d",
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
GST_BUFFER_SIZE (outbuf));
|
|
|
|
}
|
2006-07-14 13:33:54 +00:00
|
|
|
return outbuf;
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
|
2006-02-09 14:14:07 +00:00
|
|
|
/* ERRORS */
|
2007-04-10 17:06:05 +00:00
|
|
|
too_small:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_WARNING (rtpamrdepay, STREAM, DECODE,
|
|
|
|
(NULL), ("AMR RTP payload too small (%d)", payload_len));
|
|
|
|
goto bad_packet;
|
|
|
|
}
|
|
|
|
wrong_interleaving:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_WARNING (rtpamrdepay, STREAM, DECODE,
|
|
|
|
(NULL), ("AMR RTP wrong interleaving"));
|
|
|
|
goto bad_packet;
|
|
|
|
}
|
|
|
|
wrong_framesize:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_WARNING (rtpamrdepay, STREAM, DECODE,
|
|
|
|
(NULL), ("AMR RTP frame size == -1"));
|
|
|
|
goto bad_packet;
|
|
|
|
}
|
|
|
|
wrong_length_1:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_WARNING (rtpamrdepay, STREAM, DECODE,
|
|
|
|
(NULL), ("AMR RTP wrong length 1"));
|
|
|
|
goto bad_packet;
|
|
|
|
}
|
|
|
|
wrong_length_2:
|
|
|
|
{
|
|
|
|
GST_ELEMENT_WARNING (rtpamrdepay, STREAM, DECODE,
|
|
|
|
(NULL), ("AMR RTP wrong length 2"));
|
|
|
|
goto bad_packet;
|
|
|
|
}
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
bad_packet:
|
|
|
|
{
|
2006-02-09 14:14:07 +00:00
|
|
|
/* no fatal error */
|
2006-07-14 13:33:54 +00:00
|
|
|
return NULL;
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
gboolean
|
2005-12-01 14:30:01 +00:00
|
|
|
gst_rtp_amr_depay_plugin_init (GstPlugin * plugin)
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
{
|
2005-12-01 14:30:01 +00:00
|
|
|
return gst_element_register (plugin, "rtpamrdepay",
|
2010-12-21 15:49:28 +00:00
|
|
|
GST_RANK_SECONDARY, GST_TYPE_RTP_AMR_DEPAY);
|
gst/rtp/: Added very simplistic amr payloader. depayloader does not work yet.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c: (plugin_init):
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type),
(gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init),
(gst_rtpamrdec_init), (gst_rtpamrdec_chain),
(gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property),
(gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init):
* gst/rtp/gstrtpamrdec.h:
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type),
(gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init),
(gst_rtpamrenc_init), (gst_rtpamrenc_chain),
(gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property),
(gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init):
* gst/rtp/gstrtpamrenc.h:
* gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init),
(gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain):
Added very simplistic amr payloader. depayloader does not
work yet.
2005-08-18 17:39:17 +00:00
|
|
|
}
|