Wim Taymans [Mon, 19 Aug 2013 12:56:49 +0000 (14:56 +0200)]
jitterbuffer: expected seqnum must increase
Only update the expected seqnum when it is bigger than the previous expected
seqnum.
Wim Taymans [Mon, 19 Aug 2013 12:55:49 +0000 (14:55 +0200)]
jitterbuffer: add more debug
Wim Taymans [Mon, 12 Aug 2013 14:15:54 +0000 (16:15 +0200)]
rtxqueue: add retransmission queue element
Wim Taymans [Mon, 12 Aug 2013 12:53:33 +0000 (14:53 +0200)]
session: add some docs
Wim Taymans [Tue, 6 Aug 2013 14:29:54 +0000 (16:29 +0200)]
session: handle NACK feedback and generate events
Handle and parse the feedback NACK packets and generate a Retransmission
event for each NACKed packet
Olivier Crête [Mon, 19 Aug 2013 17:19:42 +0000 (13:19 -0400)]
v4l2: Add forward declaration for gst_v4l2_object_get_format_list
Olivier Crête [Mon, 22 Oct 2012 21:58:07 +0000 (17:58 -0400)]
v4l2: De-duplicate caps probing between src and sink
Olivier Crête [Tue, 13 Aug 2013 21:32:17 +0000 (17:32 -0400)]
pulse: Remove unused GstPulseProbe
Olivier Crête [Mon, 19 Aug 2013 16:46:45 +0000 (12:46 -0400)]
v4l2: Use G_DEFINE_ macros for added thread safety
Thibault Saunier [Sat, 17 Aug 2013 09:28:13 +0000 (11:28 +0200)]
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.
Wim Taymans [Fri, 16 Aug 2013 15:10:31 +0000 (17:10 +0200)]
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.
Sebastian Dröge [Fri, 16 Aug 2013 11:26:28 +0000 (13:26 +0200)]
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.
Chris Bass [Thu, 15 Aug 2013 09:59:10 +0000 (10:59 +0100)]
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
Sebastian Dröge [Thu, 15 Aug 2013 13:08:05 +0000 (15:08 +0200)]
ext: Use new flush vfunc of video codec base classes and remove reset implementations
Wim Taymans [Wed, 14 Aug 2013 14:19:32 +0000 (16:19 +0200)]
jitterbuffer: forward flush before stopping dataflow
First forward the flush event and then stop our loop function.
Tim-Philipp Müller [Wed, 14 Aug 2013 12:10:32 +0000 (13:10 +0100)]
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.
Tim-Philipp Müller [Wed, 14 Aug 2013 10:54:19 +0000 (11:54 +0100)]
soup: don't use deprecated soup_message_headers_get() API
Edward Hervey [Tue, 13 Aug 2013 15:44:50 +0000 (17:44 +0200)]
.gitignore: Ignore files from automake test-driver
Olivier Crête [Mon, 12 Aug 2013 19:28:34 +0000 (15:28 -0400)]
rtph264pay: Use the SPS/PPS handling function from the depayloader
Remove duplicated copies
https://bugzilla.gnome.org/show_bug.cgi?id=705553
Olivier Crête [Mon, 12 Aug 2013 19:26:08 +0000 (15:26 -0400)]
rtph264depay: Make the SPS/PPS deduplication function generic
Make it not touch any internals of the depayloader
https://bugzilla.gnome.org/show_bug.cgi?id=705553
Chris Bass [Tue, 13 Aug 2013 13:09:20 +0000 (14:09 +0100)]
aacparse: allow conversion from raw AAC to ADTS
This patch will prepend ADTS headers to raw AAC audio frames, allowing
upstream elements to link to decoders that only support AAC in ADTS format.
Note that no error correction bits are added to ADTS frames in this code.
https://bugzilla.gnome.org/show_bug.cgi?id=615740
Sebastian Dröge [Tue, 13 Aug 2013 10:44:11 +0000 (12:44 +0200)]
rtspsrc: Only free GCheckSum after its last usage
https://bugzilla.gnome.org/show_bug.cgi?id=705760
Andoni Morales Alastruey [Tue, 13 Aug 2013 10:02:29 +0000 (12:02 +0200)]
souphttpsrc: fix critical setting a NULL uri redirection
Andoni Morales Alastruey [Fri, 12 Jul 2013 23:50:56 +0000 (01:50 +0200)]
souphttpsrc: add redirection to the URI query
Matej Knopp [Wed, 31 Jul 2013 08:42:07 +0000 (10:42 +0200)]
qtdemux: elst should offset samples instead of buffers
The current approach where buffers are offset is not ideal, as during seek
and loop current time is compared to sample times.
https://bugzilla.gnome.org/show_bug.cgi?id=700264
Thibault Saunier [Wed, 7 Aug 2013 17:32:07 +0000 (19:32 +0200)]
videomixer: Send EOS if buf_end >= segment.stop
That means the whole segment is already played, and we are sure we
are EOS at that point.
Also handle segment seeks, and do not send EOS in that case.
Matej Knopp [Sun, 4 Aug 2013 12:40:38 +0000 (14:40 +0200)]
avidemux: send proper stream_start event
https://bugzilla.gnome.org//show_bug.cgi?id=705449
Sebastian Dröge [Thu, 8 Aug 2013 09:51:17 +0000 (11:51 +0200)]
matroskademux: Don't print warnings during flushing and stop as soon as possible
https://bugzilla.gnome.org//show_bug.cgi?id=705442
Tim-Philipp Müller [Wed, 7 Aug 2013 10:14:38 +0000 (11:14 +0100)]
rtpvp8depay: mark key frames and delta frames properly
https://bugzilla.gnome.org/show_bug.cgi?id=705550
Wim Taymans [Mon, 5 Aug 2013 21:23:57 +0000 (23:23 +0200)]
session: add NACK feedback in RTCP
Wim Taymans [Mon, 5 Aug 2013 21:22:16 +0000 (23:22 +0200)]
source: add methods to register NACK
Add a method to register a missing packet for an ssrc along with
methods to get the missing packets and clear them.
Wim Taymans [Sun, 4 Aug 2013 21:05:36 +0000 (23:05 +0200)]
session: handle Retransmission event and schedule NACK
Handle the retransmission event from downstream and use it to schedule a NACK
request.
Wim Taymans [Mon, 5 Aug 2013 21:20:29 +0000 (23:20 +0200)]
session: pass data to remove func
Pass the data to the remove function because we are going to deref it when there
is pli or fir.
Thibault Saunier [Tue, 6 Aug 2013 13:28:50 +0000 (15:28 +0200)]
qtdemux: Fix compilation
Thibault Saunier [Tue, 6 Aug 2013 13:17:44 +0000 (15:17 +0200)]
qtdemux: Raw buffer DTS should always be CLOCK_TIME_NONE
Thibault Saunier [Tue, 6 Aug 2013 09:58:38 +0000 (11:58 +0200)]
videomixer: Make sure to send EOS if the buffer end time equals the segment end time
Otherwize EOS never gets sent in that particular case.
Sjoerd Simons [Mon, 5 Aug 2013 06:49:50 +0000 (08:49 +0200)]
goom: Ensure src caps are writable
In some cases the src caps determined by goom weren't writable, causing
a bunch of assertion failures and failed caps. Fixed by always
explicitely making the caps writable
https://bugzilla.gnome.org/show_bug.cgi?id=705475
Wim Taymans [Sun, 4 Aug 2013 21:18:29 +0000 (23:18 +0200)]
session: use common send_rtcp method
Reuse the send_rtcp method that already asks for the current time when
requesting a keyframe.
Wim Taymans [Sun, 4 Aug 2013 21:12:50 +0000 (23:12 +0200)]
session: Don't use ClockTimeDiff for unsigned delays
Edward Hervey [Sun, 4 Aug 2013 14:52:15 +0000 (16:52 +0200)]
qtmux: Use buffer PTS if DTS is not set
Avoids ending up with completely bogus scaled duration/pts when new
buffers have invalid DTS.
Tim-Philipp Müller [Sun, 4 Aug 2013 13:32:47 +0000 (14:32 +0100)]
tests: skip https test if there's no TLS support in soup/glib
Tim-Philipp Müller [Sun, 4 Aug 2013 10:20:41 +0000 (11:20 +0100)]
rtpdec: use generic marshaller
Tim-Philipp Müller [Sun, 4 Aug 2013 09:52:33 +0000 (10:52 +0100)]
v4l2: remove unused enumtypes and use generic marshaller
Tim-Philipp Müller [Sun, 4 Aug 2013 09:47:38 +0000 (10:47 +0100)]
udp: remove unused marshal and enumtypes files
Tim-Philipp Müller [Sun, 4 Aug 2013 08:38:19 +0000 (09:38 +0100)]
rtpmanager: use generic marshaller
Wim Taymans [Sat, 3 Aug 2013 22:13:07 +0000 (00:13 +0200)]
jitterbuffer: send event in right direction
David Schleef [Sat, 3 Aug 2013 00:38:34 +0000 (17:38 -0700)]
tests: create/remove orc directory at proper time
Before automake creates .deps directories, and during distclean.
Wim Taymans [Fri, 2 Aug 2013 22:25:44 +0000 (00:25 +0200)]
session: add FIR and PLI like other RTCP packets
Add the FIR and PLI packets like the other RTCP packet instead of from the
on-sending-rtcp default signal handler.
Wim Taymans [Fri, 2 Aug 2013 15:22:55 +0000 (17:22 +0200)]
jitterbuffer: fix property ranges
Wim Taymans [Fri, 2 Aug 2013 14:42:52 +0000 (16:42 +0200)]
jitterbuffer: push retransmission events
Lubosz Sarnecki [Fri, 2 Aug 2013 12:12:16 +0000 (14:12 +0200)]
build: add subdir-objects to AM_INIT_AUTOMAKE
Fixes warnings with automake 1.14
https://bugzilla.gnome.org/show_bug.cgi?id=705350
Wim Taymans [Fri, 2 Aug 2013 12:54:56 +0000 (14:54 +0200)]
jitterbuffer: add support for retransmission retry
When we didn't receive a packet after requesting retransmission, retry
asking for retransmission for a certain period.
Wim Taymans [Fri, 2 Aug 2013 12:19:54 +0000 (14:19 +0200)]
jitterbuffer: add properties
Add properties to control retransmission parameters
Wim Taymans [Fri, 2 Aug 2013 10:44:58 +0000 (12:44 +0200)]
jitterbuffer: use corrected timeout when rescheduling
When we recalculate the timeout, use the corrected timeout value depending on
the timer type.
Wim Taymans [Fri, 2 Aug 2013 10:43:00 +0000 (12:43 +0200)]
jitterbuffer: update timers after queueing
Else we might update the timer needlessly for duplicates.
Wim Taymans [Fri, 2 Aug 2013 10:42:08 +0000 (12:42 +0200)]
jitterbuffer: move method up
Wim Taymans [Fri, 2 Aug 2013 04:28:32 +0000 (06:28 +0200)]
jitterbuffer: small cleanup
Wim Taymans [Thu, 1 Aug 2013 21:26:06 +0000 (23:26 +0200)]
jitterbuffer: unschedule old expected packets
When we receive a new packet, unschedule old outstanding packets when their
seqnum is too far away.
Wim Taymans [Thu, 1 Aug 2013 21:29:23 +0000 (23:29 +0200)]
jitterbuffer: refactor timer update
Wim Taymans [Thu, 1 Aug 2013 21:24:29 +0000 (23:24 +0200)]
jitterbuffer: update timers when removing
Update the timers when we remove a timer.
Handle canceled timers, make them unschedule the current timer and
trigger the timeout code.
Wim Taymans [Thu, 1 Aug 2013 21:22:02 +0000 (23:22 +0200)]
jitterbuffer: fix typo
Wim Taymans [Thu, 1 Aug 2013 13:40:52 +0000 (15:40 +0200)]
jitterbuffer: improve timeout management
If we change the seqnum of an existing timer and we were waiting for
that timer, unschedule it. If we change the timeout of an existing timer and we
were waiting on it, only unschedule when the new time is smaller.
Wim Taymans [Thu, 1 Aug 2013 13:05:35 +0000 (15:05 +0200)]
jitterbuffer: install timer for expected arrival
Install a timer that is triggered when the expected arrival time of a packet
expired.
Wim Taymans [Thu, 1 Aug 2013 12:56:00 +0000 (14:56 +0200)]
jitterbuffer: improve unschedule of timers
Conflicts:
gst/rtpmanager/gstrtpjitterbuffer.c
Wim Taymans [Thu, 1 Aug 2013 10:21:53 +0000 (12:21 +0200)]
jitterbuffer: move code around
Wim Taymans [Thu, 1 Aug 2013 10:07:11 +0000 (12:07 +0200)]
jitterbuffer: estimate inter packet spacing
When we see two packets with consecutive seqnums and a different RTP time, use
the DTS difference as the inter packet spacing estimate.
Wim Taymans [Thu, 1 Aug 2013 10:01:15 +0000 (12:01 +0200)]
jitterbuffer: keep track of current timeout
Wim Taymans [Thu, 1 Aug 2013 09:49:10 +0000 (11:49 +0200)]
jitterbuffer: cleanup timer handling
Wim Taymans [Thu, 1 Aug 2013 09:40:41 +0000 (11:40 +0200)]
jitterbuffer: reset is only possible with a GAP
Wim Taymans [Thu, 1 Aug 2013 09:29:32 +0000 (11:29 +0200)]
jitterbuffer: operate on DTS
Make the jitterbuffer schedule the timeouts based on the DTS instead
of the PTS. This makes it all smoother with reordered frames and gives
the decoder time to reorder the frames in time.
Wim Taymans [Thu, 1 Aug 2013 09:14:12 +0000 (11:14 +0200)]
jitterbuffer: rename timout variable
Wim Taymans [Wed, 31 Jul 2013 15:08:58 +0000 (17:08 +0200)]
jitterbuffer: small cleanup
Wim Taymans [Wed, 31 Jul 2013 14:59:58 +0000 (16:59 +0200)]
jitterbuffer: block output in paused or buffering
Wim Taymans [Wed, 31 Jul 2013 14:59:09 +0000 (16:59 +0200)]
jitterbuffer: store pts in timer
Only store the pts in the timer so that we can both do timeouts with timings on
the input and output of the jitterbuffer.
Wim Taymans [Tue, 30 Jul 2013 21:14:24 +0000 (23:14 +0200)]
rtpjitterbuffer: refactor jitterbuffer
Refactor the jitterbuffer code. Make separate function for peeking a buffer,
pushing the next buffer, waiting for timeouts and handling the timeouts.
The main loop now tries to push as many buffers as it can until it runs out of
buffers or when it detects a seqnum discont. Then it will wait for some event to
happen before attempting to push more buffers.
Make methods to register timeouts in an array. These timeouts are registered
when we detect a missing packet, sync for the first packet or when we find an
estimation for the end-of-stream.
This greatly simplifies and clarifies the code and also makes it possible to
register more complicated timeout schemes later.
Wim Taymans [Tue, 30 Jul 2013 16:52:58 +0000 (18:52 +0200)]
rtpjitterbuffer: use NULL to ignore percent
If we pass NULL to pop and push we ignore the percent result.
Wim Taymans [Tue, 30 Jul 2013 05:00:19 +0000 (07:00 +0200)]
jitterbuffer: refactor
Move eos estimation into separate function
Tim-Philipp Müller [Tue, 30 Jul 2013 13:28:19 +0000 (14:28 +0100)]
flvdemux: don't leak stream_id string
https://bugzilla.gnome.org/show_bug.cgi?id=705142
Tim-Philipp Müller [Mon, 29 Jul 2013 18:53:52 +0000 (19:53 +0100)]
po: update translations
Tim-Philipp Müller [Mon, 29 Jul 2013 18:48:54 +0000 (19:48 +0100)]
tests: ignore new test binaries
Sebastian Dröge [Mon, 29 Jul 2013 12:47:49 +0000 (14:47 +0200)]
Back to development
Sebastian Dröge [Mon, 29 Jul 2013 11:42:18 +0000 (13:42 +0200)]
Release 1.1.3
Sebastian Dröge [Mon, 29 Jul 2013 11:42:05 +0000 (13:42 +0200)]
Update .po files
Sebastian Dröge [Mon, 29 Jul 2013 10:12:41 +0000 (12:12 +0200)]
gst: Don't swap start/stop for negative rates in the SEGMENT query
Matej Knopp [Mon, 29 Jul 2013 09:18:40 +0000 (11:18 +0200)]
qtdemux: Check for data size when parsing h264 codec data from strf atom
Sebastian Dröge [Mon, 29 Jul 2013 08:53:54 +0000 (10:53 +0200)]
matroskademux: Implement SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 08:53:47 +0000 (10:53 +0200)]
flvdemux: Implement SEGMENT query
Sebastian Dröge [Mon, 29 Jul 2013 08:50:59 +0000 (10:50 +0200)]
avidemux: Implement SEGMENT query
Matej Knopp [Sat, 27 Jul 2013 16:10:22 +0000 (18:10 +0200)]
qtdemux: Support H264 fourcc
https://bugzilla.gnome.org/show_bug.cgi?id=704996
Sebastian Dröge [Sun, 28 Jul 2013 16:09:33 +0000 (18:09 +0200)]
flacenc: Fix handling of image tags
The caps should be used to get the mimetype and there is
only an info structure for the GstSample if the image-type
is not NONE.
Sebastian Dröge [Sun, 28 Jul 2013 16:04:32 +0000 (18:04 +0200)]
flacenc: Don't crash if there is no image tag information
https://bugzilla.gnome.org/show_bug.cgi?id=705018
Sebastian Dröge [Sun, 28 Jul 2013 15:38:56 +0000 (17:38 +0200)]
avidemux: Fix duration reporting in push mode
https://bugzilla.gnome.org/show_bug.cgi?id=700933
Sebastian Dröge [Sun, 28 Jul 2013 15:32:27 +0000 (17:32 +0200)]
avidemux: Don't forget unmapping and unreffing buffer
Matej Knopp [Fri, 26 Jul 2013 19:06:17 +0000 (21:06 +0200)]
avidemux: unmap buffer
https://bugzilla.gnome.org/show_bug.cgi?id=704951
Wim Taymans [Fri, 26 Jul 2013 20:31:41 +0000 (22:31 +0200)]
session: don't make buffer writable prematurely
There is no reason to make the SR buffer writable at this point. This is better
delayed until needed.
Wim Taymans [Fri, 26 Jul 2013 20:25:50 +0000 (22:25 +0200)]
session: ignore RTCP for inactive sources
Wim Taymans [Fri, 26 Jul 2013 20:25:17 +0000 (22:25 +0200)]
session: small cleanup
Wim Taymans [Fri, 26 Jul 2013 15:17:31 +0000 (17:17 +0200)]
session: handle partial RTCP report blocks
When we have more SSRCs to report than what fit in an RTCP packet, use a
generation counter to make sure all of them end up in a packet eventually.
Wim Taymans [Fri, 26 Jul 2013 15:23:10 +0000 (17:23 +0200)]
session: create SSRC before doing session cleanup
Make the internal source before we do session cleanup
Wim Taymans [Fri, 26 Jul 2013 15:21:08 +0000 (17:21 +0200)]
session: reorganize the report block code