Commit graph

3181 commits

Author SHA1 Message Date
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
Wim Taymans
918c9448f2 rtpbin: add on_npt_stop signal
Add the on_npt_stop signal to rtpbin and rtpjitterbuffer to notify the
application that the NPT stop position has been reached.
2009-08-11 02:30:41 +01:00
Wim Taymans
55c3da71c1 rtpbin: don't return FALSE on seek events
Silently ignore the seek event instead of returning FALSE.
2009-08-11 02:30:41 +01:00
Olivier Crête
109874ed50 gstrtpbin: Don't forward revc events to sender
Don't send events from the receiver to the sender side.
Fixes #572900.
2009-08-11 02:30:40 +01:00
Stefan Kost
7ae3923ac6 docs: various doc fixes
No short-desc as we have them in the element details.
Also keep things (Makefile.am and sections.txt) sorted.
Reword ambigous returns. No text after since please.
2009-08-11 02:30:40 +01:00
Wim Taymans
2c6ab34114 Send BYE packets immediatly for small sessions
When the number of participants is less than 50, the RFC allows for sending the
BYE packet immediatly instead of using the regular BYE timeout.
Fixes #567828.
2009-08-11 02:30:40 +01:00
Wim Taymans
7f0b100db5 Unlock the jitterbuffer before pushing out the packet-lost events.
Move some code before we do the unlock to make the jitterbuffer state
consistent while we are unlocked.
2009-08-11 02:30:40 +01:00
Olivier Crete
dfdc9b6662 gst/rtpmanager/: When an SSRC is found on the caps of the sender RTP, use this as the internal SSRC. Fixes #565910.
Original commit message from CVS:
Patch by: Olivier Crete <tester at tester dot ca>
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_setcaps_send_rtp), (create_send_rtp_sink):
* gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc):
When an SSRC is found on the caps of the sender RTP, use this as the
internal SSRC. Fixes #565910.
2009-08-11 02:30:40 +01:00
Wim Taymans
0ad92e7da6 gst/rtpmanager/: Rename a method to better reflect what it really does.
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_event_send_rtp_sink),
(gst_rtp_session_getcaps_send_rtp):
* gst/rtpmanager/rtpsession.c: (check_collision),
(rtp_session_schedule_bye_locked), (rtp_session_schedule_bye):
* gst/rtpmanager/rtpsession.h:
Rename a method to better reflect what it really does.
2009-08-11 02:30:40 +01:00
Wim Taymans
06d1532024 gst/rtpmanager/gstrtpsession.c: Use method to get the internal SSRC.
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_getcaps_send_rtp):
Use method to get the internal SSRC.
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(rtp_session_set_property), (rtp_session_get_property):
Add property to congiure the internal SSRC of the session.
Fixes #565910.
2009-08-11 02:30:40 +01:00
Wim Taymans
1786eb1e25 gst/rtpmanager/rtpsession.c: Only change the SSRC of the session and reset the internal source when the SSRC actually...
Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc):
Only change the SSRC of the session and reset the internal source when
the SSRC actually changed. See #565910.
2009-08-11 02:30:40 +01:00
Wim Taymans
3fe87f7eab gst/rtpmanager/rtpsource.*: When no payload was specified on the caps but there was a clock-rate, assume the clock-ra...
Original commit message from CVS:
* gst/rtpmanager/rtpsource.c: (rtp_source_init),
(rtp_source_update_caps), (get_clock_rate):
* gst/rtpmanager/rtpsource.h:
When no payload was specified on the caps but there was a clock-rate,
assume the clock-rate corresponds to the first payload type found in the
RTP packets. Fixes #565509.
2009-08-11 02:30:40 +01:00
Arnout Vandecappelle
2142edd399 gst/rtpmanager/rtpjitterbuffer.*: Keep track of the last outgoing timestamp and of the last sender-side time. Timest...
Original commit message from CVS:
Patch by: Arnout Vandecappelle <arnout at mind dot be>
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
(calculate_skew):
* gst/rtpmanager/rtpjitterbuffer.h:
Keep track of the last outgoing timestamp and of the last sender-side
time.  Timestamps can only go forward if they do at the sender
side, can only go back if they do at the sender side, and remain the
same if they remain the same at the sender side. Fixes #565319.
2009-08-11 02:30:40 +01:00
Wim Taymans
5b6700a022 gst/rtpmanager/rtpsession.c: Make obtain_source return an aditional ref so that we don't lose our ref to it when a se...
Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (obtain_source),
(rtp_session_create_source), (rtp_session_process_rtp),
(rtp_session_process_sr), (rtp_session_process_rr),
(rtp_session_process_sdes), (rtp_session_process_bye):
Make obtain_source return an aditional ref so that we don't lose our ref
to it when a session cleanup occurs when we are emiting a signal.
Emit the on_new_ssrc signal for the CSRC, not the SSRC.
Fixes #562319.
2009-08-11 02:30:39 +01:00
Wim Taymans
a80f7dc19a gst/rtpmanager/gstrtpbin.c: Reset the sync parameters when clearing the payload type map too.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_reset_sync),
(gst_rtp_bin_clear_pt_map):
Reset the sync parameters when clearing the payload type map too.
Fixes #562312.
2009-08-11 02:30:39 +01:00
Wim Taymans
a2d7487ee1 gst/rtpmanager/gstrtpbin.*: Remove a lot of per stream state that is not needed and pass new info in the method call.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (get_client),
(gst_rtp_bin_reset_sync), (gst_rtp_bin_associate),
(gst_rtp_bin_handle_sync), (create_stream),
(gst_rtp_bin_class_init), (new_ssrc_pad_found):
* gst/rtpmanager/gstrtpbin.h:
Remove a lot of per stream state that is not needed and pass new info in
the method call.
Add signal to reset sync parameters.
Avoid parsing the caps to get a clock_base, we get this from the sync
signal now.
2009-08-11 02:30:39 +01:00
Wim Taymans
b8408946b7 gst/rtpmanager/gstrtpsession.c: Fix event leak.
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_event_send_rtcp_src):
Fix event leak.
2009-08-11 02:30:39 +01:00
Wim Taymans
ae346d9a6d gst/rtpmanager/rtpsession.c: Add property to configure the RTCP MTU.
Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(rtp_session_init), (rtp_session_set_property),
(rtp_session_get_property):
Add property to configure the RTCP MTU.
2009-08-11 02:30:39 +01:00
Wim Taymans
55bb4d5c95 gst/rtpmanager/rtpsession.c: Add G_PARAM_STATIC_STRINGS.
Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(copy_source), (rtp_session_create_sources),
(rtp_session_get_property):
Add G_PARAM_STATIC_STRINGS.
Add property to return a GValueArray of all known RTPSources in the
session.
* gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
(rtp_source_create_sdes), (rtp_source_set_property),
(rtp_source_get_property):
Remove properties to set the various SDES items, an application is never
supposed to change the RTPSource data.
Change the SDES getter properties to one SDES property that returns all
SDES items in a GstStructure.
2009-08-11 02:30:39 +01:00
Wim Taymans
c84ffd8460 gst/rtpmanager/gstrtpbin.c: Also unref the target pad for unknown pads.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
Also unref the target pad for unknown pads.
2009-08-11 02:30:39 +01:00
Olivier Crete
75580396d9 gst/rtpmanager/gstrtpbin.c: Release the right pads on rtpbin. Fixes #561752.
Original commit message from CVS:
Patch by: Olivier Crete <tester at tester dot ca>
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
Release the right pads on rtpbin. Fixes #561752.
2009-08-11 02:30:39 +01:00
Wim Taymans
2f5b130af3 gst/rtpmanager/gstrtpsession.c: Pass the running time to the session when processing RTP packets.
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c: (get_current_times),
(rtcp_thread), (gst_rtp_session_chain_recv_rtp):
Pass the running time to the session when processing RTP packets.
Improve the time function to provide more info.
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(rtp_session_init), (update_arrival_stats),
(rtp_session_process_rtp), (rtp_session_process_sdes),
(rtp_session_process_rtcp), (session_start_rtcp),
(rtp_session_on_timeout):
* gst/rtpmanager/rtpsession.h:
Mark the internal source with a flag.
Use running_time instead of the more useless timestamp.
Validate a source when a valid SDES has been received.
Pass the current system time when processing SR packets.
* gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
(rtp_source_init), (rtp_source_create_stats),
(rtp_source_get_property), (rtp_source_send_rtp),
(rtp_source_process_rb), (rtp_source_get_new_rb),
(rtp_source_get_last_rb):
* gst/rtpmanager/rtpsource.h:
Add property to get source stats.
Mark params as STATIC_STRINGS.
Calculate the bitrate at the sender SSRC.
Avoid negative values in the round trip time calculations.
* gst/rtpmanager/rtpstats.h:
Update some docs and change some variable name to more closely reflect
what it contains.
2009-08-11 02:30:39 +01:00
Sebastian Dröge
e51423aab9 gst/rtpmanager/gstrtpjitterbuffer.c: Initialize return value to fix compiler warning about uninitialized variable.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain_rtcp):
Initialize return value to fix compiler warning about uninitialized
variable.
2009-08-11 02:30:39 +01:00
Wim Taymans
d0ada6127e gst/rtpmanager/gstrtpjitterbuffer.c: Mark signal arg as static scope.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_class_init):
Mark signal arg as static scope.
2009-08-11 02:30:39 +01:00
Wim Taymans
592c3f222f gst/rtpmanager/gstrtpbin.c: Remove internal sync pad, use signals instead to get lip-sync notifications.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
(gst_rtp_bin_handle_sync), (create_stream), (free_stream),
(new_ssrc_pad_found):
Remove internal sync pad, use signals instead to get lip-sync
notifications.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_base_init),
(gst_rtp_jitter_buffer_class_init),
(gst_rtp_jitter_buffer_internal_links), (create_rtcp_sink),
(remove_rtcp_sink), (gst_rtp_jitter_buffer_request_new_pad),
(gst_rtp_jitter_buffer_release_pad),
(gst_rtp_jitter_buffer_sink_rtcp_event),
(gst_rtp_jitter_buffer_chain_rtcp),
(gst_rtp_jitter_buffer_get_property):
* gst/rtpmanager/gstrtpjitterbuffer.h:
Make it possible to send SR packets to the jitterbuffer.
Check if the SR timestamps are valid by comparing them to the RTP
timestamps.
Signal the SR packet and the timing information to listeners.
* gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc),
(gst_rtp_ssrc_demux_rtcp_chain), (gst_rtp_ssrc_demux_src_query):
Remove some unused code.
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
(calculate_skew), (rtp_jitter_buffer_get_sync):
* gst/rtpmanager/rtpjitterbuffer.h:
Keep track of the last seen RTP timestamp so that we can filter out
invalid SR packets.
2009-08-11 02:30:38 +01:00
Sebastian Dröge
c3645239f5 gst/rtpmanager/rtpsource.c: Fix GST_DEBUG call to only have as many arguments as required by the format string. Fixes...
Original commit message from CVS:
* gst/rtpmanager/rtpsource.c: (get_clock_rate):
Fix GST_DEBUG call to only have as many arguments as required
by the format string. Fixes a compiler warning.
2009-08-11 02:30:38 +01:00
Wim Taymans
5ab3e10594 gst/rtpmanager/gstrtpbin.c: Do not try to keep track of the clock-rate ourselves but simply get the value from the ji...
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
(gst_rtp_bin_sync_chain), (create_stream), (new_ssrc_pad_found):
Do not try to keep track of the clock-rate ourselves but simply get the
value from the jitterbuffer.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain),
(gst_rtp_jitter_buffer_get_sync):
* gst/rtpmanager/gstrtpjitterbuffer.h:
Add some debug info.
Pass the clock-rate to the jitterbuffer.
Also pass the clock-rate along with the rtp timestamp when getting the
sync parameters.
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
Fix some debug.
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
(calculate_skew), (rtp_jitter_buffer_get_sync):
* gst/rtpmanager/rtpjitterbuffer.h:
Keep track of clock-rate changes and return the clock-rate together with
the rtp timestamps used for sync.
Don't try to construct timestamps when we have no base_time.
* gst/rtpmanager/rtpsource.c: (get_clock_rate):
Request a new clock-rate when the payload type changes.
Reset the jitter calculation when the clock-rate changes.
2009-08-11 02:30:38 +01:00
Wim Taymans
1656fad93e gst/rtpmanager/: Small cleanups and some more debug info.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_jitter_buffer_sink_parse_caps),
(gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain):
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
(calculate_skew):
Small cleanups and some more debug info.
2009-08-11 02:30:38 +01:00
Wim Taymans
6485d60a01 gst/rtpmanager/gstrtpjitterbuffer.c: Also configure the next expected output seqnum when we get a seqnum-base on the ...
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain):
Also configure the next expected output seqnum when we get a seqnum-base
on the caps.
2009-08-11 02:30:38 +01:00
Stefan Kost
b835296809 Don't install static libs for plugins. Fixes #550851 for -bad.
Original commit message from CVS:
* ext/alsaspdif/Makefile.am:
* ext/amrwb/Makefile.am:
* ext/apexsink/Makefile.am:
* ext/arts/Makefile.am:
* ext/artsd/Makefile.am:
* ext/audiofile/Makefile.am:
* ext/audioresample/Makefile.am:
* ext/bz2/Makefile.am:
* ext/cdaudio/Makefile.am:
* ext/celt/Makefile.am:
* ext/dc1394/Makefile.am:
* ext/dirac/Makefile.am:
* ext/directfb/Makefile.am:
* ext/divx/Makefile.am:
* ext/dts/Makefile.am:
* ext/faac/Makefile.am:
* ext/faad/Makefile.am:
* ext/gsm/Makefile.am:
* ext/hermes/Makefile.am:
* ext/ivorbis/Makefile.am:
* ext/jack/Makefile.am:
* ext/jp2k/Makefile.am:
* ext/ladspa/Makefile.am:
* ext/lcs/Makefile.am:
* ext/libfame/Makefile.am:
* ext/libmms/Makefile.am:
* ext/metadata/Makefile.am:
* ext/mpeg2enc/Makefile.am:
* ext/mplex/Makefile.am:
* ext/musepack/Makefile.am:
* ext/musicbrainz/Makefile.am:
* ext/mythtv/Makefile.am:
* ext/nas/Makefile.am:
* ext/neon/Makefile.am:
* ext/ofa/Makefile.am:
* ext/polyp/Makefile.am:
* ext/resindvd/Makefile.am:
* ext/sdl/Makefile.am:
* ext/shout/Makefile.am:
* ext/snapshot/Makefile.am:
* ext/sndfile/Makefile.am:
* ext/soundtouch/Makefile.am:
* ext/spc/Makefile.am:
* ext/swfdec/Makefile.am:
* ext/tarkin/Makefile.am:
* ext/theora/Makefile.am:
* ext/timidity/Makefile.am:
* ext/twolame/Makefile.am:
* ext/x264/Makefile.am:
* ext/xine/Makefile.am:
* ext/xvid/Makefile.am:
* gst-libs/gst/app/Makefile.am:
* gst-libs/gst/dshow/Makefile.am:
* gst/aiffparse/Makefile.am:
* gst/app/Makefile.am:
* gst/audiobuffer/Makefile.am:
* gst/bayer/Makefile.am:
* gst/cdxaparse/Makefile.am:
* gst/chart/Makefile.am:
* gst/colorspace/Makefile.am:
* gst/dccp/Makefile.am:
* gst/deinterlace/Makefile.am:
* gst/deinterlace2/Makefile.am:
* gst/dvdspu/Makefile.am:
* gst/festival/Makefile.am:
* gst/filter/Makefile.am:
* gst/flacparse/Makefile.am:
* gst/flv/Makefile.am:
* gst/games/Makefile.am:
* gst/h264parse/Makefile.am:
* gst/librfb/Makefile.am:
* gst/mixmatrix/Makefile.am:
* gst/modplug/Makefile.am:
* gst/mpeg1sys/Makefile.am:
* gst/mpeg4videoparse/Makefile.am:
* gst/mpegdemux/Makefile.am:
* gst/mpegtsmux/Makefile.am:
* gst/mpegvideoparse/Makefile.am:
* gst/mve/Makefile.am:
* gst/nsf/Makefile.am:
* gst/nuvdemux/Makefile.am:
* gst/overlay/Makefile.am:
* gst/passthrough/Makefile.am:
* gst/pcapparse/Makefile.am:
* gst/playondemand/Makefile.am:
* gst/rawparse/Makefile.am:
* gst/real/Makefile.am:
* gst/rtjpeg/Makefile.am:
* gst/rtpmanager/Makefile.am:
* gst/scaletempo/Makefile.am:
* gst/sdp/Makefile.am:
* gst/selector/Makefile.am:
* gst/smooth/Makefile.am:
* gst/smoothwave/Makefile.am:
* gst/speed/Makefile.am:
* gst/speexresample/Makefile.am:
* gst/stereo/Makefile.am:
* gst/subenc/Makefile.am:
* gst/tta/Makefile.am:
* gst/vbidec/Makefile.am:
* gst/videodrop/Makefile.am:
* gst/videosignal/Makefile.am:
* gst/virtualdub/Makefile.am:
* gst/vmnc/Makefile.am:
* gst/y4m/Makefile.am:
* sys/acmenc/Makefile.am:
* sys/cdrom/Makefile.am:
* sys/dshowdecwrapper/Makefile.am:
* sys/dshowsrcwrapper/Makefile.am:
* sys/dvb/Makefile.am:
* sys/dxr3/Makefile.am:
* sys/fbdev/Makefile.am:
* sys/oss4/Makefile.am:
* sys/qcam/Makefile.am:
* sys/qtwrapper/Makefile.am:
* sys/vcd/Makefile.am:
* sys/wininet/Makefile.am:
* win32/common/config.h:
Don't install static libs for plugins. Fixes #550851 for -bad.
2009-08-11 02:30:38 +01:00
Wim Taymans
eaa23fd49a gst/rtpmanager/gstrtpjitterbuffer.c: Fix problem with using the output seqnum counter to check for input seqnum disco...
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_jitter_buffer_sink_parse_caps),
(gst_rtp_jitter_buffer_flush_start),
(gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain),
(gst_rtp_jitter_buffer_loop):
Fix problem with using the output seqnum counter to check for input
seqnum discontinuities.
Improve gap detection and recovery, reset and flush the jitterbuffer on
seqnum restart. Fixes #556520.
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert):
Fix wrong G_LIKELY.
2009-08-11 02:30:38 +01:00
Wim Taymans
3563bbaabd gst/rtpmanager/gstrtpsession.c: Install event handler on the rtcp_src pad, make LATENCY event return
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_event_send_rtcp_src), (create_send_rtcp_src):
Install event handler on the rtcp_src pad, make LATENCY event return
TRUE.
2009-08-11 02:30:38 +01:00
Håvard Graff
3bebd53b6f gst/rtpmanager/gstrtpbin-marshal.list: Add marshaller for new action signal.
Original commit message from CVS:
Patch by: Håvard Graff <havard dot graff at tandberg dot com>
* gst/rtpmanager/gstrtpbin-marshal.list:
Add marshaller for new action signal.
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_get_internal_session),
(gst_rtp_bin_class_init):
* gst/rtpmanager/gstrtpbin.h:
Add action signal to retrieve the internal RTPSession object.
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
(gst_rtp_session_get_property), (gst_rtp_session_release_pad):
Add property to access the internal RTPSession object.
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(check_collision):
* gst/rtpmanager/rtpsession.h:
Add action signal to retrieve an RTPSource object by SSRC.
See #555396.
2009-08-11 02:30:38 +01:00
Wim Taymans
bd8f4b6c58 gst/rtpmanager/gstrtpbin.c: Release pads of the session manager.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (find_session_by_pad),
(free_session), (gst_rtp_bin_dispose), (remove_recv_rtp),
(remove_recv_rtcp), (remove_send_rtp), (remove_rtcp),
(gst_rtp_bin_release_pad):
Release pads of the session manager.
Start implementing releasing pads of gstrtpbin.
* gst/rtpmanager/gstrtpsession.c: (remove_recv_rtp_sink),
(remove_recv_rtcp_sink), (remove_send_rtp_sink),
(remove_send_rtcp_src), (gst_rtp_session_release_pad):
Implement releasing pads in gstrtpsession.
2009-08-11 02:30:38 +01:00
Wim Taymans
4553863755 gst/rtpmanager/gstrtpjitterbuffer.c: Only update the seqnum-base when it was not already configured for the streams.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_jitter_buffer_sink_parse_caps):
Only update the seqnum-base when it was not already configured for the
streams.
2009-08-11 02:30:37 +01:00
Wim Taymans
55b7860cc4 gst/rtpmanager/rtpsession.c: Ref the rtpsource object before we release the session lock when we emit the signals.
Original commit message from CVS:
* gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision),
(on_ssrc_validated), (on_ssrc_active), (on_ssrc_sdes),
(on_bye_ssrc), (on_bye_timeout), (on_timeout), (on_sender_timeout):
Ref the rtpsource object before we release the session lock when we emit
the signals.
2009-08-11 02:30:37 +01:00
Wim Taymans
c2c69bfb86 gst/rtpmanager/: Fix some docs.
Original commit message from CVS:
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert),
(rtp_jitter_buffer_get_sync):
* gst/rtpmanager/rtpsession.c: (on_sender_timeout),
(session_cleanup):
* gst/rtpmanager/rtpsource.c:
Fix some docs.
2009-08-11 02:30:37 +01:00
Jan Schmidt
a2b86bbce5 Fix compiler warnings on OS/X
Original commit message from CVS:
* ext/jack/gstjackaudiosink.c: (jack_process_cb):
* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
Fix compiler warnings on OS/X
2009-08-11 02:30:37 +01:00
Wim Taymans
5e98fa572f gst/rtpmanager/gstrtpbin.c: Do not try to adjust the offset of streams for which we have not yet seen an SR packet. A...
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (create_session),
(gst_rtp_bin_associate), (gst_rtp_bin_sync_chain):
Do not try to adjust the offset of streams for which we have not yet
seen an SR packet. Avoids large ts-offsets in some cases.
2009-08-11 02:30:37 +01:00
Wim Taymans
85e26f6546 gst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender becomes a receiver.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (on_sender_timeout),
(create_session), (gst_rtp_bin_associate),
(gst_rtp_bin_sync_chain), (gst_rtp_bin_class_init),
(gst_rtp_bin_request_new_pad):
* gst/rtpmanager/gstrtpbin.h:
Add signal to notify listeners when a sender becomes a receiver.
Tweak lip-sync code, don't store our own copy of the ts-offset of the
jitterbuffer, don't adjust sync if the change is less than 4msec.
Get the RTP timestamp <-> GStreamer timestamp relation directly from
the jitterbuffer instead of our inaccurate version from the source.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop),
(gst_rtp_jitter_buffer_get_sync):
* gst/rtpmanager/gstrtpjitterbuffer.h:
Add G_LIKELY macros, use global defines for max packet reorder and
dropouts.
Reset the jitterbuffer clock skew detection when packets seqnums are
changed unexpectedly.
* gst/rtpmanager/gstrtpsession.c: (on_sender_timeout),
(gst_rtp_session_class_init), (gst_rtp_session_init):
* gst/rtpmanager/gstrtpsession.h:
Add sender timeout signal.
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew),
(calculate_skew), (rtp_jitter_buffer_insert),
(rtp_jitter_buffer_get_sync):
* gst/rtpmanager/rtpjitterbuffer.h:
Add some G_LIKELY macros.
Keep track of the extended RTP timestamp so that we can report the RTP
timestamp <-> GStreamer timestamp relation for lip-sync.
Remove server timestamp gap detection code, the server can sometimes
make a huge gap in timestamps (talk spurts,...) see #549774.
Detect timetamp weirdness instead by observing the sender/receiver
timestamp relation and resync if it changes more than 1 second.
Add method to report about the current rtp <-> gst timestamp relation
which is needed for lip-sync.
* gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
(on_sender_timeout), (check_collision), (rtp_session_process_sr),
(session_cleanup):
* gst/rtpmanager/rtpsession.h:
Add sender timeout signal.
Remove inaccurate rtp <-> gst timestamp relation code, the
jitterbuffer can now do an accurate reporting about this.
* gst/rtpmanager/rtpsource.c: (rtp_source_init),
(rtp_source_update_caps), (calculate_jitter),
(rtp_source_process_rtp):
* gst/rtpmanager/rtpsource.h:
Remove inaccurate rtp <-> gst timestamp relation code.
* gst/rtpmanager/rtpstats.h:
Define global max-reorder and max-dropout constants for use in various
subsystems.
2009-08-11 02:30:37 +01:00
Wim Taymans
5c89bb2ab3 gst/rtpmanager/gstrtpsession.c: Send EOS when the session object instructs us to.
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_send_rtcp),
(gst_rtp_session_event_send_rtp_sink):
Send EOS when the session object instructs us to.
* gst/rtpmanager/rtpsession.c: (rtp_session_on_timeout):
* gst/rtpmanager/rtpsession.h:
Make it possible for the session manager to instruct us to send EOS. We
currently will EOS when the session is a sender and when the sender part
goes EOS. This is not entirely correct behaviour because the session
could still participate as a receiver.
Fixes #549409.
2009-08-11 02:30:37 +01:00
Wim Taymans
62ecaee748 gst/rtpmanager/gstrtpbin.c: Reset rtp timestamp interpollation when we detect a gap when the clock_base changed.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
(gst_rtp_bin_sync_chain), (new_ssrc_pad_found):
Reset rtp timestamp interpollation when we detect a gap when the
clock_base changed.
Don't try to adjust the ts-offset when it's too big (> 3seconds)
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_set_ssrc):
* gst/rtpmanager/gstrtpsession.h:
Add method to set session SSRC.
* gst/rtpmanager/rtpsession.c: (check_collision),
(rtp_session_set_internal_ssrc), (rtp_session_get_internal_ssrc),
(rtp_session_on_timeout):
* gst/rtpmanager/rtpsession.h:
Added debugging for the collision checks.
Add method to change the internal SSRC of the session.
* gst/rtpmanager/rtpsource.c: (rtp_source_process_rtp):
Reset the clock base when we detect large jumps in the seqnums.
2009-08-11 02:30:37 +01:00
Stefan Kost
cc74738d83 gst/rtpmanager/gstrtpbin.c: Print the pad-name in debug log.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c:
Print the pad-name in debug log.
* sys/dshowsrcwrapper/gstdshowaudiosrc.c:
* sys/dshowsrcwrapper/gstdshowvideosrc.c:
Use "-" instead of "_" in property names. Can we call them just
"device" like everywhere else?
2009-08-11 02:30:37 +01:00
Olivier Crete
d392defbd3 gst/rtpmanager/gstrtpjitterbuffer.c: Make the buffer metadata writable before inserting it in the jitterbuffer becaus...
Original commit message from CVS:
Based on patch by: Olivier Crete <tester at tester dot ca>
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
Make the buffer metadata writable before inserting it in the
jitterbuffer because the jitterbuffer will modify the timestamps.
* gst/rtpmanager/rtpjitterbuffer.c:
Update method comment about requiring writable metadata on buffers.
* gst/rtpmanager/rtpsession.c: (rtp_session_process_sr),
(rtp_session_process_rtcp):
Make the RTCP buffer metadata writable because we want to modify the
metadata.
Fixes #546312.
2009-08-11 02:30:37 +01:00
Håvard Graff
1bef5a8ab8 gst/rtpmanager/gstrtpjitterbuffer.c: Fix debug by logging the right seqnum.
Original commit message from CVS:
Patch by: Håvard Graff <havard dot graff at tandberg dot com>
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain):
Fix debug by logging the right seqnum.
2009-08-11 02:30:37 +01:00
Olivier Crete
2707a84d78 gst/rtpmanager/gstrtpbin.c: Release lock before emitting the request-pt-map signal.
Original commit message from CVS:
Patch by: Olivier Crete <tester at tester dot ca>
* gst/rtpmanager/gstrtpbin.c: (get_pt_map):
Release lock before emitting the request-pt-map signal.
Fixes #543480.
2009-08-11 02:30:37 +01:00
Peter Kjellerstedt
fd44690d4f gst/rtpmanager/: Corrected a typo (interpollate -> interpolate).
Original commit message from CVS:
* ChangeLog:
* gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_loop):
* gst/rtpmanager/rtpsource.c: (rtp_source_get_new_sr):
Corrected a typo (interpollate -> interpolate).
2009-08-11 02:30:36 +01:00
Peter Kjellerstedt
e2f49d9ccf gst/rtpmanager/: Changed some GST_DEBUG() to GST_LOG() to reduce the spam when a pipeline is running normally.
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp),
(gst_rtp_session_send_rtp), (gst_rtp_session_send_rtcp),
(gst_rtp_session_sync_rtcp), (gst_rtp_session_chain_recv_rtp),
(gst_rtp_session_chain_recv_rtcp), (gst_rtp_session_chain_send_rtp):
* gst/rtpmanager/rtpsession.c: (source_push_rtp),
(rtp_session_send_rtp):
* gst/rtpmanager/rtpsource.c: (push_packet), (calculate_jitter),
(rtp_source_process_rtp), (rtp_source_send_rtp):
Changed some GST_DEBUG() to GST_LOG() to reduce the spam when a
pipeline is running normally.
2009-08-11 02:30:36 +01:00
Peter Kjellerstedt
ca15984e14 gst/rtpmanager/: Do not mix the use of g_get_current_time() with gst_clock_get_time().
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init),
(gst_rtp_session_finalize), (rtcp_thread),
(gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_recv_rtcp),
(gst_rtp_session_event_send_rtp_sink),
(gst_rtp_session_chain_send_rtp):
* gst/rtpmanager/rtpsession.c: (check_collision),
(update_arrival_stats), (rtp_session_process_rtp),
(rtp_session_process_rtcp), (rtp_session_send_rtp),
(rtp_session_send_bye_locked), (rtp_session_send_bye),
(rtp_session_next_timeout), (session_report_blocks), (session_cleanup),
(is_rtcp_time), (rtp_session_on_timeout):
* gst/rtpmanager/rtpsession.h:
Do not mix the use of g_get_current_time() with gst_clock_get_time().
2009-08-11 02:30:36 +01:00
Stefan Kost
a71ffc55d8 Final round of doc updates.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
* gst/speed/gstspeed.c:
* gst/speexresample/gstspeexresample.c:
* gst/videosignal/gstvideoanalyse.c:
* gst/videosignal/gstvideodetect.c:
* gst/videosignal/gstvideomark.c:
* sys/dvb/gstdvbsrc.c:
* sys/oss4/oss4-mixer.c:
* sys/oss4/oss4-sink.c:
* sys/oss4/oss4-source.c:
* sys/wininet/gstwininetsrc.c:
Final round of doc updates.
2009-08-11 02:30:36 +01:00
Stefan Kost
138c2b7cf9 gst/: More doc updates. More xrefs.
Original commit message from CVS:
* gst/deinterlace/gstdeinterlace.c:
* gst/rtpmanager/gstrtpbin.c:
* gst/rtpmanager/gstrtpclient.c:
* gst/rtpmanager/gstrtpjitterbuffer.c:
* gst/rtpmanager/gstrtpptdemux.c:
* gst/rtpmanager/gstrtpsession.c:
* gst/rtpmanager/gstrtpssrcdemux.c:
* gst/sdp/gstsdpdemux.c:
More doc updates. More xrefs.
2009-08-11 02:30:36 +01:00