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
Wim Taymans
48872d8215
rtpbin: use our ghostpads instead of its target
...
Since we keep a reference to our ghostpads, we can use them to track sessions.
This avoid us having to mess with the target of the ghostpad.
2009-08-11 02:30:44 +01:00
Wim Taymans
901b7f3b69
rtpbin: don't warn when getting request pads twice
...
Allow getting the request pads multiple times, just return the previously
created pads.
2009-08-11 02:30:44 +01:00
Wim Taymans
0ae6e3603b
rtpsource: add RTP and RTCP source address
...
Add the RTP and RTCP sender addresses in the stats structure.
2009-08-11 02:30:44 +01:00
Wim Taymans
62727e8fab
rtpsession: reuse source code for SDES
...
Reuse the RTPSource object property instead of duplicating code.
2009-08-11 02:30:44 +01:00
Wim Taymans
1719af9113
rtpbin: set target state on new elements
...
Set the state on newly added elements to the state of the parent.
Add some debug info and do some cleanups
2009-08-11 02:30:43 +01:00
Wim Taymans
9c92ee6209
rtpbin: unref requests pads after releasing
2009-08-11 02:30:43 +01:00
Olivier Crête
a1c0bb2488
rtpbin: Implement releasing the streams
...
See #561752
2009-08-11 02:30:43 +01:00
Olivier Crête
e77542d350
rtpbin: Keep jb signals handler
...
Keep the signal handlers so they can be disconnected at release time
See #561752
2009-08-11 02:30:43 +01:00
Wim Taymans
59d0590cd7
rtpbin: use the right lock for the sessions
...
Use the right lock when iterating the sessions.
2009-08-11 02:30:42 +01:00
Olivier Crête
a9d6f3558c
rtpbin: Free session if request pads are released
...
Free the session when all the request pads are released.
Don't mess with the session list in free_session as it is called from a foreach
on that list.
Set the state of the upstream element to NULL first.
See #561752
2009-08-11 02:30:42 +01:00
Olivier Crête
46388b767f
rtpbin: Implement relasing of the rtp recv pad
2009-08-11 02:30:42 +01:00
Olivier Crête
3509098468
rtpbin: Implement releasing of rtp send pads
2009-08-11 02:30:42 +01:00
Olivier Crête
2f6e9d7bf2
rtpbin: Implement release of the recv rtcp pad
...
See #561752
2009-08-11 02:30:42 +01:00
Olivier Crête
47d4bb90c1
rtpbin: Implement releasing of rtcp src pad
...
See #561752
2009-08-11 02:30:41 +01:00
Wim Taymans
11607c4d63
rtpssrcdemux: drop unexpected RTCP packets
...
We usually only get SR packets in our chain function but if an invalid packet
contains the SR packet after the RR packet, we must not fail but simply ignore
the malformed packet.
Fixes #581375
2009-08-11 02:30:41 +01:00
Olivier Crete
3482b47666
rtpsouce: make WARNING into LOG
...
Since neither rtpmanager nor any of the payloaders properly implement
pad allocation, there is no way for the rtpmanager to inform downstream elements
of the new SSRC if there is an SSRC collision. So the warning is emitted all the
time and it is confusing.
Fixes #580144
2009-08-11 02:30:41 +01:00
Olivier Crete
63636b1290
rtpsession: notify when SSRC changes
...
Emit a g_object_notify when the SSRc changes because of a collision.
Fixes #580144
2009-08-11 02:30:41 +01:00
Wim Taymans
d45d18c735
rtpsession: join the RTCP thread
...
Avoid a case where a joinable thread would be left unjoined, which leaked the
thread structure.
Fixes #577318 .
2009-08-11 02:30:41 +01:00
Wim Taymans
64046416cc
jitterbuffer: prevent overflow in EOS estimation
...
Use a guint64 instead of a guint to hold a 64bit value to prevent completely
bogues EOS estimation values due to overflows.
2009-08-11 02:30:41 +01:00
Wim Taymans
d6c623e90c
rtpbin: we should not provide a clock
...
There is no need to provide a clock.
2009-08-11 02:30:41 +01:00
Wim Taymans
5ece6ae4e3
jitterbuffer: more estimated EOS fixes
...
Do more accurate EOS estimate and guard against backward timestamps.
2009-08-11 02:30:41 +01:00
Wim Taymans
cbad89600c
jitterbuffer: release lock before pushing EOS
...
Make sure we release the jitterbuffer lock before we start pushing out data
because else we might deadlock.
2009-08-11 02:30:41 +01:00