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
Matej Knopp [Fri, 26 Jul 2013 14:02:01 +0000 (16:02 +0200)]
matroskademux: fix memory leak in check_subtitle_buffer
https://bugzilla.gnome.org/show_bug.cgi?id=704921
Wim Taymans [Fri, 26 Jul 2013 12:21:40 +0000 (14:21 +0200)]
session: refactor active and sender checks
Wim Taymans [Fri, 26 Jul 2013 10:06:35 +0000 (12:06 +0200)]
session: remove internal sources on timeout
When an internal source times out and becomes a receiver, remove it.
Wim Taymans [Fri, 26 Jul 2013 09:47:56 +0000 (11:47 +0200)]
session: create an internal source for RTCP
When we need to do RTCP and we don't have an internal source yet,
make one.
Wim Taymans [Fri, 26 Jul 2013 08:47:28 +0000 (10:47 +0200)]
session: remove old code to change SSRC
Remove code used to change the SSRC after a collision. We now send
a RECONFIGURE event upstream to make the upstream element change the SSRC.
Wim Taymans [Fri, 26 Jul 2013 08:42:44 +0000 (10:42 +0200)]
source: don't update packet SSRC
Remove the code to update the SSRC in packets, it can never be called now that
we always use a source with matching packet SSRC.
Wim Taymans [Fri, 26 Jul 2013 08:24:22 +0000 (10:24 +0200)]
session: delay allocation of internal source
Allocate the internal source when we receive a caps with the SSRC or when we see
a buffer with the SSRC.
Wim Taymans [Fri, 26 Jul 2013 08:00:58 +0000 (10:00 +0200)]
session: generate reconfigure on collision
When we detect a collision, change the SSRC that we suggest upstream
and trigger RECONFIGURE. This should make upstream select a new SSRC.
Wim Taymans [Fri, 26 Jul 2013 07:37:24 +0000 (09:37 +0200)]
session: produce RTCP for all internal sources
Loop over all the internal sources and produce RTCP. We also need
to queue the RTCP packets and send them when we are finished.
Wim Taymans [Thu, 25 Jul 2013 23:40:20 +0000 (01:40 +0200)]
session: deprecate internal source and ssrc properties
Deprecate the internal source and internal ssrc properties. There might
be more than one internal source.
Wim Taymans [Thu, 25 Jul 2013 23:29:08 +0000 (01:29 +0200)]
session: internal sources don't use probation
Wim Taymans [Thu, 25 Jul 2013 23:24:07 +0000 (01:24 +0200)]
session: give caps to session
Let the session parse the caps and update its SSRC when needed.
Wim Taymans [Thu, 25 Jul 2013 23:14:04 +0000 (01:14 +0200)]
session: make method to suggest available SSRC
Make a method to suggest the best available SSRC. This is the SSRC of the last
created internal source and is used to instruct upstream to produce this
SSRC.
Wim Taymans [Thu, 25 Jul 2013 23:01:49 +0000 (01:01 +0200)]
session: keep SDES and set on new internal sources
Keep track of the SDES ourselves and set it on all newly created
internal sources.
Wim Taymans [Thu, 25 Jul 2013 22:48:25 +0000 (00:48 +0200)]
session: make method to make internal sources
Add a method to obtain an internal source and use it to create
our internal source
Wim Taymans [Thu, 25 Jul 2013 22:29:41 +0000 (00:29 +0200)]
session: count internal sources and how many are senders
Wim Taymans [Thu, 25 Jul 2013 22:14:29 +0000 (00:14 +0200)]
rtpsession: separate BYE marking and scheduling
First mark sources with BYE and then schedule the BYE RTCP message.
Wim Taymans [Thu, 25 Jul 2013 21:56:46 +0000 (23:56 +0200)]
session: get SSRC from RTCP packet itself
Get the SSRC from the RTCP packet instead.
Wim Taymans [Thu, 25 Jul 2013 21:51:34 +0000 (23:51 +0200)]
session: fix bandwidth calculation
We iterate over all sources and the internal one is also in the
hashtable so avoid adding it twice.
Wim Taymans [Thu, 25 Jul 2013 21:38:08 +0000 (23:38 +0200)]
session: add some docs
Wim Taymans [Thu, 25 Jul 2013 21:11:05 +0000 (23:11 +0200)]
session: Rearrange RTCP reporting a little
Make a function to generate an RTCP packet for a source, pass the source as a
parameter.
Move timeout of collisions to session cleanup phase.
Wim Taymans [Thu, 25 Jul 2013 20:39:04 +0000 (22:39 +0200)]
session: move check for is_early around
Move the check for the early RTCP to where it is needed and used.
Wim Taymans [Thu, 25 Jul 2013 15:35:02 +0000 (17:35 +0200)]
session: parse packet outside of the session lock
Wim Taymans [Thu, 25 Jul 2013 15:34:06 +0000 (17:34 +0200)]
session: do nicer checks for internal sources
Wim Taymans [Thu, 25 Jul 2013 15:15:37 +0000 (17:15 +0200)]
session: let source keep track if it sent BYE
Wim Taymans [Thu, 25 Jul 2013 15:06:22 +0000 (17:06 +0200)]
source: reset more
Wim Taymans [Thu, 25 Jul 2013 14:49:41 +0000 (16:49 +0200)]
source: also use the source for bye_reason
Store the BYE reason in our internal source object. Rename the methods on the
source object a little because now the BYE can be received in RTCP or
set when the session wants to send BYE.
Wim Taymans [Thu, 25 Jul 2013 14:24:04 +0000 (16:24 +0200)]
session: configure sdes with structure only
Remove code to configure the SDES with methods and types, only
allow configuration with GstStructure
Wim Taymans [Thu, 25 Jul 2013 13:56:39 +0000 (15:56 +0200)]
session: refactor add and find source
Make functions to find and add a source to the hashtable.
Wim Taymans [Thu, 25 Jul 2013 13:43:11 +0000 (15:43 +0200)]
session: remove source from sync_rtcp
We don't need to know the sender source of the session in the
callback, the SR packet is for all participants in the session.
Wim Taymans [Wed, 24 Jul 2013 12:18:14 +0000 (14:18 +0200)]
jitterbuffer: add some more debug
Vincent Penquerc'h [Mon, 15 Jul 2013 16:11:45 +0000 (17:11 +0100)]
aacparse: allow conversion from ADTS to raw AAC
Some muxers (eg, qtmux) only support raw AAC, so this allows linking
an encoder that outputs ADTS only to those muxers.
The conversion is simple (omit the first 7 or 9 bytes of the frame),
but has to be done in pre_push instead of handle_frame as 1.0 does
not seem to allow skipping bytes there as 0.10 used to.
Other conversions are not supported (yet).
Vincent Penquerc'h [Mon, 15 Jul 2013 16:15:44 +0000 (17:15 +0100)]
aacparse: fix object_type parsing off-by-one in ADTS frame
According to http://wiki.multimedia.cx/index.php?title=ADTS,
the value stored in ADTS headers is one less than the object
type of the AAC stream.
A look at ffmpeg shows it also adds 1 to the value read off
the ADTS header.
Note that this might break other things that happen to have
an inverse off by one to match the existing code.
Thiago Santos [Thu, 25 Jul 2013 14:13:01 +0000 (11:13 -0300)]
avidemux: fix seqnum handling for seeks
Use the same seqnum as the seek for flushes/segments that are
caused by the seek. Also do the same for segment events
Fixes #676242
Thiago Santos [Thu, 25 Jul 2013 04:39:58 +0000 (01:39 -0300)]
matroskademux: fix seqnum handling for seeks
Use the same seqnum as the seek for flushes/segments that are
caused by the seek. Also do the same for segment events
Fixes #676242