Commit graph

594 commits

Author SHA1 Message Date
Marc Leeman
ff1c05d876 rtpmp4vpay: Deprecated send-config property and replace by config-interval
Fixes bug #622412.
2011-05-26 12:22:52 +02:00
Wim Taymans
d89790d545 Merge branch 'master' into 0.11
Conflicts:
	gst/avi/gstavidemux.c
	gst/rtp/gstrtpac3depay.c
	gst/rtp/gstrtpg726depay.c
	gst/rtp/gstrtpmpvdepay.c
	gst/videofilter/gstgamma.c
2011-05-24 17:34:19 +02:00
Mark Nauwelaerts
397dc60b71 pcmudepay: allow variable sample rate 2011-05-24 13:13:55 +02:00
Mark Nauwelaerts
f335fee99e pcmadepay: allow variable sample rate 2011-05-24 13:13:52 +02:00
Stefan Kost
d122ea0122 rtp: fix static array overruns in a nicer way
Use G_N_ELEMENTS instead of hard-coding the array size.
2011-05-20 10:34:47 +03:00
Stefan Kost
5792d3b9c0 rtp: fix static array overruns
Yes array[10] has elements from 0...9.
2011-05-20 00:53:44 +03:00
Jose Antonio Santos Cadenas
9d32243671 rtp: Fix segmentation fault processing payload buffers
This commit checks if the value returned by
gst_rtp_buffer_get_payload_buffer and
gst_rtp_buffer_get_payload_subbuffer is NULL before using it.
2011-05-18 15:25:24 +02:00
Wim Taymans
31ffc671f2 rtpgstpay: fix buffer leak 2011-04-26 16:04:07 +01:00
Wim Taymans
eb84592cad rtpgstpay: fix buffer leak 2011-04-26 15:58:12 +02:00
Wim Taymans
9a96783abb rtp: port some more elements 2011-04-25 18:14:45 +02:00
Wim Taymans
bf9b4f8362 rtp: port more to 0.11 2011-04-25 17:27:40 +02:00
Wim Taymans
60db07b4bb rtp: port some more (de)payloaders 2011-04-25 13:16:58 +02:00
Wim Taymans
4aa6ca5578 port more plugins to 0.11 2011-04-18 10:54:43 +02:00
Wim Taymans
7555d0949f Merge branch 'master' into 0.11
Conflicts:
	android/apetag.mk
	android/avi.mk
	android/flv.mk
	android/icydemux.mk
	android/id3demux.mk
	android/qtdemux.mk
	android/rtp.mk
	android/rtpmanager.mk
	android/rtsp.mk
	android/soup.mk
	android/udp.mk
	android/wavenc.mk
	android/wavparse.mk
	configure.ac
2011-04-18 10:23:45 +02:00
Tim-Philipp Müller
f325935314 pulse, speexenc, rtpgsmpay: don't use g_assert() for error handling
Don't use g_assert() for error handling, even if they're highly unlikely.
Either we *know* that something can't happen, in which case we
should just not handle it, or we think something can happen, but it is
very very unlikely that it will ever happen, in which case we should
handle it like any other error instead of asserting.

g_assert() is best left for conditions we have control of, like checking
internal consistency of our code, not checking return values of external
code.

Fixes a bunch of warnings when compiling with -DG_DISABLE_ASSERT:
gstrtpgsmpay.c: In function 'gst_rtp_gsm_pay_handle_buffer':
gstrtpgsmpay.c:130:17: warning: variable 'rtpgsmpay' set but not used
gstspeexenc.c: In function 'gst_speex_enc_encode':
gstspeexenc.c:904:19: warning: variable 'written' set but not used
pulsesink.c: In function 'gst_pulsesink_change_state':
pulsesink.c:2725:9: warning: variable 'res' set but not used
pulsesrc.c: In function 'gst_pulsesrc_change_state':
pulsesrc.c:1253:7: warning: variable 'e' set but not used
2011-04-16 18:15:43 +01:00
Robert Swain
5b18c652fb rtp, rtpmanager: Address unused but set variables
GCC 4.6.x spits warnings about variables that are unused but set. Such
variables have been removed where trivial but with comments left behind
for informational purposes in some cases.

gst_rtp_session_chain_recv_rtcp () was changed in commit 490113d4
to always return GST_FLOW_OK instead of the return value of
rtp_session_process_rtcp (), so we'll keep it that way.
2011-04-16 12:49:16 +01:00
Thibault Saunier
b541208b77 android: Make it ready for androgenizer
Remove the android/ top dir
Fixe the Makefile.am to be androgenized

To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 01:20:11 +02:00
Haakon Sporsheim
fd545e260d rtpgstpay: declare frag_offset to hold 32bits.
As specified in documenation above and below.

https://bugzilla.gnome.org/show_bug.cgi?id=646954
2011-04-09 23:14:18 +01:00
Alexey Fisher
9b15f9c6a1 rtpspeexpay: Do not transmitt samples with GAP flag
If we get GAP samples, there is no need to transmitt it.
In some situations, microphone is muted, we can drop net traffick
usage to ~1 kbit/s. Without patch it will stay ~20 kbit/s
2011-04-08 13:56:13 +02:00
Wim Taymans
0024300aa2 rtp: port some pay/depayloaders 2011-04-07 19:04:33 +02:00
David Schleef
e54ba41ff7 rtpvrawpay: Implement interlacing 2011-02-17 18:05:43 -08:00
Wim Taymans
4279aa6a68 theorapay: handle 0 sized packets
Handle 0 sized packets (repeat frame) in the payloader and depayloader.

Fixes #641827
2011-02-14 16:48:06 +01:00
Olivier Crête
8a7a327db7 rtptheoradepay: Request new keyframe on lost packets
Theora can only use the last frame (or the keyframe) as a reference, so in
practice. If we receive a buffer that references an unknown codebook, request
new headers. It probably means that headers were lost.
2011-02-01 18:28:51 +01:00
Wim Taymans
f95c30a413 j2kpay: skip EPH packets
Include EPH markers into the previous chunk of packets.
2011-02-01 16:39:10 +01:00
Olivier Crête
07ebec51f5 rtppcmapay: Rename the class to have the right name
It was name pmca instead of pcma and made debug logs hard to search.
2011-01-31 17:56:43 -05:00
Tim-Philipp Müller
693b3b7e0b h264depay: don't leak codec data buffer in byte-stream=true mode
https://bugzilla.gnome.org/show_bug.cgi?id=640063
2011-01-20 14:10:55 +00:00
Edward Hervey
4decc3aaea rtp: Fix unitialized variables on macosx 2011-01-06 12:29:21 +01:00
Wim Taymans
6b91c5f6e7 vrawdepay: fix length check
Add some more debugging.
Add the length check so we don't cause unneeded warnings.
2011-01-05 15:03:32 +01:00
Wim Taymans
5ed3701a2d mp4adepay: improve timestamps on outgoing packets
Improve parsing of the samplerate.
Parse the framelen so that we can calculate timestamps.
When interpollate the incomming timestamp on outgoing buffers when there are
multiple subframes.

fixes #625825
2010-12-31 13:57:05 +01:00
Wim Taymans
9c2393490f mp4adepay: fix timestamps on buffers 2010-12-30 16:24:46 +01:00
Wim Taymans
756869421c mpvpay: fix flushing and discont
Fix flushing and disconts.
Clean up in state changes.
2010-12-30 16:24:46 +01:00
Tim-Philipp Müller
fafd0b7bc3 rtpjpegdepay: fix framerate parsing for locales that use a comma as floating point
atof() converts strings according to the current locale, but the
framerate string will likely always use a dot as floating point
separator, so use g_ascii_strtod() instead (but also canonicalise
the string before, so we can handle both formats as input).
2010-12-29 14:59:30 +00:00
Wim Taymans
ef0bc7558d gstpay: fix klass, add RTP as a use case 2010-12-23 18:39:52 +01:00
Wim Taymans
5fe6046c20 gstdepay: cleanup the cache 2010-12-23 18:39:52 +01:00
Wim Taymans
7c9b91d2d8 gstpay/depay: add generic gstreamer payloader
Add the beginnings of a generic GStreamer buffers payloader.
2010-12-23 18:39:52 +01:00
Wim Taymans
e13340ccb5 mp4gpay: reset state on flush-stop 2010-12-23 17:06:58 +01:00
Wim Taymans
1dd71cc63f mp4gdepay: flush state on flush-stop 2010-12-23 16:26:07 +01:00
Wim Taymans
6db12cb003 rtpac3pay: add AC3 payloader 2010-12-21 22:34:49 +01:00
Wim Taymans
97993d3119 ac3depay: fix debug category description 2010-12-21 22:17:19 +01:00
Wim Taymans
e2f4fe8d3d mpapay: add debug category 2010-12-21 22:16:42 +01:00
Wim Taymans
f4155f3cf3 rtp: add RTP hint to the klass 2010-12-21 17:23:03 +01:00
Wim Taymans
f357e09ac1 rtp: fix rank of payloaders and depayloaders
Set the payloaders and depayloaders to a reasonable rank.
2010-12-21 17:22:58 +01:00
Wim Taymans
d5c8771b2b vrawdepay: reset depayloader state
Reset the depayloader state on flush-stop.
2010-12-21 15:24:18 +01:00
Wim Taymans
eb99eb5515 mp4pay: use vmethod for intercepting events 2010-12-21 15:23:08 +01:00
Wim Taymans
e47f4487b4 theorapay: clear packet on flush-stop 2010-12-21 13:55:40 +01:00
Wim Taymans
2c6e198157 vorbispay: clear packet on flush-stop 2010-12-21 13:49:41 +01:00
Wim Taymans
1eb0f65f39 mp4gdepay: reset depayloader state 2010-12-21 12:31:44 +01:00
Wim Taymans
e8b8753c90 h264pay: flush adapter on flush-stop 2010-12-21 12:29:58 +01:00
Wim Taymans
6a5e6eac55 mpapay: flush last packets on EOS 2010-12-20 18:50:25 +01:00
Wim Taymans
933a170898 mpapay: reset payloader on state change 2010-12-20 16:51:47 +01:00
Wim Taymans
984849f8fe mpapay: reset payloader on flush
Reset the payloader on a flush event.
Handle DISCONT better.
2010-12-20 16:06:26 +01:00
Mark Nauwelaerts
4c368242c0 rtph264depay: determine output h264 layout using caps negotiation
... thereby (partially) deprecating properties currently controlling whether
or not byte-stream output or NAL/AU alignment (though properties still determine
fallback if nothing specified in caps).

Fixes #606662.
2010-12-17 15:38:27 +01:00
Wim Taymans
b87ec0262b j2kpay: handle EOC correctly
Don't include the next 2 bytes when we are at the end of the data and there are
no more bytes left.
2010-12-16 18:57:27 +01:00
Edward Hervey
34222431aa rtpj2kpay: Initialize all fields
Makes sad compliers happy
2010-12-15 18:21:34 +01:00
Wim Taymans
744472d2ad j2kpay: cleanup header construction
Use a simpler way of constructing the header that doesn't depend on
the endianness.
2010-12-15 16:25:10 +01:00
Wim Taymans
184c4219a7 j2kdepay: add support for buffer lists 2010-12-15 13:12:09 +01:00
Wim Taymans
957eac9579 j2kpay: stop scanning when we reached the end
Stop scanning for markers when we reached the end of the data.
2010-12-14 15:28:40 +01:00
Wim Taymans
acc37e52a7 mp4vpay: we can also accept xvid caps 2010-12-12 15:14:40 +01:00
Wim Taymans
6729a3b79c j2kdepay: make the depayloader more resilient
Use 3 adapters, one to accumulate paketization units, another on to accumulate
tiles and a last one to accumulate the final frame.
Don't just blindly flush the adapter on DISCONT but only discard the current
packetization unit.
When we dropped jpeg2000 packets between SOP markers, adjust the SOT header with
the new lenght.
2010-12-09 18:18:24 +01:00
Wim Taymans
005e27fa79 j2kpay: use SOP markers to split bitstream
When parsing the bitstream, look for SOP markers because we are allowed to split
packets on those marker boundaries.
Rework the parsing code a little so that we can pack multiple Packetization
units in one RTP packet.
2010-12-02 19:16:48 +01:00
Wim Taymans
29363d6068 rtpj2kpay: use buffer lists
Use buffer lists for doing zerocopy payloading.
Add property to disable buffer lists.
2010-12-02 19:16:47 +01:00
Wim Taymans
7e47921637 h264pay: small cleanups
Allocate adapter only once.
Make some guint8 * const.
2010-12-02 19:16:47 +01:00
Tambet Ingo
9d52c1a1d7 rtph264pay: implement full bytestream scan mode.
Implement the full bytestream scan mode.

Fixes #634910
2010-12-02 19:16:47 +01:00
Thijs Vermeir
e7b1655069 rtph264depay: fix segfault on empty payload
https://bugzilla.gnome.org/show_bug.cgi?id=635843
2010-11-26 23:33:40 +00:00
Wim Taymans
706731b331 rtph264depay: only set delta unit on all-non-key units
Only set the delta flag when all of the units in the packet are delta units.
Based on patch from Olivier Crête <olivier.crete@collabora.co.uk>

Fixes #632945
2010-11-01 15:09:05 +01:00
Stefan Kost
d8167e3071 various (gst): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 18:00:28 +03:00
Wim Taymans
9f8b56b974 h264depay: always mark the codec_data as keyframe
We need to mark the codec_data as a keyframe or else downstream decoders might
decide to skip it, waiting for a keyframe.

Fixes #631996
2010-10-13 11:48:49 +02:00
Thijs Vermeir
bcde8c1b29 rtpmpvpay: fix timestamping of rtp buffers
Incomming buffer is only pushed on the adapter at the end of the
handle_buffer function. But duration/timestamp of this buffer is already
taken into account for the current data in the adapter. This leads to
wrong rtp timestamps and extra latency.
2010-10-12 15:17:02 +02:00
Sebastian Dröge
a4c27169b6 rtp: Fix unitialized compiler warnings on OS X build bot
These warnings are wrong though, the variables are only used in
the cases where they *are* initialized by the bit reader.
2010-10-04 09:39:59 +02:00
Sebastian Dröge
c1877deee0 rtpg722pay: Fix uninitialized variable compiler warning
The clock rate is always 8000 Hz according to the RFC and
the sampling rate must always be 16000 Hz.
2010-10-03 23:49:08 +02:00
Wim Taymans
78e4a260b4 rtp: add G722 pay and depayloader 2010-09-30 18:34:36 +02:00
Wim Taymans
f5c65a919f rtph264depay: refactor and simplify AU merging
Move the processing of the NALU to a separate method.
Simplify the merging of NALU into AU and use common code when possible.
2010-09-22 12:41:23 +02:00
Wim Taymans
9cc24e1b94 rtppay: some printf format fixes 2010-09-17 11:07:02 +02:00
Wim Taymans
604c6555a4 rtpjpegpay: cleanups for DRI markers
Protect against invalid DRI markers.
do some cleanups
2010-09-13 17:31:35 +02:00
American Dynamics
0f3151c73b gstrtpjpegpay: Added Define Restart Interval (DRI) Marker
Added ability to detect and respond to a JPEG-defined DRI marker
2010-09-13 16:47:23 +02:00
Mark Nauwelaerts
d8a27ebe3e rtpmparobustdepay: fix some mis-implementation
Also add some debug.
2010-09-10 13:26:43 +02:00
Mark Nauwelaerts
81773f9cce rtpmparobustdepay: properly insert dummy buffers 2010-09-10 13:26:31 +02:00
Stefan Kost
d569cd8195 mp4adepay: small logging cleanup and addition to debug config parsing 2010-09-09 21:49:43 +03:00
Wim Taymans
de4a7fc4c4 rtpjpegpay: improve debugging 2010-09-09 18:48:53 +02:00
Mark Nauwelaerts
075afb6693 rtpmparobustdepay: use valid bitrate for dummy frame 2010-09-09 16:33:29 +02:00
Sebastian Dröge
640cb863d4 rtpjpegpay: Fix uninitialized variable compiler warning
Fixes bug #629018.
2010-09-08 07:13:42 +02:00
Wim Taymans
2ed53fd77f rtpjpegpay: do some more sanitity checks
Protect some more against invalid input.
2010-09-07 16:40:08 +02:00
American Dynamics
a482677a14 jpegpay: handle corrupted jpeg better
Protect against corrupted jpeg input.
2010-09-07 15:20:12 +02:00
Wim Taymans
474c013051 rvawdepay: cleanup unused fields 2010-09-07 13:56:54 +02:00
Wim Taymans
6be0c7b762 vrawdepay: handle invalid payload better
Make sure we don't read more data than available in the input buffer.
Clip the input data into the output buffer.
2010-09-07 13:56:53 +02:00
Stefan Kost
988f228da7 rtpmp4adepay: grab the sampling arte and put into caps
This is needed to be able to mux the received audio into mp4 (in the case of
aac). Fixes #625825.
2010-09-06 21:54:25 +03:00
Tim-Philipp Müller
22560c473d rtp: mark constant tables as const 2010-09-06 14:40:02 +01:00
Mark Nauwelaerts
2953801a5f rtpamrpay: properly support perfect-rtptime 2010-09-06 14:47:05 +02:00
Mark Nauwelaerts
275e352a2e rtpamrpay: proper duration for multiple frame payload 2010-09-06 14:47:02 +02:00
Mark Nauwelaerts
f5bbc56745 rtpamr(de)pay: support AMR-WB SID frame 2010-09-06 14:46:59 +02:00
Mark Nauwelaerts
d1974e386a rtpg729pay: properly support perfect-rtptime 2010-09-06 14:46:56 +02:00
Wim Taymans
fadade4d4a jpegdepay: handle DISCONT and reset state
Put a DISCONT event on the next output buffer when the input buffer had a
DISCONT.
Make sure we clear our adapter and reset our state before going to PAUSED.
Free the qtables.

Fixes #626869
2010-09-06 10:23:07 +02:00
Wim Taymans
3ec0d6b245 g729pay: extend from right parent 2010-09-06 10:23:07 +02:00
Wim Taymans
af70b300cc rtpmp4gpay: implement perfect timestamps
Use bitreader for parsing the config string
Reset state variables when going to READY
Parse frame length and use it to keep track of the rtptimestamps
2010-08-04 10:40:24 +02:00
Wim Taymans
29b32853d5 rtph263pdepay: allow more clock-rates as input
Although the spec says that the clock-rate should always be 90000, some rtsp
servers send different clock-rates so we must accept then in order to handle
those streams too.
2010-08-04 10:40:24 +02:00
Wim Taymans
d37c5e9021 L16depay: default to 1 channel
When we can't find any channel or encoding-params on the caps for dynamic
payload types, set the default number of channels to 1, as the spec says we
should.

See #623209
2010-08-04 10:40:24 +02:00
Wim Taymans
ed80c1834c L16depay: use encoding-params for the channels
When parsing the number of channels, use the encoding-params property from the
RTP caps because that is where we can find the channels according to the spec.
Fall back to the channels property in the caps when needed.

Fixes #623209
2010-08-04 10:39:44 +02:00
Mark Nauwelaerts
f1fe0e7157 rtpg729pay: avoid basertppayload perfect-rtptime mode
G729 packets may only occur intermittently (e.g. cn packets), and as such
do not allow for perfect-rtptime calculating rtp times based on frame or byte
count.  In particular, do not use rtp audio base payloader as base class, but
rather base payloader directly.
2010-08-02 13:05:05 +02:00
Mark Nauwelaerts
6405df0c50 rtph264pay: fix element leak 2010-08-02 13:04:41 +02:00
Mark Nauwelaerts
fadff26eec rtpmp4vdepay: fix buffer leak 2010-08-02 13:04:39 +02:00