Wim Taymans
89b9019e3e
rtx: various improvements
...
Use locking
Don't push from the event handler, collected packets in a queue and push from
the chain function.
Clear queues on shutdown.
2013-08-21 17:02:27 +02:00
Wim Taymans
ee15bc9284
session: generate events correctly
...
Do correct shifting of the bitmask for lost packets.
2013-08-21 17:02:27 +02:00
Wim Taymans
67523d3ecb
rtp: register rtx element better
2013-08-21 17:02:26 +02:00
Sebastian Dröge
7692e9e569
directsoundsink: WAVEFORMATEX is unsigned for 8 bit integers, and signed for others
...
Probably fixes
https://bugzilla.gnome.org/show_bug.cgi?id=705477
2013-08-21 16:41:21 +02:00
Tim-Philipp Müller
cebfacd1fa
jpegenc: don't ignore return value from _finish_frame()
...
gst_video_encoder_finish_frame() will return FLOW_OK here if
there's no output buffer.
2013-08-21 13:05:00 +01:00
Wim Taymans
f626e29897
jpegdepay: add some more debug
2013-08-21 12:56:35 +02:00
Wim Taymans
77ed44a88a
rtpgstdepay: only push events when they changed
...
Keep track of the STREAM_START and TAG events and only push them
when they changed.
2013-08-21 12:10:00 +02:00
Wim Taymans
b144809b7c
rtpgstpay: taglists should not be merged in 1.0
2013-08-21 10:52:59 +02:00
Wim Taymans
69b0dcd7df
rtpgstdepay: flush on FLUSH_STOP event
2013-08-21 10:28:50 +02:00
Wim Taymans
5ff9093843
rtpgstpay: reset on state change
...
Do full reset on state change to READY
2013-08-21 10:03:52 +02:00
Wim Taymans
ae9239aac7
rtpgstpay: reset on FLUSH_STOP
...
Clear the adapter and pending buffer list on FLUSH_STOP.
2013-08-21 09:55:20 +02:00
Wim Taymans
2e8955df39
rtpgstpay: don't use clock for config interval
...
We can't use the clock to time our config-interval because we are not
live (or there might not be a clock or the clock might not be running).
Instead just simply take the timestamp diff.
2013-08-21 09:39:30 +02:00
Wim Taymans
182f96ff79
rtpgstay: don't use // comments
2013-08-21 09:33:04 +02:00
Youness Alaoui
e22f7e91c4
rtspsrc: Fix response argument in handle-request signal
2013-08-21 09:06:02 +02:00
Youness Alaoui
6636efd31a
rtspsrc: Add sdes property and proxy it to rtpbin
2013-08-21 09:06:02 +02:00
Youness Alaoui
62a6f58697
Send a stream-start whenever we send tags
...
This is to make sure tags are cleared on the client if the
stream-start was previously lost, otherwise, the client may end
up with a merged taglist of multiple songs
2013-08-21 09:06:01 +02:00
Youness Alaoui
05bcfee5a3
rtpgstpay: Add a config-interval property to resend the caps/tags at a regular interval
...
This is useful in case the packet containing the inlined caps was lost
or if new client joins an already running RTP stream and they missed
the previous tag events.
This also makes the payloader keep a list of merged tags so the retransmitted
tag event contains all previously received. A STREAM_START event will
flush the list of tags.
2013-08-21 09:06:01 +02:00
Youness Alaoui
1f4ca28868
rtpgstpay: Refactor the setcaps and use new method to send arbitrary caps at any time
2013-08-21 09:06:01 +02:00
Youness Alaoui
9257409613
rtpgstpay: Do not flush events for stream-start and avoid conflict between event and pending inline caps
2013-08-21 09:06:01 +02:00
Youness Alaoui
2d53289b6b
rtpgstpay: Add a create_from_adapter API and use a list of GstBufferList
...
This is necessary to fix event/caps sending. If we send a STREAM_START
packet, it will cause an error because the stream didn't receive its
caps and new-segment events, so we must wait for the first buffer before
sending the stream-start event buffer. However, the caps will be sent
at the same time and so the 'inline caps' will be set for the event.
We need to be able to payload individual packets (data, caps or events)
and only send them when we call flush.
2013-08-21 09:06:01 +02:00
Youness Alaoui
0070ba76f2
rtpgstpay: Add etype=4 for payloading GST_EVENT_STREAM_START
2013-08-21 09:06:01 +02:00
Youness Alaoui
6155b27971
rtpgstpay: Fix typo, GST_EVENT_CUSTOM_BOTH has etype of 3
2013-08-21 09:06:01 +02:00
Wim Taymans
587dc055e9
jitterbuffer: handle EOS
...
When the queue is empty, and we received EOS, pause and push an EOS
event downstream.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=706387
2013-08-20 14:36:59 +02:00
Wim Taymans
533f26fc99
jitterbuffer: update docs
2013-08-20 10:26:15 +02:00
Wim Taymans
c7f9ef8012
jitterbuffer: update all timers
...
Keep looping over all registered timers so that we can mark them lost instead of
stopping as soon as we find the timer for the current seqnum.
2013-08-20 10:25:17 +02:00
Wim Taymans
5debda9ca1
jitterbuffer: remove unused variables
2013-08-20 08:55:50 +02:00
Wim Taymans
a88db5fa2c
jitterbuffer: reorganize timer handling
...
Restructure handling of incomming packet and the gap with the expected seqnum
and register all timers from the _chain function.
Convert a timer to a LOST packet timer when the max amount of retransmission
requests has been reached.
2013-08-19 22:04:51 +02:00
Wim Taymans
d9d6eac4bb
jitterbuffer: refactor packet spacing calculation
2013-08-19 22:04:50 +02:00
Wim Taymans
c4dc159656
jitterbuffer: keep track of last seqnum and dts
2013-08-19 22:04:50 +02:00
Wim Taymans
652ce95ca6
jitterbuffer: small cleanups
2013-08-19 22:04:50 +02:00
Wim Taymans
b4a35bbe82
jitterbuffer: reset retransmission timers in add/reschedule
...
Reset the retransmission timers when adding and rescheduling a timer.
2013-08-19 22:04:50 +02:00
Wim Taymans
cf8a0652f3
jitterbuffer: rename variables for packet spacing
2013-08-19 22:04:50 +02:00
Wim Taymans
ec82e4ab7c
jitterbuffer: remove lost timer when we get the packet
...
When we receive a packet, also remove the LOST timer for it.
2013-08-19 22:04:50 +02:00
Wim Taymans
2f03b43b21
jitterbuffer: expected seqnum must increase
...
Only update the expected seqnum when it is bigger than the previous expected
seqnum.
2013-08-19 22:04:50 +02:00
Wim Taymans
c5bf376bb5
jitterbuffer: add more debug
2013-08-19 22:04:50 +02:00
Wim Taymans
ff825a2919
rtxqueue: add retransmission queue element
2013-08-19 22:04:50 +02:00
Wim Taymans
5fe18ee432
session: add some docs
2013-08-19 22:04:49 +02:00
Wim Taymans
482dacfb54
session: handle NACK feedback and generate events
...
Handle and parse the feedback NACK packets and generate a Retransmission
event for each NACKed packet
2013-08-19 22:04:49 +02:00
Olivier Crête
d595c08aca
v4l2: Add forward declaration for gst_v4l2_object_get_format_list
2013-08-19 13:19:42 -04:00
Olivier Crête
48caa1712a
v4l2: De-duplicate caps probing between src and sink
2013-08-19 13:08:18 -04:00
Olivier Crête
dd5d93f0f6
pulse: Remove unused GstPulseProbe
2013-08-19 12:56:27 -04:00
Olivier Crête
24286f1612
v4l2: Use G_DEFINE_ macros for added thread safety
2013-08-19 12:48:35 -04:00
Thibault Saunier
e47ffb203b
videomixer: Do not send flush_stop ourself after a flush_start
...
When we receive a flush_start, we should wait for the next flush_stop
and foward it, not create a flush_stop ourself.
2013-08-17 11:40:27 +02:00
Wim Taymans
db90f6e68d
h264depay: init debug category early
...
Init the debug variable when we register the element because it is also used by
the payloader element when it calls the add_sps_pps method.
2013-08-16 17:12:19 +02:00
Sebastian Dröge
de7e1cb6dd
flacenc: Properly set headers via the base class instead of just pushing them downstream
...
Prevents buffers from being send before the caps and segment events.
2013-08-16 13:26:50 +02:00
Chris Bass
3e9dea3f8c
qtdemux: check denominator isn't zero before scaling duration.
...
When gst_qtdemux_configure_stream sets fps_d, check that n_samples is
non-zero before using it as a denominator to scale the stream duration.
https://bugzilla.gnome.org/show_bug.cgi?id=706076
2013-08-16 10:14:30 +02:00
Sebastian Dröge
b1e442236f
ext: Use new flush vfunc of video codec base classes and remove reset implementations
2013-08-15 15:08:05 +02:00
Wim Taymans
f11c2c9b3b
jitterbuffer: forward flush before stopping dataflow
...
First forward the flush event and then stop our loop function.
2013-08-14 16:19:32 +02:00
Tim-Philipp Müller
1095114d89
configure: require libsoup >= 2.38
...
Bump libsoup requirement for newer API used, like headers_get_one().
2.38 is from early 2012 and is in linen with our GLib requirement.
2013-08-14 13:10:32 +01:00
Tim-Philipp Müller
604bfa586e
soup: don't use deprecated soup_message_headers_get() API
2013-08-14 11:54:19 +01:00