Commit graph

867 commits

Author SHA1 Message Date
Mark Nauwelaerts c40807f6aa rtpmparobustdepay: avoid leaking bytewriter instance 2012-07-26 16:34:52 +02:00
Wim Taymans 0ed9e07c5d h264depay: small cleanups 2012-07-25 12:49:07 +02:00
Wim Taymans 4b92022120 rtp: always use buffer lists 2012-07-23 16:42:56 +02:00
Patricia Muscalu 3dd99f06f4 rtpmp4vpay: always enable buffer-lists 2012-07-23 16:17:37 +02:00
Patricia Muscalu 15cce2dd26 rtpjpegpay: always enable buffer-lists 2012-07-23 16:15:59 +02:00
Wim Taymans 51371d26ee update for RTP buffer api changes 2012-07-17 16:38:27 +02:00
Patricia Muscalu d38ac43a27 rtph264pay: use buffer lists
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679994
2012-07-17 10:10:14 +02:00
Tim-Philipp Müller c6224443a4 rtph264pay: avoid some relocations 2012-07-06 19:11:02 +01:00
Tim-Philipp Müller 3ef35ecdbc rtpmp4vpay: remove deprecated send-config property
Use config-interval instead.
2012-07-06 14:49:18 +01:00
Tim-Philipp Müller cd1da84bcc rtph264depay: remove deprecated "byte-stream" and "access-unit" properties
These will be picked automatically based on downstream caps now, so
if you want the depayloader to output a specific format, make sure
the element downstream advertises that preference or use a capsfilter
after the depayloader to force it.
2012-07-06 14:46:22 +01:00
Tim-Philipp Müller cffbf8cfc3 rtph264pay: remove deprecated and non-functional "profile-level-id" property
This is now optionally taken from downstream caps, so can be
specified via a capsfilter after the payloader.
2012-07-06 14:46:22 +01:00
Tim-Philipp Müller 48706beb70 rtph263ppay: accept any h263 input unless downstream forces specific requirements
rtph263ppay should accept any input compatible with its sink template
caps if it just outputs to e.g. udpsink or fakesink.

rtph263ppay ! rtph263pdepay should also work with any compatible input.
This would fail before with not-negotiated errors because the get_caps
function would see the encoding-name in the depayloader's template caps
and default to baseline H.263 because there's no profile/level information
in those caps, which is the right thing to do if downstream has filtercaps
from an SDP, but not if those fields are absent because they can be
anything like with the depayloader's template caps. Makes

  videotestsrc ! avenc_h263p ! rtph263ppay ! rtph263pdepay ! fakesink

work.
2012-07-06 11:57:38 +01:00
Wim Taymans 8eadb9c12c update for query api changes 2012-07-06 11:26:46 +02:00
Javier Jardón c740490c26 rtp: remove some outdated comments
https://bugzilla.gnome.org/show_bug.cgi?id=679301
2012-07-03 08:58:26 +01:00
Wim Taymans 6d158775bb rtph264pay: cleanups
Use the caps properties for alignment and format.
Remove some old properties, we always want to use bufferlists when we can now.
2012-06-28 12:00:09 +02:00
Wim Taymans 429bda6923 h264pay: prefer AVC, it's easier to parse etc 2012-06-28 11:32:03 +02:00
Wim Taymans 540245894f theoradepay: fix buffer memory
The memory was added to the input buffer instead of the output buffer.
2012-06-14 10:43:56 +02:00
Thiago Santos 78ec03e32f Some printf variable format fixes
The osx compiler complains about those
2012-06-05 17:53:57 -03:00
Edward Hervey 923be8a85b rtpmp2tdepay: Only output integral mpeg-ts packets
From RFC 2250

2. Encapsulation of MPEG System and Transport Streams
...
   For MPEG2 Transport Streams the RTP payload will contain an integral
   number of MPEG transport packets.  To avoid end system
   inefficiencies, data from multiple small MTS packets (normally fixed
   in size at 188 bytes) are aggregated into a single RTP packet.  The
   number of transport packets contained is computed by dividing RTP
   payload length by the length of an MTS packet (188).
....

Since it needs to contain "an integral number of MPEG transport packets", a
simple fix is to check that's the case, and strip off any leftover data.

Fixes #676799

Conflicts:

	gst/rtp/gstrtpmp2tdepay.c
2012-05-26 12:04:54 +02:00
Luis de Bethencourt c81fff0471 rtp: fix build issue in gstrtph264pay.c 2012-05-24 09:29:25 +01:00
Jonas Holmberg 7bf3a1bf95 rtph264pay: Add unrestricted caps
If there are no profile restrictions downstream, return caps with
profile=constrained-baseline in the first structure and append
unrestricted caps as the last structure.

Fixes bug #672019
2012-05-24 10:01:19 +02:00
Mark Nauwelaerts 182596b3ab rtpmp2tpay: respect mtu and packet boundaries
See #659915.
2012-05-18 12:53:44 +02:00
Youness Alaoui 7703a11073 rtpjpegpay: Allow U and V components to use different quant tables if they contain the same data
This allows some cameras (Logitech C920) that specify different quant
tables but both with the same data, to work.
Bug reported by Robert Krakora
2012-05-16 09:49:08 +02:00
idc-dragon e0945d0a2d celtdepay: calculate size correctly
The summation was done wrong, causing the de-payloader to exit its loop too
early, before all frames are processed.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674472
2012-04-25 10:29:56 +02:00
Sebastian Dröge 04b70571e5 video: Update for libgstvideo API changes 2012-04-19 12:20:59 +02:00
Edward Hervey 71fc25849e rtp: Use unchecked variant of GstByteWriter where applicable
The size was checked before
2012-04-12 15:50:16 +02:00
Tim-Philipp Müller e09ae5736d Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
Sebastian Dröge aa2cd462da gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 17:36:38 +02:00
Sebastian Dröge 5cdd49bf25 gst: Update versioning 2012-04-04 14:37:47 +02:00
Wim Taymans 3d61d12e03 update for buffer api change 2012-03-30 18:15:34 +02:00
Wim Taymans 69002aa24f update for buffer changes 2012-03-28 12:53:05 +02:00
Wim Taymans e310ee8218 caps: improve caps handling
Avoid caps copy and leaks
2012-03-27 16:42:41 +02:00
Mark Nauwelaerts e5ab3cc0a0 rtph264pay: ensure output caps are set when pushing output data
... even if some SPS/PPS has not passed by yet.
2012-03-26 18:38:34 +02:00
Mark Nauwelaerts 4bbc2a7106 rtpL16(de)pay: fix raw audio format in template caps 2012-03-26 18:38:34 +02:00
Olivier Crête 06f1c1817e rtph264depay: Make output in AVC stream format work even without complete sprop-parameter-set
This allows outputting streams in AVC format even if the SPS/PPS are sent inside
the RTP stream.

https://bugzilla.gnome.org/show_bug.cgi?id=654850

Ported from master
2012-03-22 16:18:37 -04:00
Wim Taymans c44cd8f55b Merge branch 'master' into 0.11
unport gdkpixbuf
not merged: https://bugzilla.gnome.org/show_bug.cgi?id=654850

Conflicts:
	docs/plugins/Makefile.am
	docs/plugins/gst-plugins-good-plugins-docs.sgml
	docs/plugins/gst-plugins-good-plugins-sections.txt
	docs/plugins/gst-plugins-good-plugins.hierarchy
	docs/plugins/inspect/plugin-avi.xml
	docs/plugins/inspect/plugin-png.xml
	ext/flac/gstflacdec.c
	ext/flac/gstflacdec.h
	ext/libpng/gstpngdec.c
	ext/libpng/gstpngenc.c
	ext/speex/gstspeexdec.c
	gst/audioparsers/gstflacparse.c
	gst/flv/gstflvmux.c
	gst/rtp/gstrtpdvdepay.c
	gst/rtp/gstrtph264depay.c
2012-03-22 11:53:24 +01:00
Wim Taymans ced47580b7 update for bufferpool changes 2012-03-15 22:11:17 +01:00
Wim Taymans f3a770a20c update for allocation query changes 2012-03-15 20:37:56 +01:00
Olivier Crête 053f33adc8 rtph264depay: Make output in AVC stream format work even without complete sprop-parameter-set
This allows outputting streams in AVC format even if the SPS/PPS are sent inside
the RTP stream.

https://bugzilla.gnome.org/show_bug.cgi?id=654850
2012-03-15 14:20:22 -04:00
Wim Taymans 751fcf035b take padding into account 2012-03-14 19:56:56 +01:00
Wim Taymans 734f11e4d3 mp4vpay: we can also handle x-divx 2012-03-14 11:26:35 +01:00
Wim Taymans fba47d17e8 mp4vdepay: fix buffer handling
Don't always output the payload subbuffer, use a separate variable to
make things clearer and without the error.
2012-03-13 21:31:48 +01:00
Wim Taymans 745210e792 h264depay: unmap on empty packet 2012-03-13 19:26:23 +01:00
Wim Taymans d65de434f5 rtph264pay: do DTS and PTS correctly 2012-03-13 18:07:18 +01:00
Wim Taymans e4fed38f49 rtp: fix unmap calls 2012-03-13 17:27:32 +01:00
Wim Taymans a32d944a38 fix for caps api changes 2012-03-11 19:06:37 +01:00
Sebastian Dröge 78079635a6 dvdepay: Fix 'comparison of unsigned expression >= 0 is always true' compiler warning
This was an actual bug as it could've caused reading from
invalid memory areas when the input is broken.
2012-03-06 14:16:21 +01:00
Wim Taymans ca9532ccc5 update for new memory api 2012-02-22 02:10:33 +01:00
Olivier Crête 18899cf94d rtph264pay: Force baseline is profile-level-id is unspecified 2012-02-21 10:51:43 +01:00
Olivier Crête 1fe69911a4 rtph264pay: Force baseline is profile-level-id is unspecified 2012-02-20 14:30:55 -05:00
Wim Taymans 225e98d623 Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacenc.c
	ext/jack/gstjackaudioclient.c
	ext/jack/gstjackaudiosink.c
	ext/jack/gstjackaudiosrc.c
	ext/pulse/plugin.c
	ext/shout2/gstshout2.c
	gst/matroska/matroska-mux.c
	gst/rtp/gstrtph264pay.c
2012-02-10 16:23:14 +01:00
Tim-Philipp Müller 5b25f3737b rtph264pay: add stream-format and alignment to h264 sink caps
We're happy to accept both byte-stream and avc, advertise
that on the sink caps and fix up _get_caps() function to
not just return "video/x-h264".

https://bugzilla.gnome.org/show_bug.cgi?id=606662
2012-02-10 14:08:55 +00:00
Tim-Philipp Müller 6872b40873 rtph264depay: add stream-format and alignment fields to src template caps
Because we can. And so we get a warning if we try to output avc with
nal alignment or somesuch.

https://bugzilla.gnome.org/show_bug.cgi?id=606662
2012-02-10 14:08:55 +00:00
Vincent Penquerc'h d651baf05a rtpmp2tpay: do not try to flush a packet when no data is available
https://bugzilla.gnome.org/show_bug.cgi?id=668874
2012-01-31 13:12:47 +00:00
Pascal Buhler c16fed2ad9 rtph264depay: Exclude NALu size from payload length on truncated packets.
https://bugzilla.gnome.org/show_bug.cgi?id=667846
2012-01-30 15:49:07 +00:00
Sebastian Dröge 0b517ce9fb Merge branch '0.11' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-good into 0.11 2012-01-25 12:49:34 +01:00
Sebastian Dröge 10554b271f Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacdec.c
	ext/jpeg/gstjpegenc.c
	ext/pulse/pulsesink.c
	sys/v4l2/gstv4l2src.c
2012-01-25 12:49:11 +01:00
Wim Taymans b4630dd3e0 more memory API porting 2012-01-25 12:30:29 +01:00
Wim Taymans 583d39dd8d update for new memory API 2012-01-25 12:30:28 +01:00
Mark Nauwelaerts a3ea25bc88 rtpmp4adepay: prevent out-of-bound array access 2012-01-20 17:10:48 +01:00
Mark Nauwelaerts ed94e01231 rtptheoradepay: remove dead code 2012-01-20 17:10:40 +01:00
Sebastian Dröge 59e08fa503 configure: Remove socket/winsock specific checks
Not necessary anymore.
2012-01-17 16:53:31 +01:00
Vincent Penquerc'h 2a7a38ca07 rtph263ppay: fix caps leak 2012-01-16 15:42:46 +00:00
Sebastian Dröge 4885f34458 rtp: Update for the new audio caps 2012-01-05 10:30:34 +01:00
Tim-Philipp Müller 668e15598b Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	sys/v4l2/gstv4l2object.c
2011-12-08 01:28:26 +00:00
Wim Taymans b1d771cf8c h263pay: fix invalid return value 2011-12-06 14:23:30 +01:00
Edward Hervey 04520cbe9a rtp: Initialize GstRTPBuffer before usage 2011-12-05 18:39:59 +01:00
Sebastian Rasmussen c090201ca5 rtpjpegpay: Ceil jpeg dimensions, instead of floor
A JPEG image inside an RTP stream has a preceeding RFC2435 header that
conveys width/height. The dimensions in this header are limited to be
multiples of 8. Since JPEG uses an MCU of 8x8 pixels any image must
already indirectly have image data dimensions that are rounded up in
order to contain enough data to render the image. Therefore this fix
safely rounds the image dimensions in the RFC2435 header up to the
closest multiple of 8.
2011-12-05 10:48:54 +01:00
Vincent Penquerc'h c0e101e93f various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Matej Knopp 1e5dd9e315 Fix printf format compiler warnings on OS X / 64bit
https://bugzilla.gnome.org/show_bug.cgi?id=662615
2011-11-22 01:28:22 +00:00
Wim Taymans 105650127e add parent to pad functions 2011-11-17 15:02:55 +01:00
Wim Taymans 797523efbd _peer_get_caps() -> _peer_query_caps() 2011-11-15 18:04:44 +01:00
Wim Taymans 75dc9634eb change getcaps to query
Chain up event function in payloaders.
2011-11-15 18:04:44 +01:00
Wim Taymans af1eec2ece rtp: fix for rtp header changes 2011-11-11 19:21:50 +01:00
Wim Taymans e84b8dbe94 update for base class rename 2011-11-11 12:32:41 +01:00
Wim Taymans 249d0083cc update for base class rename 2011-11-11 12:25:01 +01:00
Wim Taymans 7e12b58e37 update for adapter api changes 2011-11-10 18:32:58 +01:00
Wim Taymans fbaf216d25 update for changed base classes 2011-11-10 17:23:47 +01:00
Wim Taymans 85e73e0818 h263ppay: report to 0.11 2011-11-09 12:25:01 +01:00
Wim Taymans 95f3987332 Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacdec.c
	gst/audioparsers/gstflacparse.c
	gst/isomp4/qtdemux.c
2011-11-09 12:18:01 +01:00
Olivier Crête e15c293f13 rtph263ppay: Return the sink pad template as sink caps, not the src's
https://bugzilla.gnome.org/show_bug.cgi?id=577784
2011-11-08 15:53:39 +01:00
Olivier Crête 4b28d9d44e rtph263ppay: Also implement size/framerate restrictions in getcaps
https://bugzilla.gnome.org/show_bug.cgi?id=577784
2011-11-08 15:53:18 +01:00
Olivier Crête ff31090671 rtph263ppay: Implement getcaps following RFC 4629, picks the right annexes
https://bugzilla.gnome.org/show_bug.cgi?id=577784
2011-11-08 15:52:57 +01:00
Tim-Philipp Müller d65490dfad rtp: use GLib's G_BIG_ENDIAN define instead of BIG_ENDIAN
Fixes compiler warning on mingw32
2011-11-03 23:28:31 +00:00
Wim Taymans b1ef7e8a86 update for meta api change 2011-11-02 09:06:37 +01:00
Wim Taymans 9a8a8e72c8 structure: fix for api update 2011-11-02 09:06:37 +01:00
Wim Taymans 9c14280b1d make some more things compile again 2011-10-27 19:00:52 +02:00
Wim Taymans fc4684f4c6 fix compilation 2011-10-27 16:03:17 +02:00
Marc Leeman 98075ad70d set colour masks for video/x-raw-rgb in rtpvrawdepay 2011-10-14 09:32:47 +02:00
Wim Taymans a5cc912140 Merge branch 'master' into 0.11
Conflicts:
	ext/jpeg/gstjpegdec.c
	gst/rtp/gstrtpvrawpay.c
2011-10-13 08:58:06 +02:00
Edward Hervey 1b56d40170 rtpvrawpay: Only use 24 LSB for depth=24 RGB caps
... and indent the masks for clarity
2011-10-12 11:26:50 +02:00
Sjoerd Simons bf65acf11f gstrtpg722pay: Compensate for clockrate vs. samplerate difference
The RTP clock-rate used for G722 is 8000, even though the samplerate is
16000. Compensate for this by pretending G722 has 8 bits per sample
instead of the 4 bits as if it were a codec that ran at half the speed,
but with twice the number of bits. Fixes #661376
2011-10-10 21:50:28 +01:00
Wim Taymans 87fbd1e784 Merge branch 'master' into 0.11
Conflicts:
	common
	ext/pulse/pulsesink.c
	ext/soup/gstsouphttpclientsink.c
	gst/audioparsers/gstaacparse.c
	gst/audioparsers/gstac3parse.c
	gst/rtp/gstrtph264depay.c
	gst/rtpmanager/gstrtpjitterbuffer.c
	gst/rtpmanager/rtpjitterbuffer.c
	gst/rtsp/gstrtspsrc.c
	sys/ximage/gstximagesrc.c
2011-09-28 12:44:59 +02:00
Mark Nauwelaerts fd757890eb rtph264depay: improve downstream flow return feedback to upstream
... although basertpdepay does not really make it easy/possible to do so
all the way.
2011-09-20 14:14:39 +02:00
Wim Taymans 83ea243000 Merge branch 'master' into 0.11
Conflicts:
	common
2011-09-06 16:37:03 +02:00
Wim Taymans 33f18b8ea4 Merge branch 'master' into 0.11
Conflicts:
	gst/audioparsers/gstamrparse.c
	gst/isomp4/qtdemux.c
2011-09-06 16:06:25 +02:00
Mark Nauwelaerts 06f8e356a6 rtpmp4gdepay: improve bogus interleaved index compensating
Patch by <gudake@gmail.com>

Fixes #654585.
2011-09-06 13:20:23 +02:00
Olivier Crête d4778dbe43 rtph263ppay: Set H263-2000 if thats what the other side wants
The static caps states this element supports H263-2000, but setcaps never
sets it, so it was lie.

See https://bugzilla.gnome.org/show_bug.cgi?id=577784
2011-09-05 12:58:55 +02:00
Wim Taymans 24df106272 mp2t: fix encoding name according to RFC3551 2011-08-31 18:45:15 +02:00
Wim Taymans 18065ac823 port to new video flags 2011-08-25 16:41:23 +02:00
Wim Taymans 60f0e44bf6 video: port to new colorimetry info 2011-08-23 19:09:31 +02:00
Wim Taymans 9d6371405e fourcc: remove fourcc from caps 2011-08-22 12:24:15 +02:00
Wim Taymans 77ad0a1363 port more elements to new audio caps and API 2011-08-19 14:01:45 +02:00
Wim Taymans ee2aa25e04 port to new API 2011-08-03 18:37:27 +02:00
Wim Taymans 4121021bb2 Merge branch 'master' into 0.11
Conflicts:
	ext/pulse/pulsesink.c
	ext/pulse/pulsesrc.c
	gst/audioparsers/gstac3parse.c
	gst/rtp/gstrtph264depay.c
	gst/rtp/gstrtph264pay.c
	gst/rtpmanager/gstrtpssrcdemux.c
2011-08-03 18:25:30 +02:00
Robert Krakora f7893b8721 rtpjpegpay: Add support for H.264 payload in MJPEG container
See http://www.quickcamteam.net/uvc-h264/USB_Video_Payload_H.264_0.87.pdf

Fixes bug #655530.
2011-08-03 10:09:42 +02:00
Wim Taymans 5771056ed5 rtpvorbispay: fix porting error 2011-08-02 11:51:45 +02:00
Wim Taymans 49af68ebf4 -good: fix for bufferpool API change 2011-07-29 17:27:07 +02:00
Sjoerd Simons 4c73439ee3 rtph264depay: Cope with FU-A E bit not being set
Some h264 payloaders are unfortunately buggy and don't correctly set the
E bit in FU-A NAL when they have ended. Work around this by assuming
such a fragmentation unit has ended when there was no packet loss and a
new NAL is started
2011-07-27 18:18:13 +01:00
Wim Taymans 3e089bd7a9 rtp: fix compilation 2011-07-26 17:45:01 +02:00
Olivier Crête 2591a882ae rtph264depay: Complete merged AU on marker bit
The marker bit on a RTP packet means the AU has been completed, so push it out
immediately to reduce the latency.

https://bugzilla.gnome.org/show_bug.cgi?id=654850
2011-07-21 17:11:08 +02:00
Olivier Crête 118a7cc36a rtph264pay: Only set the marker bit on the last NALU of a multi-NALU access unit
An access unit could contain multiple NAL units, in that case, only the last
RTP packet of the last NALU should have its marker bit set.

https://bugzilla.gnome.org/show_bug.cgi?id=654850
2011-07-21 17:11:06 +02:00
Mark Nauwelaerts 471904032d rtph264depay: reset upon FLUSH_STOP
... which is particularly needed when merging NAL units, where not resetting
would lead to output of an older (pre-flush) AU (with unintended timestamp).
2011-07-18 14:32:26 +02:00
Wim Taymans 9c087d7d85 Merge branch 'master' into 0.11 2011-07-15 17:06:39 +02:00
Olivier Crête 87c7f303b0 rtppcmApay/depay: Static clock rates on static payloads, dynamic on dynamic
Partially reverts 397dc60b
2011-07-14 20:13:01 -04:00
Olivier Crête 57a832cbb1 rtph264pay: Implement getcaps
Convert profile-level-id from RTP caps into video/x-h264 style caps (with profile and level)
2011-07-13 14:10:35 -04:00
Mark Nauwelaerts eb82a50bd1 rtp: port remaining to 0.11 2011-07-10 21:50:19 +02:00
Wim Taymans cc65bff7c1 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	docs/plugins/inspect/plugin-esdsink.xml
	docs/plugins/inspect/plugin-gconfelements.xml
2011-06-21 18:24:41 +02:00
Mark Nauwelaerts 3daf1ecc21 rtpmp4adepay: fix output buffer timestamps in case of multiple frames 2011-06-21 15:15:33 +02:00
Wim Taymans 3c889415a3 rtp: port some more (de)payloader 2011-06-13 17:14:00 +02:00
Wim Taymans 9a54175e9f rtp: port to 0.11 2011-06-13 16:33:46 +02:00
Wim Taymans b0fbb1725f rtp: fix for API changes in the base classes 2011-06-13 13:25:49 +02:00
Wim Taymans 0b1bdcf7cb Merge branch 'master' into 0.11
Conflicts:
	sys/ximage/ximageutil.c
2011-06-02 18:51:29 +02:00
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
Mark Nauwelaerts 6a9c70486f rtph264depay: tweak DELTA_UNIT labeling
Consider SPS, PPS and IDR as keyframe, all others as DELTA_UNIT.

See #620154.
2010-06-16 15:53:45 +02:00
Mark Nauwelaerts dde3825405 rtph264depay: also consider AU and SEI NALUs as DELTA_UNIT
Fixes #620154.
2010-06-14 11:49:42 +02:00
Stefan Kost a1da36d5a6 build: include stdio.h for sscanf 2010-06-12 21:26:16 +03:00
Tim-Philipp Müller 97a2111c58 rtpmparobustdepay: don't try to unref NULL buffers
Fixes generic/states unit test.
2010-06-11 21:18:52 +01:00
Mark Nauwelaerts 815e06ba55 rtp: add mpa-robust depayloader
Fixes #589997.
2010-06-11 11:45:48 +02:00
Sjoerd Simons c39e82a1ce Cope with short startcodes in the h264 bytestream 2010-06-07 10:28:06 +02:00
Tristan Matthews 8e0adba996 gstrtpceltpay: don't always fixate sink caps to 1 channel
The getcaps function should not fixate the channels field until we
get the encoding-params field from our srcpad's caps. Fixes #620591
2010-06-05 10:02:35 +02:00
Sjoerd Simons 952fd666b3 Keep announcing the delivery-method in the capabilities
Even though we don't use delivery-method in our payloader, older versions of
the theora payloader in gstreamer required it. As such we need to keep this
around in the caps for backwards-compatibility.

This reverts part of 49463a37cb

Fixes #618940
2010-06-03 18:47:40 -04:00
Wim Taymans ffc06e17f0 mp4gdepay: calculate the frame duration correctly
When we calculate the frame duration, we need to use the amount of
frames in the _previous_ packet, not the current packet. The frame duration is
needed to correctly de-interleave interleaved streams. This fixes the case where
there are a variable number of frames in a packet.

Fixes #620494
2010-06-03 19:39:04 +02:00
Wim Taymans 49463a37cb rtptheora: remove delivery-method from caps
We can accept all delivery methods so don't advertise anything on the caps or
parse anything, we will handle whatever we receive.

Fixes #618940
2010-05-25 18:53:48 +02:00
Olivier Crête 28f509fdca rtptheoradepay: make delivery-method parameter optional
It probably will not be in the final RFC as it is not in RFC 5215 for Vorbis.
If there is a configuration specified, assume it is in-line and if nothing is
specified, assume it is in-band.

https://bugzilla.gnome.org/show_bug.cgi?id=618386
2010-05-13 12:22:36 +02:00
Wim Taymans 3e4bc043a5 celtpay: fix queue duration calculations
Don't blindly add the durations of incomming buffers to the total queued
duration because it might be invalid. Mark the total queued duration invalid
when we receive an invalid incomming timestamp because that's when we lose track
of the total queued duration.

Fixes #618324
2010-05-13 11:30:27 +02:00
Mark Nauwelaerts 4cff2e2c67 rtph264pay: extract SPS and PPS from property provided parameter set
... so it can also be regularly inserted into the stream if so configured.

Fixes #617164.
2010-05-12 10:24:10 +02:00
Tim-Philipp Müller c209a6ab40 rtp: dist missing header file to fix make distcheck 2010-05-11 20:26:37 +01:00
Olivier Crête 34d0d59142 rtph264pay: Re-send SPS/PPS when requested
https://bugzilla.gnome.org/show_bug.cgi?id=606689
2010-05-10 15:07:09 +02:00
Mark Nauwelaerts 90311e522f rtph264pay: fix typo in debug message 2010-05-10 13:35:55 +02:00
Mark Nauwelaerts af6fc84377 rtptheorapay: add config-interval parameter to re-insert config in stream
Add a new config-interval property to instruct the payloader to insert
configuration headers at periodic intervals in the stream
(when a keyframe is countered).
2010-05-10 13:35:52 +02:00
Mark Nauwelaerts 14b14fdf7a rtptheoradepay: fix in-band configuration parsing
Also make configuration header parsing a bit more relaxed with respect
to length field interpretation.
2010-05-10 13:35:50 +02:00
Mark Nauwelaerts b899afaeb6 rtpvorbisdepay: fix in-line configuration parsing
Also make configuration header parsing a bit more relaxed with respect
to length field interpretation.
2010-05-10 13:35:48 +02:00
Mark Nauwelaerts 7bd3943bb9 rtptheorapay: do not discard downstream flow return 2010-05-10 13:35:44 +02:00
Mark Nauwelaerts 53928a74fa rtptheorapay: refactor buffer payloading 2010-05-10 13:35:41 +02:00
Mark Nauwelaerts 220f865f77 rtpmp4vpay: add config-interval parameter to re-insert config in stream
Add a new config-interval property to instruct the payloader to insert
config (VOSH, VOS, etc) at periodic intervals in the stream
(when a GOP or VOP-I is encountered).

Based on patch by <marc.leeman at gmail.com>

Fixes #607452.
2010-05-04 11:19:43 +02:00
Tim-Philipp Müller c1d24699f5 rtp: fix printf format of some debug messages 2010-05-01 11:25:26 +01:00
Mark Nauwelaerts be5ffd96fe rtptheoradepay: also accept in-band configuration
Fixes #574416 (theora).
2010-04-30 13:54:56 +02:00
Mark Nauwelaerts a344cfba27 rtpvorbisdepay: also accept in-line configuration
Fixes #574416 (vorbis).
2010-04-30 13:54:52 +02:00
Olivier Crête 7bc3253761 rtptheoradepay: Ignore packets without a known codebook
Don't produce an error if a packet is received without a valid codebook,
it's possible that the codebook will just be coming later.

See #574416.
2010-04-30 13:54:50 +02:00
Mark Nauwelaerts 6bf7f5cfd3 rtph264depay: DELTA_UNIT marking of output buffers
... which evidently makes (most) sense if output buffers are
actually frames.

Partially based on a patch by
Miguel Angel Cabrera <mad_aluche at hotmail.com>

Fixes #609658.
2010-04-30 13:50:03 +02:00