Wim Taymans [Tue, 31 Dec 2013 11:31:25 +0000 (12:31 +0100)]
rtpbin: add support for AUX sender and receiver
AUX elements are elements that can be inserted into the rtpbin
pipeline right before or after 1 or more session elements.
The AUX elements are essential for implementing functionality such
as error correction (FEC) and retransmission (RTX).
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711087
Wim Taymans [Tue, 31 Dec 2013 11:22:39 +0000 (12:22 +0100)]
tests: add decoder test
Wim Taymans [Mon, 30 Dec 2013 16:36:42 +0000 (17:36 +0100)]
rtpbin: make request_element method internally
We can use the same method to create encoder and decoder elements, they
are just internal elements that we create.
Stéphane Cerveau [Tue, 31 Dec 2013 09:25:28 +0000 (10:25 +0100)]
wavparse: Skip id3 tag
Skip id3 tag during wav parse.
https://bugzilla.gnome.org/show_bug.cgi?id=721241
Sebastian Dröge [Tue, 31 Dec 2013 09:10:05 +0000 (10:10 +0100)]
osx: Make OSX version checks more consistent
And especially also consider update versions, e.g. 10.5 with updates
will be 1051 or similar and thus bigger than MAC_OS_X_VERSION_10_5 but
still won't have the API we want to use.
Jeremy Huddleston [Tue, 31 Dec 2013 09:07:22 +0000 (10:07 +0100)]
osxvideosink: Fix build on updated OS X Leopard
https://bugzilla.gnome.org/show_bug.cgi?id=721245
Edward Hervey [Mon, 30 Dec 2013 16:23:22 +0000 (17:23 +0100)]
avimux: Add missing break
I guess no-one noticed we no longer could mux WMV3 ...
COVERITY CID 1139759
Edward Hervey [Mon, 30 Dec 2013 16:20:37 +0000 (17:20 +0100)]
rtpvrawpay: Add missing break
COVERITY CID 1139762
Wim Taymans [Mon, 30 Dec 2013 16:00:45 +0000 (17:00 +0100)]
rtpsession: internal-ssrc is no longer deprecated
Wim Taymans [Mon, 30 Dec 2013 15:59:20 +0000 (16:59 +0100)]
rtpbin: add Since tags
Wim Taymans [Mon, 30 Dec 2013 15:52:28 +0000 (16:52 +0100)]
rtpbin: add signal for new jitterbuffer
Emit a signal when a new jitterbuffer is created so that the app can
have a chance to configure it.
Wim Taymans [Mon, 30 Dec 2013 15:28:57 +0000 (16:28 +0100)]
rtpbin: handle multiple encoder instances
Keep track of elements that are added to multiple sessions and make sure
we only add them to the rtpbin once and that we clean them when no
session refers to them anymore.
Wim Taymans [Mon, 30 Dec 2013 14:16:09 +0000 (15:16 +0100)]
tests: add unit test for encoder element
Wim Taymans [Mon, 30 Dec 2013 14:15:43 +0000 (15:15 +0100)]
rtpbin: fix memory leaks
Wim Taymans [Mon, 30 Dec 2013 14:03:34 +0000 (15:03 +0100)]
tests: fix leak
Wim Taymans [Mon, 30 Dec 2013 14:00:50 +0000 (15:00 +0100)]
rtpbin: expect the pads on the encoders
Don't use request pads for the encoder elements, the signal handler
should request the pads and make sure they are available with the right
name.
Wim Taymans [Mon, 30 Dec 2013 13:56:07 +0000 (14:56 +0100)]
rtpbin: request-rtp-encoder are no action signals
The request-rtp-encoder signals are not action signals so mark them
correctly and use an accumulator to collect the result value.
Stefan Sauer [Mon, 30 Dec 2013 13:36:45 +0000 (14:36 +0100)]
wavparse: emit midi-base-note tag from data in 'smpl' chunk
Add parsing of the 'smpl' chunk. Right now we only grab the midi-base-note and
emit it as a tag.
George Kiagiadakis [Thu, 26 Dec 2013 10:05:19 +0000 (12:05 +0200)]
gstrtpsession: suggest upstream to use the new "internal-ssrc" after a collision
When a collision is found on the internal ssrc, we have to change it.
Ideally, we want also the payloader upstream to follow this change and use
the new internal ssrc. Ideally we want this condition to be always met:
if there is one payloader sending on this session, its ssrc should match the
internal ssrc.
George Kiagiadakis [Thu, 26 Dec 2013 09:04:29 +0000 (11:04 +0200)]
rtpsession: allow setting internal-ssrc again
Edward Hervey [Mon, 30 Dec 2013 12:31:45 +0000 (13:31 +0100)]
y4mencode: Remove dead code
set/get property isn't used
Edward Hervey [Mon, 30 Dec 2013 12:30:24 +0000 (13:30 +0100)]
rtpqcelpdepay: Remove uneeded variable
Aleix Conchillo Flaqué [Thu, 5 Dec 2013 23:53:52 +0000 (15:53 -0800)]
rtpbin: allow dynamic RTP/RTCP encoders/decoders
* gst/rtpmanager/gstrtpbin.[ch]: four new action signals have been
added (request-rtp-encoder, request-rtp-decoder, request-rtcp-encoder
and request-rtcp-decoder). The user will be able to provide encoders
or decoders dynamically. The encoders must follow the srtpenc API and
the decoders the srtpdec API. Having separate signals for RTP and RTCP
allows the user to use different encoders/decoders or provide the same
one (e.g. that would be the case for srtpenc).
Also, rtpbin now allows application/x-srtp in its pads.
https://bugzilla.gnome.org/show_bug.cgi?id=719938
Wim Taymans [Fri, 27 Dec 2013 15:51:32 +0000 (16:51 +0100)]
rtpjitterbuffer: dynamically recalculate RTX parameters
Use the round-trip-time and average jitter to dynamically calculate the
retransmission interval and expected packet arrival time.
Based on patches from Torrie Fischer <torrie.fischer@collabora.co.uk>
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711412
Wim Taymans [Fri, 27 Dec 2013 15:50:52 +0000 (16:50 +0100)]
rtpjitterbuffer: calculate average jitter
Wim Taymans [Fri, 27 Dec 2013 15:48:48 +0000 (16:48 +0100)]
rtpsession: use RTT from the Retransmission event
Place the estimated RTT in the Retransmission event and let the session
manager use that instead of the hardcoded value.
Wim Taymans [Fri, 27 Dec 2013 14:57:39 +0000 (15:57 +0100)]
jitterbuffer: take more accurate running-time for NACK
Don't use the current time calculated from the tmieout loop for when we
last scheduled the NACK because it might be unscheduled because of a max
packet misorder and then we don't accurately calculate the current time.
Instead, take the current element running time using the clock.
Sebastian Dröge [Mon, 30 Dec 2013 10:06:38 +0000 (11:06 +0100)]
wavpackdec: Send a CAPS event in the unit test
Thiago Santos [Fri, 27 Dec 2013 05:14:02 +0000 (02:14 -0300)]
qtdemux: improve mss_mode/fragmented special handling
Make it clear what should be handled purely by mss mode:
1) Expose the streams on the first moof as there are no moov atoms
2) Properly cleanup streams on flushes
Add a note about the meaning of upstream_newsegment and mss_mode
for future reference.
Make all other special fragment handling shared for both dash
and mss streams.
Thiago Santos [Thu, 12 Dec 2013 13:50:27 +0000 (10:50 -0300)]
qtdemux: drain the adapter before pushing EOS
In a fragmented scenario, qtdemux is operating in push mode
and it gets a fragmented buffer. While processing its data
downstream gets unlinked (or a input-selector changes its
active pad and returns not-linked). Qtdemux stops processing
this fragment and returns not-linked upstream, leaving the
remaining data in its adapter.
When it gets an EOS it should make sure that all the data it
had received is pushed before pushing EOS.
Reynaldo H. Verdejo Pinochet [Fri, 27 Dec 2013 02:21:47 +0000 (23:21 -0300)]
shout2send: drop IP only requirement for _set_host()
libshout2 (we require > 2.0 at config time) supports
both IP and hostname for _set_host(). Dropped an
outdated FIXME regarding this limitation, adjusted
some comments and changed the param blurb to reflect
this too.
Reynaldo H. Verdejo Pinochet [Fri, 27 Dec 2013 00:43:34 +0000 (21:43 -0300)]
shout2send: Retarget FIXME to 2.0
Wim Taymans [Thu, 26 Dec 2013 10:21:36 +0000 (11:21 +0100)]
rtspsrc: use aggregate control for PLAY/PAUSE/TEARDOWN
Use the aggregate control instead of the original request url to perform
PAUSE/PLAY and TEARDOWN.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=721003
Sebastian Dröge [Tue, 24 Dec 2013 13:40:25 +0000 (14:40 +0100)]
rndbuffersize: Proxy CAPS, ALLOCATION, SCHEDULING and srcpad events properly
Nicola Murino [Mon, 23 Dec 2013 23:43:39 +0000 (00:43 +0100)]
matroskamux: adpcm max block align is 8192
Brendan Long [Mon, 23 Dec 2013 18:23:27 +0000 (12:23 -0600)]
vp9dec: Require vpx >= 1.3.0 for building vp9dec and vp9enc
Previous versions did not have a stable bitstream for VP9.
https://bugzilla.gnome.org/show_bug.cgi?id=720986
Sebastian Dröge [Mon, 23 Dec 2013 14:46:48 +0000 (15:46 +0100)]
matroskamux: Use correct codec id for ADPCM/DVI
Sebastian Dröge [Mon, 23 Dec 2013 14:44:30 +0000 (15:44 +0100)]
matroskademux: Check for the correct size of codec_data in the ACM case
Nicola Murino [Sat, 14 Jan 2012 18:58:17 +0000 (19:58 +0100)]
matroskamux: basic adpcm support
https://bugzilla.gnome.org/show_bug.cgi?id=664339
Sebastian Dröge [Fri, 20 Dec 2013 10:45:38 +0000 (11:45 +0100)]
qtdemux: Fix calcuation of descriptor length
https://bugzilla.gnome.org/show_bug.cgi?id=720813
Tim-Philipp Müller [Sun, 22 Dec 2013 22:33:39 +0000 (22:33 +0000)]
Automatic update of common submodule
From dbedaa0 to d48bed3
Tim-Philipp Müller [Sun, 22 Dec 2013 21:56:03 +0000 (21:56 +0000)]
po: set gettext domain in Makevars so we don't have to patch the generated Makefile.in.in
https://bugzilla.gnome.org/show_bug.cgi?id=705455
Tim-Philipp Müller [Thu, 19 Dec 2013 16:50:10 +0000 (16:50 +0000)]
udpsrc: on receive error only unmap and unref buffer if one was alloced and mapped
coverity CID 1139866.
Tim-Philipp Müller [Thu, 19 Dec 2013 12:47:22 +0000 (12:47 +0000)]
multiudpsink: fix misleading comment
Those are not allocated on the stack.
Sebastian Dröge [Tue, 17 Dec 2013 17:28:25 +0000 (18:28 +0100)]
vpx: Mark VP9 support as non-experimental
There was a libvpx release with VP9 support now and the bitstream
is frozen too.
Todd Agulnick [Mon, 16 Dec 2013 05:04:11 +0000 (21:04 -0800)]
Some compiler warning fixes to satisfy XCode compiler
https://bugzilla.gnome.org/show_bug.cgi?id=720513
Sebastian Dröge [Mon, 16 Dec 2013 15:17:07 +0000 (16:17 +0100)]
id3v2mux: Set picture type in the APIC frames
Sebastian Dröge [Mon, 16 Dec 2013 15:14:52 +0000 (16:14 +0100)]
id3v2mux: Set image-description from the info struct, not the caps
Sebastian Dröge [Mon, 16 Dec 2013 09:02:37 +0000 (10:02 +0100)]
wavpackparse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 09:00:37 +0000 (10:00 +0100)]
sbcparse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 08:58:31 +0000 (09:58 +0100)]
flacparse: Post AUDIO_CODEC tag
https://bugzilla.gnome.org/show_bug.cgi?id=720512
Sebastian Dröge [Mon, 16 Dec 2013 08:56:29 +0000 (09:56 +0100)]
dcaparse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 08:54:38 +0000 (09:54 +0100)]
amrparse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 08:49:48 +0000 (09:49 +0100)]
ac3parse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 08:46:16 +0000 (09:46 +0100)]
aacparse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 08:41:14 +0000 (09:41 +0100)]
mpegaudioparse: Use pbutils functionality to create the AUDIO_CODEC tag
Olivier Crête [Fri, 13 Dec 2013 22:36:36 +0000 (17:36 -0500)]
rtpsession: Add error message if the app tries to set the internal-ssrc
Olivier Crête [Fri, 13 Dec 2013 21:08:35 +0000 (16:08 -0500)]
rtpsession: Only count nacks when a nack packet is received
Not when any RTCP feedback packet is.
Olivier Crête [Fri, 13 Dec 2013 04:22:41 +0000 (23:22 -0500)]
tests: Initialize segment in rtpcollision test
Olivier Crête [Fri, 13 Dec 2013 20:57:36 +0000 (15:57 -0500)]
rtpsession: Process PSFB FIR requests which lack the media ssrc
According to RFC 5104 section 4.3.1.2, RTCP PSFB FIR message SHALL
have a media_ssrc field set to 0. The actual media ssrc is in the FCI.
So in that case, we ignore the retained feedback and just let it through
to the rtp_session_process_fir() function which will check for the actual
SSRC inside the FCI.
Fixes a regression introduced by commit
57c27ec3
George Kiagiadakis [Thu, 14 Nov 2013 14:19:29 +0000 (16:19 +0200)]
rtpsession: fix rb blocks disappearing after the first rtcp cycle with multiple senders
Previously, when the session had multiple internal sender SSRCs, it would
issue SR reports with RB blocks only on the first RTCP timeout and afterwards
SR reports would be sent empty. This was because the "generation" number
in RTPSource would increase more than once during the same cycle and afterwards
it would always be greater than the session's generation, which would cause
it to be skipped from being included in RBs.
This commit fixes this problem by:
1) Increasing the RTPSource generation only at the end of each cycle,
which essentially fixes the problem but only when the internal senders
are less than GST_RTCP_MAX_RB_COUNT.
2) Keeping for each RTPSource a set of SSRCs which stores which SSRC's
SR the given RTPSource has been reported in, which also fixes the problem
when the internal senders are more than GST_RTCP_MAX_RB_COUNT. This is
necessary because of the fact that any RTPSource is marked as reported
in itself's SR and makes it impossible to know if it has been reported
in other SRs too or not, and which.
George Kiagiadakis [Thu, 14 Nov 2013 14:23:35 +0000 (16:23 +0200)]
tests/check: add an rtpsession unit test to verify all RBs are included in all SRs, roundrobin
This test checks that when we have multiple internal sender sources
in rtpsession, SRs contain RBs for every other sender source, and that
they are included roundrobin when they exceed ST_RTCP_MAX_RB_COUNT,
which is the max number of RBs that can fit in a SR.
Wim Taymans [Thu, 12 Dec 2013 15:01:10 +0000 (16:01 +0100)]
docs: improve docs
Julien Isorce [Tue, 5 Nov 2013 18:03:48 +0000 (18:03 +0000)]
doc: add design-rtpcollision.txt that explains when GstRTPCollision is created
It also talks about "BYE only the corresponding source, not the whole session."
Julien Isorce [Tue, 5 Nov 2013 12:31:54 +0000 (12:31 +0000)]
tests/check: improve rtpcollision::test_master_ssrc_collision to ensure that a collision does not BYE the whole session
Conflicts:
tests/check/elements/rtpcollision.c
Julien Isorce [Fri, 1 Nov 2013 17:07:57 +0000 (17:07 +0000)]
tests/check: add rtpcollision::test_master_ssrc_collision unit test
It checks the payloader changes its ssrc when collision happens
George Kiagiadakis [Thu, 12 Dec 2013 09:38:43 +0000 (10:38 +0100)]
rtpsession: keep extra stats for scheduling BYE
Keep an extra stats structure for scheduling the BYE packets. When we
decide to schedule BYE, make a copy of the current stats into the
bye_stats. Then while we schedule the BYE, update and use only the
bye_stats. When we finished scheduling the BYE packet, we use the
regular stats again.
George Kiagiadakis [Thu, 12 Dec 2013 09:34:38 +0000 (10:34 +0100)]
rtpsession: when we schedule BYE, only deal with BYE sources
When we are doing the RTCP timeout to schedule BYE packets, don't
generate RTCP for all sources but only for the sources marked as BYE.
George Kiagiadakis [Thu, 12 Dec 2013 09:32:48 +0000 (10:32 +0100)]
rtpsession: reset state after scheduling BYE
After we do RTCP, we are not scheduling bye anymore.
George Kiagiadakis [Thu, 12 Dec 2013 09:31:38 +0000 (10:31 +0100)]
rtpsession: also count NACKS when no signal was pending
George Kiagiadakis [Thu, 12 Dec 2013 09:09:25 +0000 (10:09 +0100)]
session: ignore RTCP packets for the BYE sources
When we are scheduling BYE packets, ignore all RTCP for the sources that
are scheduling a BYE packet. Other sources that are not scheduling BYE
should continue receiving RTCP packets as usual.
Julien Isorce [Mon, 4 Nov 2013 11:48:21 +0000 (11:48 +0000)]
rtpsession: determine if the session is doing point-to-point
In this case T_dither_max is set to 0 according to RFC 4585
Wim Taymans [Tue, 10 Dec 2013 10:57:37 +0000 (11:57 +0100)]
rtpjitterbuffer: serialize events in the buffer
Serialize events into the jitterbuffer by inserting them with a -1
seqnum.
Update unit test to expect events from the streaming thread.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=652986
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.