platform/upstream/gst-plugins-good.git
8 years agortpamrdepay: fix unnecessary sub-buffer creation
Tim-Philipp Müller [Thu, 7 Jan 2016 20:34:05 +0000 (20:34 +0000)]
rtpamrdepay: fix unnecessary sub-buffer creation

We create a sub-buffer just to copy over its metas and then
throw it away immediately, just use the original input buffer
directly.

8 years agortpvrawdepay: fix major memory leak and performance issue
Tim-Philipp Müller [Thu, 7 Jan 2016 20:27:29 +0000 (20:27 +0000)]
rtpvrawdepay: fix major memory leak and performance issue

We call gst_rtp_buffer_get_payload() which creates a sub-buffer
of each input buffer, just to copy over metas, and then leak it.

https://bugzilla.gnome.org/show_bug.cgi?id=760289

8 years agorganalysis: Fix compiler warnings in the unit test
Sebastian Dröge [Fri, 8 Jan 2016 13:32:47 +0000 (15:32 +0200)]
rganalysis: Fix compiler warnings in the unit test

elements/rganalysis.c:919:66: error: shifting a negative signed value is undefined
      [-Werror,-Wshift-negative-value]
  push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, -1 << 14, 0));
                                                              ~~ ^
elements/rganalysis.c:929:69: error: shifting a negative signed value is undefined
      [-Werror,-Wshift-negative-value]
  push_buffer (test_buffer_const_int16_stereo (8000, 16, 512, 0, -1 << 14));
                                                                 ~~ ^
elements/rganalysis.c:939:64: error: shifting a negative signed value is undefined
      [-Werror,-Wshift-negative-value]
  push_buffer (test_buffer_const_int16_mono (8000, 16, 512, -1 << 14));
                                                            ~~ ^

8 years agoflacparse: don't map buffer multiple times when parsing
Tim-Philipp Müller [Tue, 5 Jan 2016 18:13:06 +0000 (18:13 +0000)]
flacparse: don't map buffer multiple times when parsing

8 years agomatroska: Store subtitle stream count in the correct variable
Steven Hoving [Thu, 7 Jan 2016 16:20:30 +0000 (18:20 +0200)]
matroska: Store subtitle stream count in the correct variable

And don't override the video stream count instead.

8 years agoequalizer: The child-proxy API is GObject based in 1.x
Sebastian Dröge [Tue, 5 Jan 2016 16:59:06 +0000 (18:59 +0200)]
equalizer: The child-proxy API is GObject based in 1.x

Not GstObject anymore.

8 years agov4l2-*: Configuring output pool correctly for using drivers min_buffer if present.
Pablo Anton [Thu, 21 May 2015 15:41:12 +0000 (17:41 +0200)]
v4l2-*: Configuring output pool correctly for using drivers min_buffer if present.

Signed-off-by: Pablo Anton <pablo.anton@vodalys-labs.com>
https://bugzilla.gnome.org/show_bug.cgi?id=755736

8 years agoflacparse: add debug msg on CRC mismatch while validating frame header
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 23:46:31 +0000 (15:46 -0800)]
flacparse: add debug msg on CRC mismatch while validating frame header

8 years agoflacparse: drop unneeded braces at _parse_frame() exit
Reynaldo H. Verdejo Pinochet [Fri, 1 Jan 2016 00:00:49 +0000 (16:00 -0800)]
flacparse: drop unneeded braces at _parse_frame() exit

Additionally, drop redundant comment & line break

8 years agoflacparse: minor grammar correction
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 23:55:18 +0000 (15:55 -0800)]
flacparse: minor grammar correction

8 years agoflacparse: update URLs on pointers to online spec
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 23:34:57 +0000 (15:34 -0800)]
flacparse: update URLs on pointers to online spec

8 years agoflacparse: make buffer DTS setting explicitly unconditional
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 22:40:15 +0000 (14:40 -0800)]
flacparse: make buffer DTS setting explicitly unconditional

We are setting it to PTS regardless of block_strategy

8 years agoflacparse: add actual invalid block type to warning
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 22:21:40 +0000 (14:21 -0800)]
flacparse: add actual invalid block type to warning

For someone that read the spec is clear the only *invalid*
data block type is 127. For the rest, its useful information.

Additionally. values 7-126 are currently reserved by the
spec so the situation might change in the future.

8 years agoflacparse: use shift instead of mask & comp
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 22:12:36 +0000 (14:12 -0800)]
flacparse: use shift instead of mask & comp

We are only interested on the first bit of the first
byte of the metadata block header to figure out whether
is marked as the last one. The shift makes it quite
clearer.

8 years agoflacparse: warn on wishful parsing of weird headers
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 20:52:13 +0000 (12:52 -0800)]
flacparse: warn on wishful parsing of weird headers

If we get anything from 7 to 126 as type when parsing
a metadata block header, we are likely dealing with a
FLAC stream version we don't fully understand. Issue
a warning if so.

Document function assumptions regarding the passed-on
type while at this.

8 years agoflacparse: show meaningful info on frame CRC check
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 19:33:45 +0000 (11:33 -0800)]
flacparse: show meaningful info on frame CRC check

As CRCs are calculated for the comparition already, we
might as well (cheaply) inform the user how the numbers
differ if a missmatched pair is found.

While at it:

Rephrase candidate-frame message to make more sense

8 years agoflacparse: drop remaining trailing whitespace
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 10:40:43 +0000 (02:40 -0800)]
flacparse: drop remaining trailing whitespace

8 years agoflacparse: drop superflous else clauses
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 10:15:06 +0000 (02:15 -0800)]
flacparse: drop superflous else clauses

8 years agoflacparse: factor out buffer time and offset resetting
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 09:09:51 +0000 (01:09 -0800)]
flacparse: factor out buffer time and offset resetting

Avoids multiple occurrences of the same resetting pattern

8 years agoflacparse: move block handling by type out of _parse_frame()
Reynaldo H. Verdejo Pinochet [Thu, 31 Dec 2015 08:54:48 +0000 (00:54 -0800)]
flacparse: move block handling by type out of _parse_frame()

8 years agortspsrc: replace duplicated codes to call new base sdp apis
Hyunjun Ko [Wed, 7 Oct 2015 09:51:25 +0000 (18:51 +0900)]
rtspsrc: replace duplicated codes to call new base sdp apis

https://bugzilla.gnome.org/show_bug.cgi?id=745880

8 years agoflacparse: drop redundant return statement on _header_is_valid()
Reynaldo H. Verdejo Pinochet [Wed, 30 Dec 2015 20:16:56 +0000 (12:16 -0800)]
flacparse: drop redundant return statement on _header_is_valid()

Fix the rather vague error message while at it.

8 years agoflacparse: rework gst_flac_parse_frame_is_valid()
Reynaldo H. Verdejo Pinochet [Wed, 30 Dec 2015 09:56:26 +0000 (01:56 -0800)]
flacparse: rework gst_flac_parse_frame_is_valid()

drop unnecessary nesting looking for end of frame

8 years agoflacparse: factor out context clearing routine
Reynaldo H. Verdejo Pinochet [Wed, 30 Dec 2015 08:37:04 +0000 (00:37 -0800)]
flacparse: factor out context clearing routine

8 years agomatroskademux: Guard against no codec data in prores caps creation
Sebastian Dröge [Tue, 29 Dec 2015 16:05:56 +0000 (18:05 +0200)]
matroskademux: Guard against no codec data in prores caps creation

CID 1346532

8 years agovpxdec: Initialize buffer variable to NULL
Sebastian Dröge [Tue, 29 Dec 2015 15:58:38 +0000 (17:58 +0200)]
vpxdec: Initialize buffer variable to NULL

False positive but trivial to fix and possibly causing compiler warnings at
some point in the future too.

CID 1346535

8 years agov4l2deviceprovider: add properties to the device
Wim Taymans [Mon, 27 Jul 2015 13:53:26 +0000 (15:53 +0200)]
v4l2deviceprovider: add properties to the device

Add properties to the device with exactly the same keys and sematics
as what pulseaudio uses as property keys.

Also handle the case when a device is probed manually and not through gudev.

https://bugzilla.gnome.org//show_bug.cgi?id=759780

8 years agoscaletempo: Free the various buffers in GstBaseTransform::stop()
Sebastian Dröge [Fri, 25 Dec 2015 10:41:19 +0000 (11:41 +0100)]
scaletempo: Free the various buffers in GstBaseTransform::stop()

Previously we leaked them completely, but as they're specific to the caps
freeing them in stop() instead of finalize() makes most sense.

8 years agoBack to development
Sebastian Dröge [Thu, 24 Dec 2015 14:28:06 +0000 (15:28 +0100)]
Back to development

8 years agoRelease 1.7.1
Sebastian Dröge [Thu, 24 Dec 2015 13:16:21 +0000 (14:16 +0100)]
Release 1.7.1

8 years agoUpdate .po files
Sebastian Dröge [Thu, 24 Dec 2015 12:19:24 +0000 (13:19 +0100)]
Update .po files

8 years agopo: Update translations
Sebastian Dröge [Thu, 24 Dec 2015 11:22:32 +0000 (12:22 +0100)]
po: Update translations

8 years agoqtdemux: drop flushes from our own offset seek
Thiago Santos [Mon, 21 Dec 2015 12:57:33 +0000 (09:57 -0300)]
qtdemux: drop flushes from our own offset seek

Prevents downstream from receiving flushes for a seek only in
upstream. Those seeks are only to start reading from the right
offset when skipping or returning to qt atoms.

https://bugzilla.gnome.org/show_bug.cgi?id=758928

8 years agomatroskademux: Always set the channel mask for PCM streams
Thibault Saunier [Wed, 11 Nov 2015 15:53:19 +0000 (16:53 +0100)]
matroskademux: Always set the channel mask for PCM streams

Just use the gst_audio_channel_get_fallback_mask function for now as
the specification is too complicated and nobody implements it.

8 years agodirectsoundsink: Fix sleep for buffer-time lower than 200000
Thomas Roos [Mon, 21 Dec 2015 10:37:26 +0000 (11:37 +0100)]
directsoundsink: Fix sleep for buffer-time lower than 200000

https://bugzilla.gnome.org/show_bug.cgi?id=748680

8 years agoconfigure: Use -Bsymbolic-functions if available
Sebastian Dröge [Mon, 21 Dec 2015 11:31:19 +0000 (12:31 +0100)]
configure: Use -Bsymbolic-functions if available

While this is more useful for libraries, some of our plugins with multiple
files and some internal API can also benefit from this.

8 years agoprogressreport: add support for using format=buffers with do-query=false
William Manley [Fri, 18 Dec 2015 15:34:52 +0000 (15:34 +0000)]
progressreport: add support for using format=buffers with do-query=false

This is useful for investigating and debugging pipelines which are
producing buffers at a slower/faster rate than you would expect.

https://bugzilla.gnome.org/show_bug.cgi?id=759635

8 years agov4l2object: Update formats table
Nicolas Dufresne [Fri, 18 Dec 2015 20:49:43 +0000 (15:49 -0500)]
v4l2object: Update formats table

This change add all the new RGB based format. Those format removes the
ambiguity with the ALPHA channel. Some other missing multiplanar format
has been added with some additional cleanup.

8 years agoqtmux: Don't write invalid edit list start time.
Jan Schmidt [Thu, 17 Dec 2015 18:17:15 +0000 (05:17 +1100)]
qtmux: Don't write invalid edit list start time.

Avoid writing a negative number as a large positive
integer in an edit list when the first_ts is smaller
than the first_dts - which can happen when the first
packet received has a PTS but no DTS.

https://bugzilla.gnome.org/show_bug.cgi?id=759615

8 years agosplitmuxsink: Only update running time when it increases.
Jan Schmidt [Fri, 4 Dec 2015 12:16:45 +0000 (23:16 +1100)]
splitmuxsink: Only update running time when it increases.

Don't increment running time from every buffer. The correct
logic to only increment when running time advances is a
little further down, so delete this left-over line.

8 years agomatroska-mux: Implement prores support
Thibault Saunier [Wed, 18 Nov 2015 10:01:20 +0000 (11:01 +0100)]
matroska-mux: Implement prores support

https://bugzilla.gnome.org/show_bug.cgi?id=758258

8 years agomatroska-demux: Play ProRes video streams
Jan Schmidt [Wed, 18 Nov 2015 05:20:38 +0000 (16:20 +1100)]
matroska-demux: Play ProRes video streams

Generate video/x-prores caps for ProRes video streams.
Every frame needs an 8 byte header prepended, as described in
http://wiki.multimedia.cx/index.php?title=Apple_ProRes#Frame_layout
so do that in a post-processing callback.

https://bugzilla.gnome.org/show_bug.cgi?id=758258

8 years agodvdec: Remove unused fields
Ravi Kiran K N [Fri, 18 Dec 2015 04:48:09 +0000 (10:18 +0530)]
dvdec: Remove unused fields

Remove unused fields frame_len and space

https://bugzilla.gnome.org/show_bug.cgi?id=759614

8 years agortpj2kdepay: Push one JPEG2000 frame per buffer, not a buffer list with multiple...
Vincent Dehors [Thu, 17 Dec 2015 15:03:04 +0000 (16:03 +0100)]
rtpj2kdepay: Push one JPEG2000 frame per buffer, not a buffer list with multiple buffers

https://bugzilla.gnome.org/show_bug.cgi?id=758943

8 years agodv1394: log error if failed to set socket status flag
Luis de Bethencourt [Wed, 16 Dec 2015 11:43:58 +0000 (11:43 +0000)]
dv1394: log error if failed to set socket status flag

Log an error message if failed to set write or read socket as
non-blocking.

CID 1139608
CID 1139609

8 years agoaudioparsers: Check for NULL return value of gst_pad_get_current_caps()
Dave Craig [Tue, 15 Dec 2015 17:10:00 +0000 (17:10 +0000)]
audioparsers: Check for NULL return value of gst_pad_get_current_caps()

https://bugzilla.gnome.org/show_bug.cgi?id=759503

8 years agodocs: update to git
Sebastian Dröge [Wed, 16 Dec 2015 08:35:53 +0000 (09:35 +0100)]
docs: update to git

8 years agovpx: Add missing headers in Makefile.am
Nicolas Dufresne [Tue, 15 Dec 2015 19:27:22 +0000 (14:27 -0500)]
vpx: Add missing headers in Makefile.am

This fixes distcheck.

https://bugzilla.gnome.org/show_bug.cgi?id=755510

8 years agovpx: created common baseclass GstVPXEnc
Prashant Gotarne [Thu, 24 Sep 2015 07:27:00 +0000 (12:57 +0530)]
vpx: created common baseclass GstVPXEnc

GstVP8Enc and GstVP9Enc has almost 80% code in common.
created common baseclass GstVPXEnc for GstVP8Enc and GstVP9Enc

https://bugzilla.gnome.org/show_bug.cgi?id=755510

8 years agovpxdec: Remove unneeded add video_meta
Nicolas Dufresne [Tue, 15 Dec 2015 17:57:53 +0000 (12:57 -0500)]
vpxdec: Remove unneeded add video_meta

This also remove copies for VP8, which was not correctly in place
in previous related patch.

8 years agovpx: created common base class GstVPXdec for vpx decoders
Prashant Gotarne [Tue, 15 Dec 2015 04:19:24 +0000 (09:49 +0530)]
vpx: created common base class GstVPXdec for vpx decoders

Base class for the vp8dec and vp9dec.

https://bugzilla.gnome.org/show_bug.cgi?id=755510

8 years agosouphttpsrc: Add GTlsInteraction property
Xavier Claessens [Wed, 10 Jun 2015 13:17:08 +0000 (09:17 -0400)]
souphttpsrc: Add GTlsInteraction property

https://bugzilla.gnome.org/show_bug.cgi?id=750709

8 years agortspsrc: Retry connection if tunneling needs authentication
Evan Callaway [Mon, 14 Dec 2015 14:05:06 +0000 (09:05 -0500)]
rtspsrc: Retry connection if tunneling needs authentication

Leverage response from gst_rtsp_connection_connect_with_response to
determine if the connection should be retried using authentication.  If
so, add the appropriate authentication headers based upon the response
and retry the connection.

https://bugzilla.gnome.org/show_bug.cgi?id=749596

8 years agortspsrc: check port-range format
Luis de Bethencourt [Mon, 14 Dec 2015 14:19:05 +0000 (14:19 +0000)]
rtspsrc: check port-range format

The string could exist but with a wrong format, in that case we still want
to reset the values of client_port_range.min and max like we do if there is
no string.

CID 1139593

8 years agodirectsoundsink: Check device property and fail if device can't be found
Thomas Roos [Mon, 14 Dec 2015 13:55:12 +0000 (14:55 +0100)]
directsoundsink: Check device property and fail if device can't be found

Don't use default if a specific device is set but it can't be found.

https://bugzilla.gnome.org/show_bug.cgi?id=759452

8 years agodirectsoundsink: Fix handling of the mute property
Thomas Roos [Mon, 14 Dec 2015 13:15:00 +0000 (14:15 +0100)]
directsoundsink: Fix handling of the mute property

- set mute value at startup
- correct set and get mute functions

https://bugzilla.gnome.org/show_bug.cgi?id=755106

8 years agodirectsoundsink: Check the return value of GetStatus() too to decide if there was...
Thomas Roos [Fri, 11 Dec 2015 10:23:13 +0000 (11:23 +0100)]
directsoundsink: Check the return value of GetStatus() too to decide if there was an error

If GetStatus() fails, the status itself won't be very meaningful but we also
have to look at its return value. This fixes blocking pipelines when removing
sound devices or during other errors, where we wouldn't notice the error and
then wait forever.

https://bugzilla.gnome.org/show_bug.cgi?id=734098

8 years agoisomp4: remove unused parameters in build_*_extension
Luis de Bethencourt [Thu, 10 Dec 2015 17:41:46 +0000 (17:41 +0000)]
isomp4: remove unused parameters in build_*_extension

AtomTRAK parameter is not used by build_mov_alac_extension(),
build_jp2h_extension(), or build_mov_alac_extension()  and can be
removed.

8 years agoisomp4: replace variable only used once
Luis de Bethencourt [Thu, 10 Dec 2015 15:11:07 +0000 (15:11 +0000)]
isomp4: replace variable only used once

Replace has_shift variable with value since it is only use once.

8 years agortpjitterbuffer: Fix packet dropping after a big discont
Sebastian Dröge [Wed, 9 Dec 2015 10:24:09 +0000 (12:24 +0200)]
rtpjitterbuffer: Fix packet dropping after a big discont

We would queue 5 consective packets before considering a reset and a proper
discont here. Instead of expecting the next output packet to have the current
seqnum (i.e. the fifth), expect it to have the first seqnum. Otherwise we're
going to drop all queued up packets.

8 years agointerleave: Remove unsed field
Ravi Kiran K N [Wed, 9 Dec 2015 06:19:02 +0000 (11:49 +0530)]
interleave: Remove unsed field

Remove unused field collect_event in interleave.

https://bugzilla.gnome.org/show_bug.cgi?id=759226

8 years agoqtdemux: Stop pushing data as soon as possible in push-mode
Edward Hervey [Mon, 7 Dec 2015 15:33:14 +0000 (16:33 +0100)]
qtdemux: Stop pushing data as soon as possible in push-mode

When working in push-mode, we attempt to push out everything currently
buffered in the adapter.

This has two pitfalls:
* We could stop earlier (the moment we get a non-ok or non-not-linked)
* We return the last combined flow return, which might be completely
  different from the previous combined flow return

8 years agoAutomatic update of common submodule
Nicolas Dufresne [Mon, 7 Dec 2015 14:08:09 +0000 (09:08 -0500)]
Automatic update of common submodule

From b319909 to 86e4663

8 years agortpsession: Add a warning if an empty RTCP packet is tried to be sent
Sebastian Dröge [Mon, 7 Dec 2015 12:41:51 +0000 (14:41 +0200)]
rtpsession: Add a warning if an empty RTCP packet is tried to be sent

https://bugzilla.gnome.org/show_bug.cgi?id=759119

8 years agovpxdec: Use GstMemory to avoid copies
Nicolas Dufresne [Tue, 1 Dec 2015 00:20:13 +0000 (19:20 -0500)]
vpxdec: Use GstMemory to avoid copies

With the VPX decoders it's not simple to use downstream buffer pool,
because we don't know the image size and alignment when buffers get
allocated. We can though use GstAllocator (for downstream, or the system
allocator) to avoid a copy before pushing if downstream supports
GstVideoMeta. This would still cause a copy for sink that requires
specialized memory and does not have a GstAllocator for that, though
it will greatly improve performance for sink like glimagesink and
cluttersink. To avoid allocating for every buffer, we also use a
internal buffer pool.

https://bugzilla.gnome.org/show_bug.cgi?id=745372

8 years agoaacparse: Avoid over-skipping when checking LOAS config
Edward Hervey [Mon, 30 Nov 2015 07:42:35 +0000 (08:42 +0100)]
aacparse: Avoid over-skipping when checking LOAS config

There might be multiple LOAS config in a row in a full frame. The first
one might be a multi-layer config (which we can't properly parse yet)...
but then followed by a valid (single-layer) one.

The code was previously skipping whole frames (instead of just the LOAS
config we failed to read) resulting in multiple frames (seen up to 6s in
some situation) being dropped before finally getting the configuration.

https://bugzilla.gnome.org/show_bug.cgi?id=758826

8 years agoavidemux: Properly set SPARSE stream flags for subpicture/subtitle
Edward Hervey [Wed, 25 Nov 2015 16:08:56 +0000 (17:08 +0100)]
avidemux: Properly set SPARSE stream flags for subpicture/subtitle

And while we're at it, also detect 'DXSA' as being a variant fourcc
of 'DXSB' for XSUB

8 years agotests: souphttpsrc: grammar fix
Reynaldo H. Verdejo Pinochet [Tue, 1 Dec 2015 05:23:52 +0000 (21:23 -0800)]
tests: souphttpsrc: grammar fix

8 years agotests: souphttpsrc: switch shoutcast stream provider
Reynaldo H. Verdejo Pinochet [Tue, 1 Dec 2015 05:01:17 +0000 (21:01 -0800)]
tests: souphttpsrc: switch shoutcast stream provider

Fixes failing ICY test. Previous provider has
streaming disabled outside UK.

https://bugzilla.gnome.org/show_bug.cgi?id=758114

8 years agoavimux: don't crash if we never got audio caps before stopping
Michael Olbrich [Wed, 18 Nov 2015 15:10:11 +0000 (16:10 +0100)]
avimux: don't crash if we never got audio caps before stopping

auds.blockalign is set once the first caps arrive. If
gst_avi_mux_stop_file() is called before this happens then auds.blockalign
is zero and gst_avi_mux_audsink_set_fields() cause a crash:
[...]
avipad->parent.hdr.rate = avipad->auds.av_bps / avipad->auds.blockalign;
[...]

https://bugzilla.gnome.org/show_bug.cgi?id=758912

8 years agov4l2bufferpool: don't block when resurecting a buffer
Wim Taymans [Tue, 1 Dec 2015 17:20:23 +0000 (18:20 +0100)]
v4l2bufferpool: don't block when resurecting a buffer

When we are resurecting a buffer, don't block. instead let us copy a
buffer.

8 years agowavparse: remove extra variable to improve readability
Thiago Santos [Tue, 1 Dec 2015 03:30:08 +0000 (00:30 -0300)]
wavparse: remove extra variable to improve readability

Makes it easier to see that the event is being replaced/unrefed

8 years agowavparse: respect seqnum in seek events
Thiago Santos [Tue, 1 Dec 2015 03:22:36 +0000 (00:22 -0300)]
wavparse: respect seqnum in seek events

Propagate the original seek seqnum to events originated from
seeking to make sure they have the same value

8 years agowavparse: flush upstream when seeking in pull mode
Thiago Santos [Tue, 1 Dec 2015 03:03:21 +0000 (00:03 -0300)]
wavparse: flush upstream when seeking in pull mode

Makes sure upstream will unblock and return the thread so that
seeking can continue

https://bugzilla.gnome.org/show_bug.cgi?id=758861

8 years agortph264pay: add "send SPS/PPS with every key frame" mode
Anton Bondarenko [Fri, 27 Nov 2015 08:27:29 +0000 (09:27 +0100)]
rtph264pay: add "send SPS/PPS with every key frame" mode

It's not enough to have timeout or event based SPS/PPS information sent
in RTP packets. There are some scenarios when key frames may appear
more frequently than once a second, in which case the minimum timeout
for "config-interval" of 1 second for sending SPS/PPS is not sufficient.
It might also be desirable in general to make sure the SPS/PPS is
available with every keyframe (packet loss aside), so receivers can
actually pick up decoding immediately from the first keyframe if
SPS/PPS is not signaled out of band.

This patch adds the possibility to send SPS/PPS with every key frame. This
mode can be enabled by setting "config-interval" property to -1. In this
case the payloader will add SPS and PPS before every key (IDR) frame.

https://bugzilla.gnome.org/show_bug.cgi?id=757892

8 years agortph264pay: change config-interval property type from uint to int
Tim-Philipp Müller [Fri, 27 Nov 2015 08:03:51 +0000 (09:03 +0100)]
rtph264pay: change config-interval property type from uint to int

This way we can use -1 as special value, which is nicer than MAXUINT.
This is backwards compatible even with the GValue API, as shown by
a unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=757892

8 years agoqtdemux: add support for Opus
Luis de Bethencourt [Thu, 26 Nov 2015 21:46:11 +0000 (21:46 +0000)]
qtdemux: add support for Opus

Add support for demuxing Opus encapsulated in MP4 files, based on the
following spec: https://www.opus-codec.org/docs/opus_in_isobmff.html

https://bugzilla.gnome.org/show_bug.cgi?id=742643

8 years agoqtdemux: use macro for codec_name
Luis de Bethencourt [Wed, 25 Nov 2015 22:48:32 +0000 (22:48 +0000)]
qtdemux: use macro for codec_name

Use _codec() macro instead of duplicating code.

8 years agov4l2: videodec: choose format from caps
Philipp Zabel [Wed, 25 Mar 2015 15:32:55 +0000 (16:32 +0100)]
v4l2: videodec: choose format from caps

https://bugzilla.gnome.org/show_bug.cgi?id=733827

8 years agov4l2: add gst_v4l2_object_probe_caps
Philipp Zabel [Fri, 27 Mar 2015 14:02:33 +0000 (15:02 +0100)]
v4l2: add gst_v4l2_object_probe_caps

Add a variant of gst_v4l2_object_get_caps that bypasses the probed_caps cache.

https://bugzilla.gnome.org/show_bug.cgi?id=733827

8 years agov4l2-probe: Skip devices without supported formats
Nicolas Dufresne [Thu, 19 Nov 2015 22:20:55 +0000 (17:20 -0500)]
v4l2-probe: Skip devices without supported formats

8 years agov4l2: Track /dev/video* to triggered required probe
Nicolas Dufresne [Fri, 13 Nov 2015 17:35:59 +0000 (12:35 -0500)]
v4l2: Track /dev/video* to triggered required probe

If something in /dev/video* get added, removed or replaced, we need to
probe the devices again in order to ensure the dynamic devices are up to
date.

https://bugzilla.gnome.org/show_bug.cgi?id=758085

8 years agortpmanager: rtpsession: don't send empty RTCP packets
Alessandro Decina [Wed, 25 Nov 2015 03:51:40 +0000 (14:51 +1100)]
rtpmanager: rtpsession: don't send empty RTCP packets

generate_rtcp can produce empty packets when reduced size RTCP is turned on.
Skip them since it doesn't make sense to push them and they cause errors with
elements that expect RTCP packets to contain data (like srtpenc).

8 years agoqtdemux: restore the segment on case of soft reset
Thiago Santos [Tue, 24 Nov 2015 13:57:28 +0000 (10:57 -0300)]
qtdemux: restore the segment on case of soft reset

When seeking back to restore the mdat position a flush is pushed
through and it resets downstream segment information. Make sure
that after the flush (that does a soft reset) a segment will
be pushed again

Fixes regressions spotted at
https://ci.gstreamer.net/job/GStreamer-master-validate/2100/

8 years agomultifilesink: fix spelling of variable
Graham Leggett [Fri, 20 Nov 2015 12:44:22 +0000 (12:44 +0000)]
multifilesink: fix spelling of variable

https://bugzilla.gnome.org/show_bug.cgi?id=758390

8 years agoqtdemux: unite duplicate FourCC
Luis de Bethencourt [Fri, 20 Nov 2015 11:05:51 +0000 (11:05 +0000)]
qtdemux: unite duplicate FourCC

Unite in fourcc.h the FourCCs that are used twice or more in qtdemux

8 years agov4l2: Fix capture/output-io-mode properties
Nicolas Dufresne [Thu, 19 Nov 2015 20:33:45 +0000 (15:33 -0500)]
v4l2: Fix capture/output-io-mode properties

There was some miss-match in the implementation. This makes it
concistent, though functionally it worked, except the video decoder
output-io-mode getter.

8 years agoatoms: remove unused argument of build_mov_wave_extension()
Luis de Bethencourt [Thu, 19 Nov 2015 19:48:06 +0000 (19:48 +0000)]
atoms: remove unused argument of build_mov_wave_extension()

AtomTrak * trak argument of build_move_wave_extension() isn't used.
Removing it.

8 years agoqtdemux: remove duplicate FourCC
Luis de Bethencourt [Thu, 19 Nov 2015 19:28:20 +0000 (19:28 +0000)]
qtdemux: remove duplicate FourCC

Use the available FourCCs in fourcc.h instead of duplicating them.

8 years agoisomp4: centralize all FourCC
Luis de Bethencourt [Thu, 19 Nov 2015 18:36:39 +0000 (18:36 +0000)]
isomp4: centralize all FourCC

10 FourCCs generated with GST_MAKE_FOURCC() in gstqtmux.c and atoms.c
already exist in fourcc.h. Don't duplicate these and use them directly.
Plus moving 6 to fourcc.h, to centralize them all.

8 years agomatroska/webmmux: fix outdated example launch lines
Luis de Bethencourt [Thu, 19 Nov 2015 17:32:12 +0000 (17:32 +0000)]
matroska/webmmux: fix outdated example launch lines

Update gst-launch-0.10 lines to gst-launch-1.0

8 years agoisomp4: add support for Opus in mp4mpux
Luis de Bethencourt [Mon, 16 Nov 2015 13:26:50 +0000 (13:26 +0000)]
isomp4: add support for Opus in mp4mpux

Add support for muxing MP4 files containing Opus. Based on the spec
detailed here:
https://www.opus-codec.org/docs/opus_in_isobmff.html

https://bugzilla.gnome.org/show_bug.cgi?id=742643

8 years agoqtdemux: Replace tabs with spaces
Sebastian Dröge [Wed, 18 Nov 2015 17:10:56 +0000 (19:10 +0200)]
qtdemux: Replace tabs with spaces

8 years agoqtdemux: Cast to signed integers to prevent unsigned compare between negative and...
Sebastian Dröge [Wed, 18 Nov 2015 17:07:53 +0000 (19:07 +0200)]
qtdemux: Cast to signed integers to prevent unsigned compare between negative and positive numbers

This fixes seeking if the first entries in the samples table are negative. The
binary search would always fail on this as the array would not be sorted if
interpreting the negative numbers as huge positive numbers. This caused us to
always output buffers from the beginning after a seek instead of close to the
seek position.

Also add a case to the comparison function for equality.

8 years agomatroskamux: remove duplicate check
Luis de Bethencourt [Wed, 18 Nov 2015 16:01:48 +0000 (16:01 +0000)]
matroskamux: remove duplicate check

We want 1 or 2 streamheaders, the check  if (bufarr->len != 1 &&
bufarr->len != 2) is enough. Not need to check if bufarr->len is <= 0 or
> 255.

8 years agosouphttpclientsink: Fix error leak and handle error
Vineeth TM [Wed, 18 Nov 2015 05:48:36 +0000 (14:48 +0900)]
souphttpclientsink: Fix error leak and handle error

g_thread_try_new allows for possiblity of failures. In case it fails,
error is not handled and leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=758260

8 years agortpgstdepay: Properly handle backward compat for event deserialization
Josep Torra [Mon, 16 Nov 2015 01:16:29 +0000 (17:16 -0800)]
rtpgstdepay: Properly handle backward compat for event deserialization

Actual code is checking for a NULL terminator and a ';' terminator,
for backward compat, in a chained way that cause all events being rejected.
The proper condition is to reject the events when terminator isn't
in ['\0', ';'] set.

https://bugzilla.gnome.org/show_bug.cgi?id=758151

8 years agotests: rtp-payloading: Test for handling of custom events in rtpgst
Josep Torra [Mon, 16 Nov 2015 01:11:02 +0000 (17:11 -0800)]
tests: rtp-payloading: Test for handling of custom events in rtpgst

Add a simple test that checks proper serialization/deserialization
of custom events with rtpgstpay and rtpgstdepay.

8 years agovpxdec: Use threads on multi-core systems
Nicolas Dufresne [Mon, 16 Nov 2015 21:23:43 +0000 (16:23 -0500)]
vpxdec: Use threads on multi-core systems

This adds an automatic mode to the threads property of vpxdec in order to
use as many threads as there is CPU on the platform. This brings back
GStreamer VPX decoding performance closer to what is achieved by other
players, including Chromium.

https://bugzilla.gnome.org/show_bug.cgi?id=758195

8 years agoqtdemux: only send initial gaps for non-fragmented streams
Thiago Santos [Mon, 16 Nov 2015 13:58:32 +0000 (10:58 -0300)]
qtdemux: only send initial gaps for non-fragmented streams

It would be unusual to have the header segment with an 'edts' atom
indicating gaps at the beginning when handling fragmented streams.

The header usually doesn't contain any timestamping information, this
should come from the playlist/manifest and the segments with media
in those scenarios.

https://bugzilla.gnome.org/show_bug.cgi?id=758171