Commit graph

3253 commits

Author SHA1 Message Date
Tim-Philipp Müller
4be46b1586 qtdemux: use bytereader to parse stsz and stsc atoms
Use GstByteReader to parse stsz and stsc chunks, and check size of
available data before parsing it, instead of blindly assuming there
will be enough data. Fixes crashes with some fuzzed/broken files.
2009-09-23 16:54:42 +01:00
Tim-Philipp Müller
5875e2016a qtdemux: add qt_atom_parser_get_offset() and optimise _peek_sub() 2009-09-23 16:54:42 +01:00
Tim-Philipp Müller
410ebb7eb3 qtdemux: add QtAtomParser, an inlined GstByteReader variant 2009-09-23 16:54:41 +01:00
Mark Nauwelaerts
02581dd2a5 matroskademux: use proper order for no-more-pads and newsegment and tag sending 2009-09-23 17:24:22 +02:00
Mark Nauwelaerts
702df566c3 matroskademux: sprinkle a few branch prediction macros 2009-09-23 17:24:22 +02:00
Alessandro Decina
195883b30a Fix compile warnings with gcc 4.0.1. 2009-09-22 15:04:36 +02:00
Jan Schmidt
600516be90 matroskamux: Don't get stuck in an infinite loop with Dirac
At the end, Dirac streams have an EOS packet with 0 length.
Don't ever sit in an infinite loop when processing one. Allows
muxing Dirac into mkv to complete successfully.
2009-09-22 11:50:11 +01:00
Tim-Philipp Müller
0506545b04 videomixer: fix up Makefile some more
Remove CFLAGS from LIBADD and make order of the various CFLAGS and
LIBS at least consistent with each other.
2009-09-22 11:02:02 +01:00
Brian Cameron
341be447a6 videomixer: Add $(GST_PLUGINS_BASE_LIBS) to LDFLAGS for linking libgstvideo
Fixes bug #595897.
2009-09-22 08:09:39 +02:00
Wim Taymans
10eb1a0ff4 avi: fix timestamps in push mode 2009-09-21 18:10:12 +02:00
Wim Taymans
2f26ee4285 avi: add some performance measurements
Measure the performance of various index and header parsing steps to the
PERFORMANCE debug category.
2009-09-21 12:32:51 +02:00
Stefan Kost
0868ddf30f avidemux: some logging cleanup to help understanding the index parsing overhead 2009-09-18 14:27:45 +03:00
Olivier Crête
750387f520 rtpg729pay: Fix adapter leak
The adapter would be leaked if it was empty and the data could be pushed out directly.
2009-09-15 17:24:24 -04:00
David Schleef
78eeb6636e multifilesink: Add next-file property
Add a property to allow control over what event causes a file
to finish being written and a new file start.  The default is
the same as before -- each buffer causes a new file to be
written.  Added is a case where buffers are written to the
same file until a discontinuity in the stream.
2009-09-13 20:00:53 -07:00
Michael Smith
3257374310 wavparse: treat a zero-sized data chunk as extending to the end of the file.
This fixes playback of some files that don't have a valid data chunk length,
apparently some program creates these.
2009-09-11 13:34:01 -07:00
Wim Taymans
445236a769 spectrum: add post-messages property
Add a post-messages property and deprecate the less descriptive message
property.
2009-09-11 13:28:35 +02:00
Wim Taymans
1935483fbf multifilesink: rename silent to post-messages
Use the post-messages property name instead of silent as it is more
descriptive.
2009-09-11 13:12:54 +02:00
Wim Taymans
f68cd7e708 multifilesink: post messages for each buffer
Add a silent property that can be set to FALSE to post messages on the bus for
each written file.
Do some more cleanups.
Add some docs.

Fixes #594663
2009-09-11 12:17:21 +02:00
Olivier Crête
411c71da13 rtph263pay: Allocate Boundry structs on the stack instead of the heap to avoid leaks
Fixes bug #594691.
2009-09-11 07:31:38 +02:00
Stefan Kost
0a7ef67ad0 docs: fix gtk-doc warnings 2009-09-10 10:28:48 +03:00
Sebastian Dröge
a9909c1abf videobox: Fix AYUV->I420 conversion
For this fix the averaging of the chroma values. It should't be (a/2 + b)/2
but just (a + b)/2.

Fixes bug #594599.
2009-09-09 16:28:53 +02:00
Marc-André Lureau
fe2d8bdc64 multipartmux: mark data buffer as delta-unit
So that multifdsink always start sending header buffer first

Fixes #594520
2009-09-08 18:34:49 +02:00
Marc Leeman
6b46aeb6a3 rtpbin: add ignore-pt parameter
Add a parameter 'ignore-pt' that disables creating a gstrtpptdemux module and
ghosts the pads of gstrtpjitterbuffer instead of the ones of gstrtpptdemux.

Fixes #594490
2009-09-08 17:38:32 +02:00
Håvard Graff
2912b21d14 rtpbin: propagate payload-type-change signal from demuxer
fixes #594254
2009-09-08 13:59:56 +02:00
Havard Graff
a52309eff7 jitterbuffer: change severity of clock-rate change debug
Make log GST_DEBUG under normal circumstances, GST_WARNING otherwise.

Fixes #594253
2009-09-08 13:44:49 +02:00
Håvard Graff
40549278c3 jitterbuffer: avoid throwing reordered buffers with same timestamps
When we receive a reordered packet with the same timestamp as the previous one
(which can happen for fragmented packets) don't consider the packet as lost but
instead wait for the reordered packet to arrive.

Switch the warning-level, so that a reordering does not get a warning, only
an actual produced lost-packet.

Fixes #594251
2009-09-08 13:39:31 +02:00
Havard Graff
6108024838 rtpjpegdepay: add missing math.h include
Fixes #594247
2009-09-08 13:32:51 +02:00
Arnout Vandecappelle
19455200b1 rtspsrc: fix memory leak
In gst_rtspsrc_parse_digest_challenge(), rtspsrc does a g_strndup of the auth
header items and then passes them to gst_rtsp_connection_set_auth_param()
without freeing.

Fixes #594133
2009-09-08 13:30:29 +02:00
Stig Sandnes
8f3299c547 rtpbin: make free_session() remove stream references
When receiving a sync-packet, all sessions with the same cname will be compared
and synced together. In this process, there could still be references to a
session that has been shut down in the meanwhile.

This patch makes sure that these references are removed when shutting down a
session, so that the syncing can be done safely.

Fixes #594283
2009-09-08 13:18:29 +02:00
Havard Graff
e08e610db0 rtpbin: use locked state on internal bins
Set the locked state on internal elements to make sure that they don't change
back to another state when shutting down.

Fixes #594248
2009-09-08 12:41:52 +02:00
Zaheer Merali
c6b2dff77e y4menc: Add interlaced support
Fixes #591713

Signed-off-by: David Schleef <ds@schleef.org>
2009-09-05 20:53:10 -07:00
David Schleef
55d2754098 Remove Ronald Bultje from Authors field
Replaced with "GStreamer maintainers
<gstreamer-devel@lists.sourceforge.net>" or just removed,
depending on the number of other authors.
2009-09-05 20:53:10 -07:00
Mark Nauwelaerts
868a4b1303 qtdemux: prevent a spurious debug warning 2009-09-04 13:51:25 +02:00
Sebastian Dröge
b35b752c41 matroskademux: Correctly handle NULL GstIndex 2009-09-04 07:10:03 +02:00
Laurent Glayal
371875c57a rtpsource: fix memleak
Don't leak the input buffer when the received and expected seqnum are different when
in probation.

fixes #594039
2009-09-03 19:37:10 +02:00
Olivier Crête
f542f710cf rtpjitterbuffer: Lock clock_rate variable
The priv->clock_rate variable could become -1 between when its checked to not
be -1 and when its used, causing an assertion. Fixed by taking the mutex
earlier in the chain() function.

Fixes #593955
2009-09-03 19:17:00 +02:00
Wim Taymans
3fcde4486d rtpsource: whitespace fixes 2009-09-03 19:17:00 +02:00
Wim Taymans
bf73a6ee3a rtpmpapay: whitespace fixes 2009-09-03 19:17:00 +02:00
Wim Taymans
3f629f6001 rtpsession: whitespace fixes 2009-09-03 19:16:59 +02:00
Stefan Kost
272683ff36 flvmux: fully use tagsetter to manage the tags. Fixes #563221
There is no need to manage a separate taglist.
2009-09-03 14:48:14 +03:00
Peter Kjellerstedt
fdf18653b7 rtpmanager: Fixed a copy & paste error 2009-09-01 15:06:46 +02:00
Peter Kjellerstedt
dc4f9575be rtpmanager: Removed unused variable priv
The variable priv was initialized in a lot of functions but then never
used for anything.
2009-09-01 13:21:23 +02:00
Peter Kjellerstedt
57adc2a803 rtpmanager: A little clean up
Make the code flow of gst_rtp_session_send_rtcp() and
gst_rtp_session_sync_rtcp() identical.
2009-09-01 13:04:14 +02:00
Peter Kjellerstedt
923b5b495a rtpmanager: Make sure that used caps are not freed already (take 2)
This reintroduces the fix for bug #593391. It also applies it in
gst_rtp_session_sync_rtcp() which has very similar code to
gst_rtp_session_send_rtcp().
2009-09-01 13:04:14 +02:00
Wim Taymans
8d924611e7 jitterbuffer: make sure time does not go backwards
When we construct a timestamp that would result in a timestamp that is earlier
than when the packet was received, reset the skew calculation as this is
probably a sign that the sender restarted or paused.

Fixes #593354
2009-09-01 12:48:28 +02:00
Peter Kjellerstedt
bfb1260af4 rtpmanager: Set caps in gst_rtp_session_send_rtcp() correctly again
The test for when to set an RTCP caps on the output pad in
gst_rtp_session_send_rtcp() accidentally got inverted in the last commit.
2009-09-01 11:32:41 +02:00
Sebastian Dröge
e7efa0a5be qtdemux: Add support for QCELP audio
Fixes bug #593757.
2009-09-01 10:26:46 +02:00
Peter Kjellerstedt
fbefd9c666 effectv: Fix compilation with gcc 3
Recent changes in gst-plugins-good/gst/effectv prevents it from being compiled
with gcc 3. The problem is that the new code uses preprocessor conditionals
within a macro call which does not work with older versions of gcc.

Fixes bug #593688.
2009-08-31 18:11:28 +02:00
Mark Nauwelaerts
c9a434bbff rtpmp4gdepay: consider (optional) auxiliary data when parsing 2009-08-31 16:50:01 +02:00
Mark Nauwelaerts
30efa405f3 rtpmp4gdepay: handle broken AU-Index in non-interleaved streams
In case of non-interleaved (= sequentially payloaded) streams,
the AU-Index serves little purpose (that is not already covered by
RTP fields).  (Broken) Payloaders might consider this field then
to be disregarded and have non spec compliant values, e.g. each
RTP packet having AU-Index 2 (rather than 0).  As such, ensure/force
simple sequential sending of non-interleaved streams.
2009-08-31 16:50:01 +02:00
Mark Nauwelaerts
15fa7d33ed qtdemux: also extract ftyp info in push mode 2009-08-31 16:50:01 +02:00
Mark Nauwelaerts
c469f6b38d qtdemux: consider 3gpp style tag parsing in some more cases
3GPP specs define a number of tags along with precise layout. While these
are normally expected to be found in a container whose major brand is a
3GPP brand, this may also happen when a 3GPP brand is only mentioned as a
compatible brand.  Apply some checks, heuristic and fallbacks to extract
such tags as well.
2009-08-31 16:50:00 +02:00
Mark Nauwelaerts
0f900afe1f wavparse: reflow exit, and fix some leaks 2009-08-31 16:50:00 +02:00
Mark Nauwelaerts
efb5d1b545 wavparse: push mode; add pad if needed so downstream gets EOS 2009-08-31 16:50:00 +02:00
Mark Nauwelaerts
79f69bbf72 wavparse: push mode; fix/improve chunk handling
Handle large, invalid or otherwise unusual chunk sizes.
Verify some chunk sizes to be at least the size they are
expected to be and round up some sizes to even number for
e.g. offset administration, which must also be properly
tracked in push mode.
2009-08-31 16:50:00 +02:00
Mark Nauwelaerts
bb2b02c5b7 avidemux: push mode; cater for unusual chunk sizes 2009-08-31 16:50:00 +02:00
Wim Taymans
a74c385b7b rtpsession: use proper locking for pads and caps
Use the sesion lock and shotdown variable to protect and ref the pads we are
going to push on.

fixes #561825
2009-08-31 16:38:27 +02:00
Wim Taymans
a522a2d4d2 rtpbin: whitespace fixes 2009-08-31 16:33:26 +02:00
Tim-Philipp Müller
4cf513da9b wavparse: clean up adapter properly
Reflow code so we don't try to clear or re-use an already-freed adapter.
2009-08-31 13:40:14 +01:00
Tim-Philipp Müller
d875e72b02 flactag, wavparse: GstAdapter is not a GstObject 2009-08-31 13:07:53 +01:00
Jan Schmidt
3f69f8d3ee flvdemux: Fix tests warning from setting a NULL index
Setting a null index in the tests was causing warnings by unreffing
NULL pointers. This is a bug exposed by a recent change in core, it
seems.
2009-08-31 12:10:05 +01:00
Wim Taymans
a26a2a9ff5 jitterbuffer: add slope estimation code and debug
Add some code to measure the sender speed vs the receiver speed. This can be
used to detect bursts.
2009-08-31 13:02:16 +02:00
Wim Taymans
4814d899c2 jitterbuffer: reset skew when timestamps change
Refactor the jitterbuffer resync code.
Reset the skew correction when we detect a big timestamp discont.

See #593354
2009-08-31 12:57:32 +02:00
Wim Taymans
e254936e34 jitterbuffer: make sure time never goes invalid
Since the skew can be negative, we might end up with invalid timestamps. Check
for negative results and clamp to 0.

See #593354
2009-08-31 12:47:15 +02:00
Jarkko Palviainen
1f14f577d8 udpsink: Add ttl multicast property
Add a new ttl-mc property to control the TTL on multicast addresses.

Fixes #588245
2009-08-31 12:16:01 +02:00
Jarkko Palviainen
e2518fedbe udp: split out TTL and loop options
Split setting the TTL and loop parameters in 2 methods as they are not related.
Fix setting the TTL correctly for multicast streams.

See #588245
2009-08-31 12:13:07 +02:00
Wim Taymans
6a53d0a2c9 rtp: whitespace fixes 2009-08-31 11:32:06 +02:00
Sebastian Dröge
867b8c9d15 videobox: Split declarations into a header file and add autocrop stuff to the docs 2009-08-31 08:19:25 +02:00
Sebastian Dröge
6976f3d39a videobox: Reconfigure basetransform if something changes again
For this invent a new lock and don't abuse the basetransform lock,
otherwise we'll end up in deadlocks.
2009-08-31 08:19:25 +02:00
Stephen Jungels
041ddd6f8f videobox: Add support for autocropping according to the caps
Fixes bug #582238.
2009-08-31 08:19:25 +02:00
Sebastian Dröge
041fa82179 rtpsession: Make sure that used caps are not freed already
Fixes bug #593391.
2009-08-31 08:09:09 +02:00
Sebastian Dröge
000a483d31 rtp: Use new gst_iterator_new_single() for the internal linked pads iteration 2009-08-31 08:09:09 +02:00
Sebastian Dröge
a1cddb3fd6 rtpsession: Use iterate internal links instead of deprecated get internal links 2009-08-31 08:09:09 +02:00
Sebastian Dröge
c8c02d2c7a jitterbuffer: Use iterate internal links instead of deprecated get internal links 2009-08-31 08:09:08 +02:00
Sebastian Dröge
97cb7bdb6c rtpssrcdemux: Use iterate internal links instead of deprecated get internal links 2009-08-31 08:09:08 +02:00
Wim Taymans
e9e94a771b qtdemux: add support for agsm
Fixes #592530
2009-08-21 11:44:43 +02:00
Mark Nauwelaerts
15d17763c0 qtdemux: fix qt style string tag extraction
QT style tags are tested on starting with (C) symbol using >>,
and (unsigned) int (may) have different >> behaviour.
Fixes #592232.
2009-08-18 19:01:11 +02:00
Olivier Crête
7f569ca9c8 rtpbin: Fix reference leak
Fixes #591476.
2009-08-14 13:47:18 +01:00
ric
92abe07e80 rtpsource: avoid buffer leak on bad seqnum
Fixes #590797
2009-08-11 02:30:47 +01:00
Wim Taymans
9f68303a2e rtpsource: allow for NULL caps on buffers
Add the NULL caps check where it matters and also cover another case of
potential NULL caps.

Fixes #590030
2009-08-11 02:30:47 +01:00
Olivier Crête
e37844fdc7 rtpsource: Incoming buffers do not always have caps 2009-08-11 02:30:47 +01:00
Wim Taymans
3091137217 rtpsession: avoid doing lip-sync in BYE
When we get a BYE packet, don't do lip-sync with the SR inside because some
senders have trouble constructing valid SR packets after BYE.
2009-08-11 02:30:47 +01:00
Wim Taymans
3747ede14a rtpbin: don't do lip-sync after a BYE
After a BYE packet from a source, stop forwarding the SR packets for lip-sync
to rtpbin. Some senders don't update their SR packets correctly after sending a
BYE and then we break lip-sync. We prefer to let the jitterbuffers drain with
the current lip-sync instead.
2009-08-11 02:30:47 +01:00
Wim Taymans
d2ef095b80 rtpbin: only reconsider once for BYE
When iterating the sources of a BYE packet, don't signal a reconsideration for
each of them but signal after we handled all sources.
2009-08-11 02:30:47 +01:00
Olivier Crête
e8c6bcdf8d rtpsession: Free conflicting addresses on finalize 2009-08-11 02:30:46 +01:00
Wim Taymans
428368b44a rtpbin: use new method for netaddress to string 2009-08-11 02:30:46 +01:00
Wim Taymans
512ba93159 rtpbin: do better cleanup of the src ghostpads
Connect to the pad-removed signal of the ptdemux elements so that we remove the
ghostpads for them. Fixes cleanup when going to NULL as well as when releasing
the sinkpads.

Fixes #561752
2009-08-11 02:30:46 +01:00
Wim Taymans
d7a8663e05 rtpsession: add a comment 2009-08-11 02:30:46 +01:00
Wim Taymans
c53e595d23 rtpbin: add SDES property
Remove all individual SDES properties and use one sdes property that takes a
GstStructure instead. This will allow us to add more custom stuff to the SDES
messages later.
2009-08-11 02:30:46 +01:00
Wim Taymans
9f330992f5 rtpbin: add SDES property that takes GstStructure
Remove all individual SDES properties and use one sdes property that takes a
GstStructure instead. This will allow us to add more custom stuff to the SDES
messages later.
2009-08-11 02:30:46 +01:00
Wim Taymans
d8496fb105 rtpbin: removed old gstrtpclient 2009-08-11 02:30:45 +01:00
Branko Subasic
779f67adc4 rtpbin: add support for buffer-list
Add support for sending buffer-lists.
Add unit test for testing that the buffer-list passed through rtpbin.

fixes #585839
2009-08-11 02:30:45 +01:00
Tim-Philipp Müller
c5793a6a45 Make build without warnings with debugging disabled 2009-08-11 02:30:45 +01:00
Olivier Crête
cf873498d2 rtpbin: Transform the right session sdes message
Fixes #584165
2009-08-11 02:30:45 +01:00
Olivier Crête
dee142a945 Add ssrc to application/x-rtp-source-sdes structure 2009-08-11 02:30:45 +01:00
Wim Taymans
bf15048f42 rtpsouce: the network address is in network order
Bring the network address in netowkr byte order to the host order.
2009-08-11 02:30:45 +01:00
Wim Taymans
91eef69131 rtpsource: byteswap the port from GstNetAddress
Since the port in GstNetAddress is in network order we might need to byteswap it
before adding it to the source statistics.
2009-08-11 02:30:45 +01:00
Wim Taymans
51251d0fa8 rtpbin: remove ptdemux ghostpads 2009-08-11 02:30:44 +01:00
Wim Taymans
7d9c2d20df rtpbin: add to new signal to remove SSRC pads 2009-08-11 02:30:44 +01:00
Ali Sabil
6c684e59c6 ssrcdemux: emit signal when pads are removed
Add action signal to clear an SSRC in the ssrc demuxer.
Add signal to notify of removed ssrc.

See #554839
2009-08-11 02:30:44 +01:00