platform/upstream/gstreamer.git
10 years agoAutomatic update of common submodule
Tim-Philipp Müller [Sun, 22 Dec 2013 22:33:39 +0000 (22:33 +0000)]
Automatic update of common submodule

From dbedaa0 to d48bed3

10 years agopo: set gettext domain in Makevars so we don't have to patch the generated Makefile...
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

10 years agoudpsrc: on receive error only unmap and unref buffer if one was alloced and mapped
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.

10 years agomultiudpsink: fix misleading comment
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.

10 years agovpx: Mark VP9 support as non-experimental
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.

10 years agoSome compiler warning fixes to satisfy XCode compiler
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

10 years agoid3v2mux: Set picture type in the APIC frames
Sebastian Dröge [Mon, 16 Dec 2013 15:17:07 +0000 (16:17 +0100)]
id3v2mux: Set picture type in the APIC frames

10 years agoid3v2mux: Set image-description from the info struct, not the caps
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

10 years agowavpackparse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 09:02:37 +0000 (10:02 +0100)]
wavpackparse: Post AUDIO_CODEC tag

10 years agosbcparse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 09:00:37 +0000 (10:00 +0100)]
sbcparse: Post AUDIO_CODEC tag

10 years agoflacparse: 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

10 years agodcaparse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 08:56:29 +0000 (09:56 +0100)]
dcaparse: Post AUDIO_CODEC tag

10 years agoamrparse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 08:54:38 +0000 (09:54 +0100)]
amrparse: Post AUDIO_CODEC tag

10 years agoac3parse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 08:49:48 +0000 (09:49 +0100)]
ac3parse: Post AUDIO_CODEC tag

10 years agoaacparse: Post AUDIO_CODEC tag
Sebastian Dröge [Mon, 16 Dec 2013 08:46:16 +0000 (09:46 +0100)]
aacparse: Post AUDIO_CODEC tag

10 years agompegaudioparse: Use pbutils functionality to create the 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

10 years agortpsession: Add error message if the app tries to set the internal-ssrc
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

10 years agortpsession: Only count nacks when a nack packet is received
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.

10 years agotests: Initialize segment in rtpcollision test
Olivier Crête [Fri, 13 Dec 2013 04:22:41 +0000 (23:22 -0500)]
tests: Initialize segment in rtpcollision test

10 years agortpsession: Process PSFB FIR requests which lack the media ssrc
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

10 years agortpsession: fix rb blocks disappearing after the first rtcp cycle with multiple senders
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.

10 years agotests/check: add an rtpsession unit test to verify all RBs are included in all SRs...
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.

10 years agodocs: improve docs
Wim Taymans [Thu, 12 Dec 2013 15:01:10 +0000 (16:01 +0100)]
docs: improve docs

10 years agodoc: add design-rtpcollision.txt that explains when GstRTPCollision is created
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."

10 years agotests/check: improve rtpcollision::test_master_ssrc_collision to ensure that a collis...
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

10 years agotests/check: add rtpcollision::test_master_ssrc_collision unit test
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

10 years agortpsession: keep extra stats for scheduling BYE
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.

10 years agortpsession: when we schedule BYE, only deal with BYE sources
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.

10 years agortpsession: reset state after scheduling 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.

10 years agortpsession: also count NACKS when no signal was pending
George Kiagiadakis [Thu, 12 Dec 2013 09:31:38 +0000 (10:31 +0100)]
rtpsession: also count NACKS when no signal was pending

10 years agosession: ignore RTCP packets for the BYE sources
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.

10 years agortpsession: determine if the session is doing point-to-point
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

10 years agortpjitterbuffer: serialize events in the buffer
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

10 years agortpjitterbuffer: detect -1 seqnum
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.

10 years agortpjitterbuffer: reorganize jitterbuffer items
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.

10 years agojitterbuffer: correctly check for invalid values
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.

10 years agoosxvideosink: fix segfault when dealing with padded frames
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

10 years agomulawdec: Require caps to be set before accepting any data
Sebastian Dröge [Thu, 5 Dec 2013 11:15:29 +0000 (12:15 +0100)]
mulawdec: Require caps to be set before accepting any data

10 years agowavpackdec: 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

10 years agospeexdec: 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

10 years agoflacdec: 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

10 years agovpx: Use new gst_video_decoder_set_needs_format() API
Sebastian Dröge [Thu, 5 Dec 2013 10:42:15 +0000 (11:42 +0100)]
vpx: Use new gst_video_decoder_set_needs_format() API

10 years agopulsesink: Free device_info in accepts caps
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

10 years agortptheorapay: Don't send headers twice if we got them from the caps already
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

10 years agortptheorapay: Don't leak config data when receiving a second CAPS event
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

10 years agortpvorbispay: Don't send headers twice if we got them from the caps already
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

10 years agortpvorbispay: Don't leak config data when receiving a second CAPS event
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

10 years agortpstreamdepay: Add RFC4571 RTP stream depayloading element
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

10 years agortpstreampay: Add RFC4571 RTP stream payloading element
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

10 years agoqtdemux: improve fragment-start tracking
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

10 years agov4l2bufferpool: add support for multi-planar V4l2 API in DMABUF mode
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

10 years agov4l2: refactor by emulating one v4l2_plane in non-MPLANE mode
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

10 years agov4l2: add support for multi-planar V4L2 API
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

10 years agoaudioparsers: don't leak template caps
Wim Taymans [Wed, 4 Dec 2013 08:12:07 +0000 (09:12 +0100)]
audioparsers: don't leak template caps

10 years agoaudioparsers: use ACCEPT_INTERSECT flag
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

10 years agoaudioparsers: remove fields from filter
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.

10 years agoaudioparsers: refactor code to remove caps fields
Wim Taymans [Tue, 3 Dec 2013 20:29:13 +0000 (21:29 +0100)]
audioparsers: refactor code to remove caps fields

10 years agodeinterlace: microoptimisation: avoid some unnecessary GValue copies
Tim-Philipp Müller [Mon, 2 Dec 2013 00:10:43 +0000 (00:10 +0000)]
deinterlace: microoptimisation: avoid some unnecessary GValue copies

10 years agodeinterlace: fix off-by-one crash when downstream caps contain a list of framerates
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

10 years agoqtdemux: Use the timestamp of the moof as the base fragment start
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.

10 years agoqtdemux: avoid re-reading the same moov and entering into loop
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

10 years agoqtdemux: do not free streams if they were not created locally
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

10 years agovideomixer: Simplify NV12/21 blending code macros
Sebastian Dröge [Fri, 29 Nov 2013 18:57:46 +0000 (19:57 +0100)]
videomixer: Simplify NV12/21 blending code macros

10 years agovideomixer: Fix segfault when filling the background of a UYVY frame
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

10 years agoqtdemux: fix compilation with gst debuging disabled
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

10 years agortph264pay: Map inbuffer once only
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

10 years agovideoflip: Add unit test for the 'automatic' method
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

10 years agovideoflip: don't crash on tag events without orientation tag
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

10 years agortpsession: don't unref buffer twice
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

10 years agoqtdemux: Add HydrogenAudio ReplayGain tags
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.

10 years agovideomixer: explicitly fail when alpha information would have been lost.
Mathieu Duponchelle [Wed, 27 Nov 2013 15:15:12 +0000 (16:15 +0100)]
videomixer: explicitly fail when alpha information would have been lost.

10 years agogitignore: Updated to ignore *.swp and .dirstamp
Nicolas Dufresne [Wed, 29 May 2013 20:06:05 +0000 (16:06 -0400)]
gitignore: Updated to ignore *.swp and .dirstamp

10 years agomatroska-demux: Allow a bit more variation when detecting common framerates
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.

10 years agomatroska-demux: Use gst_util_double_to_fraction() instead of GValue magic
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

10 years agovideoflip: Set default method at contruction
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

10 years agov4l2object: Use space instead of tabs
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

10 years agov4l2object: Fix header indentation so it's readable again
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

10 years agocheck: fix jitterbuffer check
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

10 years agojpegdec: deprecate max-errors
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.

10 years agortpjitterbuffer: improve clear-pt-map handling
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

10 years agojpegdec: let the base class decide when to return an error
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

10 years agojpegdec: Add data skipping on input
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

10 years agoqtdemux: Discard 2 byte subpicture packets
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.

10 years agortpjitterbuffer: fix wake-up when new buffers come in after running empty
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

10 years agomatroskamux: correctly handle negative relative timestamps
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>

10 years agovideomixer2: Merge tag events to send them in collected.
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

10 years agoqtdemux: Use GstVideoInfo helper to create caps for raw video
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

10 years agomatroskademux: Use GstVideoInfo helper to create caps for raw video
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

10 years agomultifilesrc: Implement seeking in case of multiple images
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

10 years agortpjitterbuffer: pass downstream flowreturn to upstream
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

10 years agov4l2: clear cached caps on close
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

10 years agog_memmove() is deprecated
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

10 years agortpvorbisdepay: handle packets > 0xffff
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.

10 years agortptheoradepay: handle packets > 0xffff
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.

10 years agoisomp4: Handle mp4s subpicture streams better.
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

10 years agoqtdemux: Sort fourcc declarations and remove duplicates
Jan Schmidt [Wed, 20 Nov 2013 11:08:25 +0000 (22:08 +1100)]
qtdemux: Sort fourcc declarations and remove duplicates

10 years agoqtdemux: Merge all the fourcc headers into one
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

10 years agortpjitterbuffer: avoid mapping the buffer
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.

10 years agortspsrc: fix 'make check'
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.

10 years agodocs: get rid of 'Since: 0.10.x' markers
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.