Wim Taymans [Tue, 10 Dec 2013 10:04:06 +0000 (11:04 +0100)]
rtpjitterbuffer: detect -1 seqnum
Keep the seqnum as a full guint so that we can check for -1 entries and
deal with them correctly.
Immediately try to push -1 seqnum.
Wim Taymans [Tue, 10 Dec 2013 10:01:03 +0000 (11:01 +0100)]
rtpjitterbuffer: reorganize jitterbuffer items
Keep the oldest item at the head and the newest items on the tail. This
makes it easier to deal with -1 seqnums.
Wim Taymans [Mon, 9 Dec 2013 22:34:10 +0000 (23:34 +0100)]
jitterbuffer: correctly check for invalid values
Check for -1 on the guint from the buffer item instead of on the guint16
or guint32.
Also insert -1 seqnum at the head of the jitterbuffer.
Alessandro Decina [Sun, 8 Dec 2013 15:49:55 +0000 (16:49 +0100)]
osxvideosink: fix segfault when dealing with padded frames
Fixes crashes with vtdec ! osxvideosink where VideoToolbox outputs padded UYVY
Sebastian Dröge [Thu, 5 Dec 2013 11:15:29 +0000 (12:15 +0100)]
mulawdec: Require caps to be set before accepting any data
Sebastian Dröge [Thu, 5 Dec 2013 11:15:19 +0000 (12:15 +0100)]
wavpackdec: Require caps to be set before accepting any data
Sebastian Dröge [Thu, 5 Dec 2013 11:13:33 +0000 (12:13 +0100)]
speexdec: Require caps to be set before accepting any data
Sebastian Dröge [Thu, 5 Dec 2013 11:13:10 +0000 (12:13 +0100)]
flacdec: Require caps to be set before accepting any data
Sebastian Dröge [Thu, 5 Dec 2013 10:42:15 +0000 (11:42 +0100)]
vpx: Use new gst_video_decoder_set_needs_format() API
Olivier Crête [Wed, 4 Dec 2013 21:23:43 +0000 (16:23 -0500)]
pulsesink: Free device_info in accepts caps
https://bugzilla.gnome.org/show_bug.cgi?id=719811
Sebastian Dröge [Wed, 4 Dec 2013 20:57:48 +0000 (21:57 +0100)]
rtptheorapay: Don't send headers twice if we got them from the caps already
Sebastian Dröge [Wed, 4 Dec 2013 20:57:04 +0000 (21:57 +0100)]
rtptheorapay: Don't leak config data when receiving a second CAPS event
Sebastian Dröge [Wed, 4 Dec 2013 20:55:53 +0000 (21:55 +0100)]
rtpvorbispay: Don't send headers twice if we got them from the caps already
Sebastian Dröge [Wed, 4 Dec 2013 20:54:16 +0000 (21:54 +0100)]
rtpvorbispay: Don't leak config data when receiving a second CAPS event
Sebastian Dröge [Wed, 4 Dec 2013 20:17:03 +0000 (21:17 +0100)]
rtpstreamdepay: Add RFC4571 RTP stream depayloading element
https://bugzilla.gnome.org/show_bug.cgi?id=719829
Sebastian Dröge [Wed, 4 Dec 2013 09:12:46 +0000 (10:12 +0100)]
rtpstreampay: Add RFC4571 RTP stream payloading element
https://bugzilla.gnome.org/show_bug.cgi?id=719829
Thiago Santos [Tue, 3 Dec 2013 18:08:25 +0000 (15:08 -0300)]
qtdemux: improve fragment-start tracking
Some buffers can have multiple moov atoms inside and the strategy
of using the gst_adapter_prev_pts timestamp to get the base timestamp
for the media of the fragment would fail as it would reuse the same
base timestamp for all moofs in the buffer instead of accumulating
the durations for all of them.
Heres a better explanation of the issue:
qtdemux receives a buffer where PTS(buf) = X
buf -> moofA | moofB | moofC
The problem was that PTS(buf) was used as the base timestamp for
all 3 moofs, causing all buffers to be X based. In this case we want
only moofA to be X based as it is what the PTS on buf means, and the
other moofB and moofC just use the accumulated timestamp from the
previous moofs durations.
To solve this, this patch uses gst_adapter_prev_pts distance
result, this allows qtdemux to calculate if it should use the
resulting pts or just accumulate the samples as it can identify
if the moofs belong to the same upstream buffer or not.
https://bugzilla.gnome.org/show_bug.cgi?id=719783
Julien Isorce [Thu, 21 Nov 2013 12:29:28 +0000 (12:29 +0000)]
v4l2bufferpool: add support for multi-planar V4l2 API in DMABUF mode
Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=712754
Julien Isorce [Tue, 19 Nov 2013 17:16:27 +0000 (17:16 +0000)]
v4l2: refactor by emulating one v4l2_plane in non-MPLANE mode
so that the buffer informations can be retrieved the same way
in both MPLANE and non-MPLANE mode.
Here "emulating" means "manually fill in the plane".
Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=712754
Julien Isorce [Wed, 13 Nov 2013 12:05:40 +0000 (12:05 +0000)]
v4l2: add support for multi-planar V4L2 API
This api is in linux kernel since version 2.6.39,
and present in all version 3.
The commit that adds the API in master branch of the
linux kernel source is:
https://github.com/torvalds/linux/commit/
f8f3914cf922f5f9e1d60e9e10f6fb92742907ad
v4l2 doc: "Some devices require data for each input
or output video frame to be placed in discontiguous
memory buffers"
There are newer structures 'struct v4l2_pix_format_mplane'
and 'struct v4l2_plane'.
So the pixel format is not setup with the same API when using
multi-planar.
Also for gst-v4l2, one of the difference is that in GstV4l2Meta
there are now one mem pointer for each maped plane.
When not using multi-planar, this commit takes care of keeping
the same code path than previously. So that the 2 cases are
in two different blocks triggered from V4L2_TYPE_IS_MULTIPLANAR.
Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=712754
Wim Taymans [Wed, 4 Dec 2013 08:12:07 +0000 (09:12 +0100)]
audioparsers: don't leak template caps
Wim Taymans [Tue, 3 Dec 2013 20:41:28 +0000 (21:41 +0100)]
audioparsers: use ACCEPT_INTERSECT flag
The parser can accept input that is not completely specified. Use the
ACCEPT_INTERSECT flag on the sinkpad to tweak the acceptcaps function to
check for intersection only. This allows us to proxy downstream
constraints while still allowing non-subset caps as input.
We can then also remove the appended template caps workaround.
Make a unit-test to check the new feature.
This reverts commit
26040ee38cb9e7c42f3d9a0282b3e5cace7ca42d
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=705024
Wim Taymans [Tue, 3 Dec 2013 20:36:54 +0000 (21:36 +0100)]
audioparsers: remove fields from filter
We need to remove the fields from the filter when we can convert
between them.
Wim Taymans [Tue, 3 Dec 2013 20:29:13 +0000 (21:29 +0100)]
audioparsers: refactor code to remove caps fields
Tim-Philipp Müller [Mon, 2 Dec 2013 00:10:43 +0000 (00:10 +0000)]
deinterlace: microoptimisation: avoid some unnecessary GValue copies
Tim-Philipp Müller [Sun, 1 Dec 2013 23:32:20 +0000 (23:32 +0000)]
deinterlace: fix off-by-one crash when downstream caps contain a list of framerates
https://bugzilla.gnome.org/show_bug.cgi?id=719544
Thiago Santos [Fri, 29 Nov 2013 14:26:05 +0000 (11:26 -0300)]
qtdemux: Use the timestamp of the moof as the base fragment start
In SmoothStreaming fragmented scenario, the timestamps are calculated
starting from the fragment buffer timestamp. When there is a not-linked
return from downstream, qtdemux will return upstream and will keep the
non-pushed data into its adapter.
On a new fragment buffer pushed to qtdemux, the new buffer timestamp
would overwrite the previous one that should be used on the still
to be pushed buffers. Because of this, this patch will also
update the fragment_start timestamp from the adapter last pts
to make sure the moof and timestamps are in sync and will result
in correct timestamps for all fragments.
Thiago Santos [Fri, 15 Nov 2013 11:54:07 +0000 (08:54 -0300)]
qtdemux: avoid re-reading the same moov and entering into loop
In the scenario of "mdat | moov (with fragmented artifacts)" qtdemux
could read the moov again after the mdat because it was considering the
media as a fragmented one.
To avoid this loop this patch makes it store
the last processed moov_offset to avoid parsing it again.
And it also checks if there are any samples to play before
resturning to the mdat, so that it knows there is new data to be played.
https://bugzilla.gnome.org/show_bug.cgi?id=691570
Thiago Santos [Fri, 15 Nov 2013 03:52:53 +0000 (00:52 -0300)]
qtdemux: do not free streams if they were not created locally
When parsing a trak only free streams on failures if those streams
were created locally. They could have been created from a previous
fragment, in this case we they have valid info from the other fragment.
Including pads.
https://bugzilla.gnome.org/show_bug.cgi?id=691570
Sebastian Dröge [Fri, 29 Nov 2013 18:57:46 +0000 (19:57 +0100)]
videomixer: Simplify NV12/21 blending code macros
Sebastian Dröge [Fri, 29 Nov 2013 18:50:24 +0000 (19:50 +0100)]
videomixer: Fix segfault when filling the background of a UYVY frame
https://bugzilla.gnome.org/show_bug.cgi?id=712401
Tim-Philipp Müller [Fri, 29 Nov 2013 09:21:52 +0000 (09:21 +0000)]
qtdemux: fix compilation with gst debuging disabled
qtdemux.c:9452:1: error: label at end of compound statement
Jonas Holmberg [Wed, 27 Nov 2013 16:02:00 +0000 (17:02 +0100)]
rtph264pay: Map inbuffer once only
Do not call gst_buffer_extract() twice since each call will map and
unmap the biffer.
https://bugzilla.gnome.org/show_bug.cgi?id=719434
Nicolas Dufresne [Thu, 28 Nov 2013 16:58:42 +0000 (11:58 -0500)]
videoflip: Add unit test for the 'automatic' method
These new tests send a tag event before seding the buffer. Tested case are an
empty tag list, a tag list with orientation-180 set and an invalid orientation value.
https://bugzilla.gnome.org/show_bug.cgi?id=719497
Tim-Philipp Müller [Thu, 28 Nov 2013 16:09:04 +0000 (16:09 +0000)]
videoflip: don't crash on tag events without orientation tag
Would crash in g_free() trying to free an uninitialised pointer.
https://bugzilla.gnome.org/show_bug.cgi?id=719497
Wim Taymans [Thu, 28 Nov 2013 15:50:42 +0000 (16:50 +0100)]
rtpsession: don't unref buffer twice
Cleaning the packet info will already unref the buffer.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=715078
Jan Schmidt [Thu, 28 Nov 2013 11:35:02 +0000 (22:35 +1100)]
qtdemux: Add HydrogenAudio ReplayGain tags
Identical to the itunes (tm) version, but labelled with
org.hydrogenaudio.replaygain as the producer.
Mathieu Duponchelle [Wed, 27 Nov 2013 15:15:12 +0000 (16:15 +0100)]
videomixer: explicitly fail when alpha information would have been lost.
Nicolas Dufresne [Wed, 29 May 2013 20:06:05 +0000 (16:06 -0400)]
gitignore: Updated to ignore *.swp and .dirstamp
Sebastian Dröge [Tue, 26 Nov 2013 10:17:42 +0000 (11:17 +0100)]
matroska-demux: Allow a bit more variation when detecting common framerates
Instead of +/- 1ns we allow 2ns now. Due to rounding errors there are
some Matroska files out there with 33.333331ms per frame for 30fps.
Sebastian Dröge [Tue, 26 Nov 2013 09:20:31 +0000 (10:20 +0100)]
matroska-demux: Use gst_util_double_to_fraction() instead of GValue magic
Nicolas Dufresne [Mon, 25 Nov 2013 19:03:21 +0000 (14:03 -0500)]
videoflip: Set default method at contruction
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712333
Nicolas Dufresne [Wed, 29 May 2013 19:57:09 +0000 (15:57 -0400)]
v4l2object: Use space instead of tabs
https://bugzilla.gnome.org/show_bug.cgi?id=712754
Nicolas Dufresne [Wed, 29 May 2013 19:44:31 +0000 (15:44 -0400)]
v4l2object: Fix header indentation so it's readable again
It's unfortunate to have to do this, but with the mix of tabs and space, plus all the random
indentation this header has become very hard to read.
https://bugzilla.gnome.org/show_bug.cgi?id=712754
Wim Taymans [Mon, 25 Nov 2013 16:38:06 +0000 (17:38 +0100)]
check: fix jitterbuffer check
Don't advance the clock to 240ms too early.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=710013
Thiago Santos [Mon, 25 Nov 2013 14:45:33 +0000 (11:45 -0300)]
jpegdec: deprecate max-errors
The property wasn't use internally, let the base class handle the
number of errors to tolerate.
Wim Taymans [Mon, 25 Nov 2013 14:49:07 +0000 (15:49 +0100)]
rtpjitterbuffer: improve clear-pt-map handling
Don't reset the expected output seqnum when clearing the pt map because this
could stall the jitterbuffer forever.
Add a unit test for this.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=709800
Thiago Santos [Tue, 29 Oct 2013 00:33:22 +0000 (21:33 -0300)]
jpegdec: let the base class decide when to return an error
The base videodecoder class has an error counting feature to tolerate
a few errors before posting an error message. So don't force the
error and let the base class decide when it should happen
https://bugzilla.gnome.org/show_bug.cgi?id=710762
Thiago Santos [Tue, 29 Oct 2013 00:28:33 +0000 (21:28 -0300)]
jpegdec: Add data skipping on input
Add missing bytes skipping when bad input is received.
https://bugzilla.gnome.org/show_bug.cgi?id=710762
Jan Schmidt [Mon, 25 Nov 2013 01:13:43 +0000 (12:13 +1100)]
qtdemux: Discard 2 byte subpicture packets
As for text subtitles and as suggested in #712643, throw
away the 2 byte terminator packets that some encoders insert.
This will make things better when remuxing and causes generation
of gap events.
Tim-Philipp Müller [Mon, 25 Nov 2013 00:34:21 +0000 (00:34 +0000)]
rtpjitterbuffer: fix wake-up when new buffers come in after running empty
Spotted by 'gratias' on IRC. Probably introduced in recent refactoring.
https://bugzilla.gnome.org/show_bug.cgi?id=715039
Mark Nauwelaerts [Sat, 23 Nov 2013 11:15:40 +0000 (12:15 +0100)]
matroskamux: correctly handle negative relative timestamps
... rather than scaling these as unsigned.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712744
Based on patch by Krzysztof Kotlenga <pocek@users.sf.net>
MathieuDuponchelle [Sat, 14 Sep 2013 01:27:09 +0000 (03:27 +0200)]
videomixer2: Merge tag events to send them in collected.
Otherwise there were race conditions where we would send tags
on a flushing srcpad.
We have a test for that in GES, but this should be tested
systematically with harness in the future as I believe it
is useful for exactly that kind of cases.
https://bugzilla.gnome.org/show_bug.cgi?id=708165
Thibault Saunier [Thu, 14 Nov 2013 20:29:50 +0000 (17:29 -0300)]
qtdemux: Use GstVideoInfo helper to create caps for raw video
This way we do not miss mandatory fields in caps.
At the same time use the gst_pb_utils_get_codec_description
helper to get codec description.
https://bugzilla.gnome.org/show_bug.cgi?id=712335
Thibault Saunier [Thu, 14 Nov 2013 19:11:38 +0000 (16:11 -0300)]
matroskademux: Use GstVideoInfo helper to create caps for raw video
This way we do not miss mandatory fields in caps.
At the same time use the gst_pb_utils_get_codec_description helper to
get codec description.
https://bugzilla.gnome.org/show_bug.cgi?id=712328
Thibault Saunier [Wed, 13 Nov 2013 23:18:17 +0000 (20:18 -0300)]
multifilesrc: Implement seeking in case of multiple images
https://bugzilla.gnome.org/show_bug.cgi?id=712254
Wim Taymans [Fri, 22 Nov 2013 11:26:21 +0000 (12:26 +0100)]
rtpjitterbuffer: pass downstream flowreturn to upstream
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712722
Michael Olbrich [Mon, 18 Nov 2013 13:27:48 +0000 (14:27 +0100)]
v4l2: clear cached caps on close
A different device with different caps may be used for the next open.
https://bugzilla.gnome.org/show_bug.cgi?id=712611
Tim-Philipp Müller [Thu, 21 Nov 2013 15:30:34 +0000 (15:30 +0000)]
g_memmove() is deprecated
Just use plain memmove(), g_memmove() is deprecated in
recent GLib versions.
https://bugzilla.gnome.org/show_bug.cgi?id=712811
Wim Taymans [Thu, 21 Nov 2013 10:32:15 +0000 (11:32 +0100)]
rtpvorbisdepay: handle packets > 0xffff
Handle input packet sizes larger than 16 bits in the depayloader.
Remove size restrictions on the payloader.
Wim Taymans [Thu, 21 Nov 2013 10:30:28 +0000 (11:30 +0100)]
rtptheoradepay: handle packets > 0xffff
Reorganize some things in the depayloader so that it can handle packets larger
than 16 bits.
Remove the size restriction on the payloader.
Jan Schmidt [Wed, 20 Nov 2013 15:28:27 +0000 (02:28 +1100)]
isomp4: Handle mp4s subpicture streams better.
Clean up the handling of mp4s streams. Use the generic esds
descriptor function to extract the palette, instead of hard coding
a wrong magic offset.
Add some more size safety checks when parsing ES descriptors, and
replace magic numbers with the descriptive constants that are already
defined.
Enhance dump output for stsd atoms.
Streams from both bug 712643 and historic bug 568278 now both work
correctly.
Fixes: #712643
Jan Schmidt [Wed, 20 Nov 2013 11:08:25 +0000 (22:08 +1100)]
qtdemux: Sort fourcc declarations and remove duplicates
Jan Schmidt [Wed, 20 Nov 2013 10:41:47 +0000 (21:41 +1100)]
qtdemux: Merge all the fourcc headers into one
Remove qtdemux_fourcc.h and ftypcc.h and put it all in fourcc.h
Wim Taymans [Tue, 19 Nov 2013 09:10:51 +0000 (10:10 +0100)]
rtpjitterbuffer: avoid mapping the buffer
Reuse the parsed structure to get the timestamps.
Tim-Philipp Müller [Mon, 18 Nov 2013 17:13:49 +0000 (17:13 +0000)]
rtspsrc: fix 'make check'
Fix generic/states check. Also, g_return_if_fail() is
not for internal state checking.
Tim-Philipp Müller [Mon, 18 Nov 2013 14:44:36 +0000 (14:44 +0000)]
docs: get rid of 'Since: 0.10.x' markers
And some gtk-doc markup fixes.
Tim-Philipp Müller [Sat, 16 Nov 2013 12:15:14 +0000 (12:15 +0000)]
rtpmanager: fix Since markers
Should be next stable release series version
George Kiagiadakis [Fri, 15 Nov 2013 11:48:07 +0000 (13:48 +0200)]
rtpjitterbuffer: Fix stats property field names and documentation
Torrie Fischer [Fri, 15 Nov 2013 14:20:14 +0000 (15:20 +0100)]
gstrtpsession: Implement a number of feedback packet statistics
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711693
Thiago Santos [Wed, 13 Nov 2013 20:11:08 +0000 (17:11 -0300)]
qtdemux: remove math operation from loop
The elst_offset doesn't change inside the loop, so compute it
outside
Stefan Sauer [Thu, 14 Nov 2013 19:54:32 +0000 (20:54 +0100)]
qtmux: fix playback regression
In
ae1150e85cf99d7482933aa6f7e4f012fe45a3ec flipping a condition misaligned the
else branch, where for there condition that was change there is none.
Fixes #712303
Wim Taymans [Thu, 14 Nov 2013 08:20:06 +0000 (09:20 +0100)]
rtpjitterbuffer: rename property to 'stats'
This makes the unit test work.
We can later also add more stats, not specific to retransmission.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711411
Torrie Fischer [Tue, 12 Nov 2013 16:19:25 +0000 (11:19 -0500)]
rtpjitterbuffer: implement rtx statistics
Marc Leeman [Wed, 13 Nov 2013 10:42:21 +0000 (10:42 +0000)]
v4l2object: print FOURCC_FORMAT when enumerating
https://bugzilla.gnome.org/show_bug.cgi?id=712206
Wim Taymans [Wed, 6 Nov 2013 11:40:06 +0000 (12:40 +0100)]
jitterbuffer: advance expected seqnum after dropping
After dropping a buffer, move our expected seqnum
Conflicts:
gst/rtpmanager/gstrtpjitterbuffer.c
Wim Taymans [Mon, 4 Nov 2013 14:46:22 +0000 (15:46 +0100)]
gstpay: only send one caps
Only send one caps in a packet. Two caps can happen when setcaps is called and
the config-interval expires at the same time.
Sebastian Dröge [Wed, 13 Nov 2013 09:23:19 +0000 (10:23 +0100)]
rtspsrc: Use the synced buffer mode in auto mode if a clock provider is in the SDP
Marc Leeman [Fri, 8 Nov 2013 11:09:21 +0000 (11:09 +0000)]
v4l2: init v4l2_buffer to 0x0 before ioctl
https://bugzilla.gnome.org/show_bug.cgi?id=712137
Wim Taymans [Mon, 11 Nov 2013 14:27:18 +0000 (15:27 +0100)]
rtpsession: remove collision reconfigure event
Remove bogus reconfigure event on collision, we don't want to send the event on
the receiving RTP pad and the collision event is now handling this
case.
See https://bugzilla.gnome.org/show_bug.cgi?id=711560
Julien Isorce [Fri, 1 Nov 2013 17:04:28 +0000 (17:04 +0000)]
gstrtpsession: send custom upstream event "GstRTPCollision" on send_rtp_sink pad
See https://bugzilla.gnome.org/show_bug.cgi?id=711560
Wim Taymans [Mon, 11 Nov 2013 13:25:51 +0000 (14:25 +0100)]
check: add rtpsession test
Add a basic rtpsession test to ensure that RR blocks are generated when
multiple SSRC senders are active.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711270
Mark Nauwelaerts [Mon, 11 Nov 2013 12:17:25 +0000 (13:17 +0100)]
ac3parse: correctly handle timestamps when parsing x-private1-ac3
... the way it has always worked fine in a52dec.
George Kiagiadakis [Tue, 5 Nov 2013 08:48:33 +0000 (10:48 +0200)]
rtpjitterbuffer: fix crash when do-retransmission=true and a lot of buffers are lost
The problem here was that the jitterbuffer lock was unlocked to push
the event, but that caused another thread to remove the timer currently
being processed, probably because the amount of rtx events
(and therefore timers) was getting too high. The solution is to
unlock and push the event only after timer processing has finished.
fixes https://bugzilla.gnome.org/show_bug.cgi?id=711131
Per x Johansson [Thu, 24 Oct 2013 11:16:42 +0000 (13:16 +0200)]
matroskademux: Avoid division by zero assert in gst_matroska_demux_search_pos
https://bugzilla.gnome.org/show_bug.cgi?id=711829
Philippe Normand [Fri, 8 Nov 2013 16:59:24 +0000 (17:59 +0100)]
wavenc: generate a non-empty data header
Restore the behavior of the element to the state before commit
db29522a430e44450415ca3676abd1b77ee923d9. A non-empty header is
generated and when the EOS event is received the header is generated
again, this time with the correct size.
https://bugzilla.gnome.org/show_bug.cgi?id=711699
Wim Taymans [Thu, 7 Nov 2013 15:17:16 +0000 (16:17 +0100)]
rtpsource: update receiver stats for sender
An internal sender in a session is also a receiver of its own packets so update
the receiver stats. Other senders in the session will use this info to generate
correct RB blocks in their SR reports.
Wim Taymans [Thu, 7 Nov 2013 15:13:16 +0000 (16:13 +0100)]
rtpsource: refactor receiver stats update
Thiago Santos [Fri, 25 Oct 2013 21:22:00 +0000 (18:22 -0300)]
qtdemux: handle fragmented files with mdat before moofs
Assume a file with atoms in the following order: moov, mdat, moof,
mdat, moof ...
The first moov usually doesn't contain any sample entries atoms (or
they are all set to 0 length), because the real samples are signaled
at the moofs. In push mode, qtdemux parses the moov and then finds the mdat,
but then it has 0 entries and assumes it is EOS.
This patch makes it continue parsing in case it is a fragmented file so that
it might find the moofs and play the media.
https://bugzilla.gnome.org/show_bug.cgi?id=710623
Thiago Santos [Fri, 25 Oct 2013 14:42:37 +0000 (11:42 -0300)]
qtdemux: When using a buffered mdat, store all received data for later use
In push mode, when qtdemux can't use a seek to skip the mdat buffer it has
to buffer it for later use.
The issue is that after parsing the next moov/moof, there might be some
trailing bytes from the next atom in the file. This data was being discarded
along with the already parsed moov/moof and playback would fail to continue
after the contents of this moov/moof are played.
This is particularly bad on fragmented files that have the mdat before the
corresponding moof. So you'd get:
mdat|moof|mdat|moof ...
When a moof was received, it usually came with some extra bytes that would
belong to the next mdat (because upstream doesn't care about atoms alignment).
So those bytes were being discarded and playback would fail.
This patch makes qtdemux store those extra bytes to reuse them later after the
mdat is emptied.
https://bugzilla.gnome.org/show_bug.cgi?id=710623
Sebastian Dröge [Thu, 7 Nov 2013 08:49:55 +0000 (09:49 +0100)]
multiudpsink: Also use the bind-port property if no bind-address was given
Andoni Morales Alastruey [Wed, 6 Nov 2013 23:51:12 +0000 (00:51 +0100)]
osxaudiosink: fix segfault when we can't get the channels layout
Sebastian Dröge [Tue, 5 Nov 2013 16:26:49 +0000 (17:26 +0100)]
rtpvp8pay: Make Picture ID mode configurable and default to no picture ID
Some implementations (linphone) only support no picture at all in the
stream and will fail if one is provided.
https://bugzilla.gnome.org/show_bug.cgi?id=711497
Tim-Philipp Müller [Tue, 5 Nov 2013 11:18:34 +0000 (11:18 +0000)]
Automatic update of common submodule
From 865aa20 to dbedaa0
Paul HENRYS [Tue, 29 Jan 2013 09:51:07 +0000 (10:51 +0100)]
Add call to gst_rtp_h264_pay_clear_sps_pps() when receiving a STREAM_START event
https://bugzilla.gnome.org/show_bug.cgi?id=692787
Rico Tzschichholz [Sat, 2 Nov 2013 21:50:47 +0000 (22:50 +0100)]
rtsp: Add missing gio-2.0 deps and includes
Sebastian Dröge [Fri, 1 Nov 2013 17:31:36 +0000 (18:31 +0100)]
audioiirfilter: Fix initialization coefficient handling
Broke unit test.
Aleix Conchillo Flaque [Thu, 31 Oct 2013 21:05:43 +0000 (14:05 -0700)]
rtspsrc: allow setting tls certificate validation flags
Added a new property "tls-validation-flags". If the url transport is
TLS, the validation flags will be set to the rtsp connection.
https://bugzilla.gnome.org/show_bug.cgi?id=711230
Sebastian Dröge [Thu, 31 Oct 2013 21:43:49 +0000 (22:43 +0100)]
audioiirfilter: Don't crash if no filter coefficients are provided
...and by default use a identity filter.
https://bugzilla.gnome.org/show_bug.cgi?id=710215
Sebastian Dröge [Thu, 31 Oct 2013 18:15:12 +0000 (19:15 +0100)]
wavpackenc: Fix writing of MD5 sums and other metadata blocks
These don't have the FINAL_BLOCK flag set.