Sebastian Dröge [Thu, 10 Oct 2013 11:52:35 +0000 (13:52 +0200)]
dvdec: Don't send segment event before caps
https://bugzilla.gnome.org/show_bug.cgi?id=709728
Sebastian Dröge [Wed, 9 Oct 2013 15:46:33 +0000 (17:46 +0200)]
dvdemux: Send stream-start, caps and segment events in the right order
https://bugzilla.gnome.org/show_bug.cgi?id=709728
Sebastian Dröge [Tue, 8 Oct 2013 09:28:04 +0000 (11:28 +0200)]
wavenc: A-Law and Mu-Law don't have width/depth/signed caps fields
https://bugzilla.gnome.org/show_bug.cgi?id=709614
Sebastian Dröge [Mon, 7 Oct 2013 10:54:11 +0000 (12:54 +0200)]
deinterlace: Fix handling of planar video formats in greedyh method
https://bugzilla.gnome.org/show_bug.cgi?id=709507
Reynaldo H. Verdejo Pinochet [Sun, 6 Oct 2013 17:01:26 +0000 (10:01 -0700)]
matroska: Trivial grammar fix on debug msg
Reynaldo H. Verdejo Pinochet [Sun, 6 Oct 2013 16:17:00 +0000 (09:17 -0700)]
matroskamux: Add context flag for WebM
WebM has a couple of specific requirements we need to handle.
Idea is to set this flag once and just rely on mux->is_webm
at run time instead of repeatedly figuring this out from
GST_MATROSKA_DOCTYPE_WEBM (which requires a strcmp()).
Reynaldo H. Verdejo Pinochet [Fri, 4 Oct 2013 21:42:59 +0000 (14:42 -0700)]
matroska: Do not write SegmentUID for WebM mux
WebM spec states SegmentUID is Unsupported. Files produced
with gstreamer without this change will spit an error like
this when passed to mkvalidator:
ERR201: Invalid 'SegmentUID' for profile 'webm' in Info at 192
Matej Knopp [Fri, 4 Oct 2013 22:00:03 +0000 (00:00 +0200)]
matroskademux: make dvd palette change event sticky
So they don't get lost.
https://bugzilla.gnome.org/show_bug.cgi?id=709454
Nicolas Dufresne [Thu, 3 Oct 2013 20:39:26 +0000 (16:39 -0400)]
videoflip: Add automatic flip mode driven by image-orientation tag
https://bugzilla.gnome.org/show_bug.cgi?id=709312
Peter Korsgaard [Fri, 4 Oct 2013 11:34:09 +0000 (13:34 +0200)]
v4l2bufferpool: O_CLOEXEC needs _GNU_SOURCE
On some systems (E.G. uClibc and older Glibc versions), O_CLOEXEC is only
defined when _GNU_SOURCE is specified, so do so.
_GNU_SOURCE needs to be defined before any system headers are included,
so move the fcntl.h section up.
https://bugzilla.gnome.org/show_bug.cgi?id=709423
Wim Taymans [Fri, 4 Oct 2013 10:11:56 +0000 (12:11 +0200)]
jitterbuffer: fix race in flush-start/flush-stop
When flush-stop arrives before we process the result of the _push() in the
loop function, we might pause even though we are not flushing anymore. Fix this
race by waiting for the srcpad loop function to completely pause after doing the
flush-start.
Mathieu Duponchelle [Thu, 3 Oct 2013 20:38:43 +0000 (22:38 +0200)]
videomixer: Update videoconvert copy
https://bugzilla.gnome.org/show_bug.cgi?id=709390
Mathieu Duponchelle [Thu, 3 Oct 2013 19:36:34 +0000 (21:36 +0200)]
videomixer: Check if the pad needs reconfiguration in collected
https://bugzilla.gnome.org/show_bug.cgi?id=709384
Matthieu Bouron [Thu, 3 Oct 2013 13:39:35 +0000 (14:39 +0100)]
jpegdec: Relax sink caps
Since jpegdec already parse the jpeg stream, the sink caps could be
relaxed. This will allow jpegdec to be selected in more case and in
particular when the jpeg typefinder does not find the width and height.
https://bugzilla.gnome.org/show_bug.cgi?id=709352
Tim-Philipp Müller [Thu, 3 Oct 2013 17:33:01 +0000 (18:33 +0100)]
v4l2src: print probed caps as caps again in debug log
This got lost during refactoring.
Sebastian Dröge [Thu, 3 Oct 2013 09:59:25 +0000 (11:59 +0200)]
qtdemux: Add support for the mp2v fourcc for MPEG-2 video
https://bugzilla.gnome.org/show_bug.cgi?id=709270
Ognyan Tonchev [Wed, 2 Oct 2013 13:56:53 +0000 (15:56 +0200)]
matroskademux: Fix memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=709266
Sreerenj Balachandran [Mon, 30 Sep 2013 09:31:42 +0000 (12:31 +0300)]
qtdemux: Add HEVC support
https://bugzilla.gnome.org/show_bug.cgi?id=709093
Ognyan Tonchev [Mon, 30 Sep 2013 10:24:32 +0000 (12:24 +0200)]
rtpgstpay: Fix memory leak
We were leaking the GList nodes of the pending buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=709079
Wim Taymans [Mon, 30 Sep 2013 10:31:00 +0000 (12:31 +0200)]
rtpjitterbuffer: fix race when updating the next_seqnum
If we were not waiting for the missing seqnum when we insert the lost packet
event in the jitterbuffer, we end up not updating the next_seqnum and wait
forever for the lost packets to arrive. Instead, keep track of the amount of
packets contained by the jitterbuffer item and update the next expected
seqnum only after pushing the buffer/event. This makes sure we correctly handle
GAPS in the sequence numbers.
Wim Taymans [Mon, 30 Sep 2013 10:30:23 +0000 (12:30 +0200)]
rtpjitterbuffer: small debug improvement
Wim Taymans [Mon, 30 Sep 2013 09:53:08 +0000 (11:53 +0200)]
rtpjitterbuffer: reset skew does not reset clock-rate
Don't reset the clock-rate when we reset the skew correction algorithm.
Reset the skew correction algorithm when we change the clock-rate.
Wim Taymans [Mon, 30 Sep 2013 09:16:32 +0000 (11:16 +0200)]
rtpjitterbuffer: pause timer when PAUSED
Also pause the timer when we go to the PAUSED state. It is possible that we
don't have a clock or base-time in PAUSED to perform the timeouts.
Wim Taymans [Mon, 30 Sep 2013 09:15:25 +0000 (11:15 +0200)]
rtpjitterbuffer: improve debug
Hans Månsson [Thu, 26 Sep 2013 18:41:26 +0000 (20:41 +0200)]
mp4mux: Do not require framerate in peer video caps
Remove the framerate restriction on the caps.
Reference: https://bugzilla.gnome.org/show_bug.cgi?id=708864
Wim Taymans [Fri, 27 Sep 2013 13:05:04 +0000 (15:05 +0200)]
rtspsrc: also go into the loop function after connect
When we have opened the stream, go into the loop function so that we can
receive messages from the server.
Matej Knopp [Fri, 27 Sep 2013 10:53:06 +0000 (12:53 +0200)]
matroskademux: move the check for subtitle buffer being null terminated before validating UTF-8
https://bugzilla.gnome.org/show_bug.cgi?id=707933
Wim Taymans [Thu, 26 Sep 2013 14:20:04 +0000 (16:20 +0200)]
rtpjitterbuffer: don't calculate skew without rtptime
Skip trying to calculate the skew when we don't have an rtptime.
It causes problems when lost packet events are placed in the jitterbuffer.
Tim-Philipp Müller [Wed, 25 Sep 2013 22:46:14 +0000 (23:46 +0100)]
configure: get rid of AS_SCRUB_INCLUDE
Should not be needed any more.
https://bugzilla.gnome.org/show_bug.cgi?id=707658
Wim Taymans [Wed, 25 Sep 2013 15:42:02 +0000 (17:42 +0200)]
rtspsrc: disable checks when linking pads
We know the pad links will work (and we don't check the return value
anyway).
Wim Taymans [Wed, 25 Sep 2013 15:36:15 +0000 (17:36 +0200)]
rtpbin: avoid some pad link checks
Link pads without checks, we know it will work.
Sebastian Dröge [Wed, 25 Sep 2013 10:55:21 +0000 (12:55 +0200)]
qtmux: Don't error out if downstream is not seekable for non-fragmented variants
Doing so would be a regression over 1.0 and breaks the unit test.
However the result will be most likely unusable, so let's post
a warning message on the bus.
Wim Taymans [Tue, 24 Sep 2013 02:02:09 +0000 (04:02 +0200)]
rtpjitterbuffer: calculate some stats
Wim Taymans [Mon, 23 Sep 2013 15:05:44 +0000 (17:05 +0200)]
rtpjitterbuffer: move send_lost_event function
Move the send_lost_event function to the do_lost_event handling, there is no
need to have a separate function.
Thiago Santos [Mon, 16 Sep 2013 14:20:51 +0000 (11:20 -0300)]
qtdemux: add code to parse creation time earlier than 1970
Use g_date_time seconds manipulation to allow to cover the quicktime
spec for creation_time. It uses seconds since 1904.
Both paths could be done using the generic approach of seconds since
1904 with GDateTime handling, but the first path using seconds from
1970 should be more commonly found and avoids a few objects creation and
ref/unref, so keep it there for performance.
Additionally, the code for handling seconds since 1970 changed from >
to >= because having 0 seconds since 1970 is also a valid case for that
path to handle.
https://bugzilla.gnome.org/show_bug.cgi?id=707975
Matej Knopp [Fri, 20 Sep 2013 22:55:26 +0000 (00:55 +0200)]
matroskademux: update stream->pos when sending buffers so that gap events are not sent unnecessarily
https://bugzilla.gnome.org/show_bug.cgi?id=708505
Tim-Philipp Müller [Tue, 24 Sep 2013 17:30:04 +0000 (18:30 +0100)]
Automatic update of common submodule
From 6b03ba7 to 865aa20
Sebastian Dröge [Tue, 24 Sep 2013 13:05:24 +0000 (15:05 +0200)]
configure: Actually use 1.3.0.1 as version to make configure happy
Sebastian Dröge [Tue, 24 Sep 2013 13:00:24 +0000 (15:00 +0200)]
Back to development
Sebastian Dröge [Tue, 24 Sep 2013 12:21:08 +0000 (14:21 +0200)]
Release 1.2.0
Sebastian Dröge [Tue, 24 Sep 2013 12:20:51 +0000 (14:20 +0200)]
Update .po files
Andoni Morales Alastruey [Fri, 20 Sep 2013 17:43:21 +0000 (19:43 +0200)]
osxvideosink: fix segfault releasing the sink
show_frame is deferred to the main thread and can be called
when the sink has been released, so we need to keep an extra ref
on ObjectiveC object helper.
https://bugzilla.gnome.org/show_bug.cgi?id=708501
Robert Krakora [Thu, 19 Sep 2013 21:11:34 +0000 (17:11 -0400)]
v4l2bufferpool: Restore original GstMemory in buffer if it has been changed
https://bugzilla.gnome.org/show_bug.cgi?id=706083
Wim Taymans [Mon, 23 Sep 2013 14:34:15 +0000 (16:34 +0200)]
rtpmanager: update docs
Wim Taymans [Mon, 23 Sep 2013 13:36:32 +0000 (15:36 +0200)]
docs: update docs with 1.0 element names
Wim Taymans [Mon, 23 Sep 2013 12:13:30 +0000 (14:13 +0200)]
tests: add test for retransmission because of reordering
Wim Taymans [Mon, 23 Sep 2013 12:12:03 +0000 (14:12 +0200)]
rtpjitterbuffer: always store lost event in jitterbuffer
Always prepare a lost event in the jitterbuffer, it is to wake up and make the
pushing thread continue. We drop the event when we are not supposed to push lost
events downstream.
Wim Taymans [Mon, 23 Sep 2013 09:18:46 +0000 (11:18 +0200)]
rtpjitterbuffer: schedule lost event differently
Schedule the lost event by placing it inside the jitterbuffer with the seqnum
that was lost so that the pushing thread can interleave and push it properly.
Wim Taymans [Mon, 23 Sep 2013 09:17:34 +0000 (11:17 +0200)]
tests: remove timeouts from check
Timeouts make the test unreliable and are not needed.
Wim Taymans [Mon, 23 Sep 2013 09:15:30 +0000 (11:15 +0200)]
rtpjitterbuffer: remove list debug
Wim Taymans [Mon, 23 Sep 2013 09:14:01 +0000 (11:14 +0200)]
rtpjitterbuffer: add type to the item
So that the upper layer can know what data is contained in the item.
Wim Taymans [Mon, 23 Sep 2013 07:58:32 +0000 (09:58 +0200)]
rtpjitterbuffer: fix flush
Pass function to flush to properly free the queue items.
Wim Taymans [Fri, 20 Sep 2013 22:08:20 +0000 (00:08 +0200)]
rtpjitterbuffer: append seqnum -1 packets
Wim Taymans [Fri, 20 Sep 2013 21:48:20 +0000 (23:48 +0200)]
rtpjitterbuffer: use structure to hold packet information
Make the jitterbuffer operate on a structure containing all the packet
information. This avoids mapping the buffer multiple times just to get the RTP
information. It will also make it possible to store other miniobjects such as
events later.
Wim Taymans [Fri, 20 Sep 2013 15:48:52 +0000 (17:48 +0200)]
rtpjitterbuffer: update expected timer when possible
When we receive a packet and we have some missing packets, we can update their
estimated arrival times based on the timestamp difference.
Wim Taymans [Fri, 20 Sep 2013 15:18:27 +0000 (17:18 +0200)]
rtpjitterbuffer: fix order of timeout events
Improve the order of the timeout events, if there are timers with the same
timeout, we want to trigger the lowest seqnum first. For this we need to loop
over the complete array of timers to find the best one before triggering the
timeout.
Wim Taymans [Fri, 20 Sep 2013 14:58:38 +0000 (16:58 +0200)]
rtpjitterbuffer: send lost event before signaling next buffer
First send the lost event, then update the next_seqnum counter and then
send the signal to the pushing thread that it can retry to push a buffer. This
avoids pushing out buffers before the lost event is pushed.
Wim Taymans [Fri, 20 Sep 2013 13:35:25 +0000 (15:35 +0200)]
jitterbuffer: configure clock-rate on jitterbuffer
Add a get and setter to configure the clock-rate in the jitterbuffer instead of
passing it as an argument to the insert method.
Wim Taymans [Fri, 20 Sep 2013 10:29:39 +0000 (12:29 +0200)]
tests: add test for packet delay and retransmission
Wim Taymans [Fri, 20 Sep 2013 10:27:26 +0000 (12:27 +0200)]
rtpjitterbuffer: add option to reset retransmission timers
Wim Taymans [Fri, 20 Sep 2013 10:25:43 +0000 (12:25 +0200)]
rtpjitterbuffer: stop the timer thread
The timeout code could release the lock so we need to check if we are allowed to
wait for the clock some more.
Wim Taymans [Fri, 20 Sep 2013 10:25:12 +0000 (12:25 +0200)]
rtpjitterbuffer: unlock only once
Wim Taymans [Fri, 20 Sep 2013 09:30:04 +0000 (11:30 +0200)]
tests: check both PTS and DTS
Wim Taymans [Fri, 20 Sep 2013 08:55:03 +0000 (10:55 +0200)]
tests: add unit-test for multiple missing packets
Check if multiple missing packets generate retransmission events and that the
retranmission requests are canceled when the missing packet arrives.
Wim Taymans [Fri, 20 Sep 2013 08:53:29 +0000 (10:53 +0200)]
rtpjitterbuffer: improve flush and shutdown
There is no need to unschedule the timer in flush-start, flush-stop will remove
the timers and unschedule.
Unschedule the current timer before attempting to join the timer thread.
Wim Taymans [Fri, 20 Sep 2013 08:43:53 +0000 (10:43 +0200)]
tests: improve debug
Wim Taymans [Fri, 20 Sep 2013 08:42:27 +0000 (10:42 +0200)]
rtpjitterbuffer: set correct expected time
When we already have a timer for a packet, skip it but don't forget to adjust
the dts to the expected dts of the next packet.
Wim Taymans [Fri, 20 Sep 2013 08:41:59 +0000 (10:41 +0200)]
jitterbuffer: improve debug
Wim Taymans [Thu, 19 Sep 2013 14:55:25 +0000 (16:55 +0200)]
alpha: use POFFSET instead of OFFSET
Use the more correct POFFSET macro to get the offset of a component in its
plane. The offset macro gives the offset of the component relative to the start
of the frame.
Sebastian Dröge [Sat, 21 Sep 2013 16:46:29 +0000 (18:46 +0200)]
goom: Fix MMX assembly compilation with clang
clang does not want or need a clobber list for emms:
error: clobbers must be last on the x87 stack
Patch taken from the FreeBSD ports, provided by
Dan McGregor <dan.mcgregor@usask.ca>
Edward Hervey [Fri, 20 Sep 2013 14:16:57 +0000 (16:16 +0200)]
Automatic update of common submodule
From b613661 to 6b03ba7
Sebastian Dröge [Fri, 20 Sep 2013 08:19:22 +0000 (10:19 +0200)]
matroska-demux: Make sure that subtitle buffers are \0-terminated
https://bugzilla.gnome.org/show_bug.cgi?id=707933
Andoni Morales Alastruey [Tue, 17 Sep 2013 10:17:54 +0000 (12:17 +0200)]
qtmux: handle issues correctly when downstream is not seekable
The streamable property only make sense for fragmented formats.
For regular MP4, when downstream is not seekable we can't rewrite
the headers, so qtmux can only work with fast-start=TRUE, where
the headers are written finishing the file.
For fragmented MP4, when streamable is not seekable and the streamable
property is FALSE, we must enforce streamable=TRUE warning the user
about this change
https://bugzilla.gnome.org/show_bug.cgi?id=707242
Andoni Morales Alastruey [Tue, 17 Sep 2013 10:06:06 +0000 (12:06 +0200)]
qtmux: make "streamable" TRUE as default
The most common use case for fragmented MP4 (Dash and Smooth Streaming)
is producing streamable content (even for VOD). streamable=FALSE would only
be used to generate fragmented MP4 with and index of MOOF's that could
be reproduced without a playlist/manifest
https://bugzilla.gnome.org/show_bug.cgi?id=707242
Andoni Morales Alastruey [Tue, 17 Sep 2013 10:01:30 +0000 (12:01 +0200)]
qtmux: deprecate the streamable property for non-fragmented MP4
The streamable property only makes sense for fragmented MP4.
https://bugzilla.gnome.org/show_bug.cgi?id=707242
Olivier Crête [Thu, 19 Sep 2013 21:08:19 +0000 (17:08 -0400)]
v4l2: Remove commented out line
Tim-Philipp Müller [Thu, 19 Sep 2013 17:43:08 +0000 (18:43 +0100)]
Automatic update of common submodule
From 74a6857 to b613661
Tim-Philipp Müller [Thu, 19 Sep 2013 16:35:27 +0000 (17:35 +0100)]
Automatic update of common submodule
From 098c0d7 to 74a6857
Wim Taymans [Thu, 19 Sep 2013 14:50:44 +0000 (16:50 +0200)]
alpha: don't assume planar formats have just 1 block
Don't assume planar formats have just one memory block with the data but use the
macros to access the right memory block where a component can be found.
Wim Taymans [Thu, 19 Sep 2013 12:14:52 +0000 (14:14 +0200)]
tests: add retransmission jitterbuffer test
Store both DTS and PTS on buffers.
Make a queue for srcpad events.
Activate pads after linking so that we don't get RECONFIGURE events.
Add test for retransmission.
Wim Taymans [Thu, 19 Sep 2013 12:12:18 +0000 (14:12 +0200)]
rtpjitterbuffer: keep delay as a separate variable in timer
Keep a separate delay in the timer so that we still know the original timestamp
of the packet that this timer refers to. We can then place the correct
running-time in the Retransmission event.
Wim Taymans [Thu, 19 Sep 2013 12:08:56 +0000 (14:08 +0200)]
rtpjitterbuffer: fix writability of properties
Sebastian Dröge [Thu, 19 Sep 2013 09:34:57 +0000 (11:34 +0200)]
Back to development
Sebastian Dröge [Thu, 19 Sep 2013 08:50:23 +0000 (10:50 +0200)]
Release 1.1.90
Sebastian Dröge [Thu, 19 Sep 2013 08:21:42 +0000 (10:21 +0200)]
Update .po files
Sebastian Dröge [Thu, 19 Sep 2013 07:45:18 +0000 (09:45 +0200)]
po: Update translations
Olivier Crête [Wed, 11 Sep 2013 18:27:02 +0000 (14:27 -0400)]
v4l2bufferpool: dmabuf is not a singleton anymore
https://bugzilla.gnome.org/show_bug.cgi?id=707793
Thiago Santos [Mon, 16 Sep 2013 16:53:45 +0000 (13:53 -0300)]
souphttpsrc: do not do http requests in READY
HEAD requests to discover if the server is seekable shouldn't be done in
READY as it might lock the main thread that is doing the state change.
https://bugzilla.gnome.org/show_bug.cgi?id=705371
Wim Taymans [Wed, 18 Sep 2013 14:32:28 +0000 (16:32 +0200)]
rtpjitterbuffer: reevaluate the current timer after timeout
When we trigger the timeout logic of a timer, reevaluate it because it is
possible that it still has the lowest timeout.
Wim Taymans [Wed, 18 Sep 2013 14:31:26 +0000 (16:31 +0200)]
rtpjitterbuffer: don't update time when unscheduled
Don't try to estimate the current time when we got unscheduled.
Wim Taymans [Wed, 18 Sep 2013 14:29:37 +0000 (16:29 +0200)]
rtpjitterbuffer: init packet spacing on first buffer
Already init the packet spacing variables on the first buffer so that we can
calculate the spacing on the second buffer already.
Wim Taymans [Wed, 18 Sep 2013 13:08:45 +0000 (15:08 +0200)]
tests: fix comments
Wim Taymans [Wed, 18 Sep 2013 12:57:09 +0000 (14:57 +0200)]
rtpjitterbuffer: push the lost event from the timer thread
Instead of pushing the lost event from the chain function, schedule a timeout
that will push the lost event from the timer thread. This avoid blocking the
upstream thread while we push and sync the event.
Wim Taymans [Wed, 18 Sep 2013 12:23:55 +0000 (14:23 +0200)]
rtpjitterbuffer: add another test
The test is modified slightly because the late lost packets are only
generated now when a large gap is received.
Wim Taymans [Wed, 18 Sep 2013 12:12:47 +0000 (14:12 +0200)]
rtpjitterbuffer: round gap duration to multiple of duration
Make sure the gap duration in the lost event is a multiple of the packet
duration.
Enable another test.
Wim Taymans [Wed, 18 Sep 2013 10:29:38 +0000 (12:29 +0200)]
rtpjitterbuffer: keep track of duration
Keep track of the estimated duration of missing packets and use it in the lost
event.
Enable another unit test
Wim Taymans [Wed, 18 Sep 2013 09:59:28 +0000 (11:59 +0200)]
rtpjitterbuffer: handle large gaps with one lost event
When we have a large number of missing packets, generate one lost event for all
the packets that have no chance of being pushed out in time.
Fix and activate unit test for large gaps.
Wim Taymans [Wed, 18 Sep 2013 09:56:38 +0000 (11:56 +0200)]
rtpjitterbuffer: refactor lost event sending
Also make sure we only increment the expected seqnum and last
output timestamp.
Wim Taymans [Tue, 17 Sep 2013 21:21:09 +0000 (23:21 +0200)]
jitterbuffer: refactor timeout triggers
Wim Taymans [Tue, 17 Sep 2013 21:03:45 +0000 (23:03 +0200)]
jitterbuffer: simplify the timeout code
Keep track of the current time in the timeout loop.
Loop over all timers and trigger all the expired ones, we can do this in the
same loop that selects the new best timer.