platform/upstream/gst-plugins-good.git
6 years agov4l2videoenc: Fix driver capability dectection
Nicolas Dufresne [Sat, 7 Oct 2017 21:11:41 +0000 (21:11 +0000)]
v4l2videoenc: Fix driver capability dectection

Use the right set of caps when checking if caps intersect. That makes
the check only select the supported devices.

6 years agov4l2videoenc/dec: Don't leak template caps
Nicolas Dufresne [Wed, 20 Sep 2017 01:46:15 +0000 (01:46 +0000)]
v4l2videoenc/dec: Don't leak template caps

6 years agov4l2videodec: Protect against null pool in _stop
Nicolas Dufresne [Sat, 7 Oct 2017 21:17:53 +0000 (21:17 +0000)]
v4l2videodec: Protect against null pool in _stop

This may happen if the negotiation fails, as we will have never
created the pools.

6 years agortpbin, rtspsrc: fix compiler warnings about 64-bit integer signednes
Tim-Philipp Müller [Sat, 7 Oct 2017 14:55:24 +0000 (15:55 +0100)]
rtpbin, rtspsrc: fix compiler warnings about 64-bit integer signednes

"warning: this decimal constant is unsigned only in ISO C90" with
gcc 4.8.4 (Ubuntu/Linaro 4.8.4-2ubuntu1~14.04.3)

6 years agov4l2: fix build without libv4l
Tim-Philipp Müller [Sat, 7 Oct 2017 14:39:18 +0000 (15:39 +0100)]
v4l2: fix build without libv4l

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

6 years agortpsbcdepay: Fix potential NULL pointer dereference
Sebastian Dröge [Sat, 7 Oct 2017 11:06:38 +0000 (14:06 +0300)]
rtpsbcdepay: Fix potential NULL pointer dereference

CID 1418864

6 years agoaudioecho: Micro-optimize
Sebastian Dröge [Fri, 6 Oct 2017 22:21:19 +0000 (01:21 +0300)]
audioecho: Micro-optimize

Gives 1.28x speedup in surround-delay=false mode

6 years agoaudioecho: Don't do linear interpolation between samples
Sebastian Dröge [Fri, 6 Oct 2017 20:59:43 +0000 (23:59 +0300)]
audioecho: Don't do linear interpolation between samples

Linear interpolation adds quite some noise, and it's unlikely that
anybody will ever need sub-sample accurate delays. Proper resampling
before that will lead to better results.

6 years agov4l2object: auto-detect dmabuf export for V4L2_IO_AUTO on capture side
Enrico Jorns [Sat, 30 Sep 2017 02:19:42 +0000 (22:19 -0400)]
v4l2object: auto-detect dmabuf export for V4L2_IO_AUTO on capture side

Issue an invalid VIDIOC_EXPBUF ioctl to the driver to check if the
driver supports dmabuf export. If the driver does not implement the
IOCTL, the error is ENOTTY. Any other error codes mean that the driver
implements VIDIOC_EXPBUF.

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

6 years agoflvdemux: Only set pixel-aspect-ratio if specified
Nicolas Dufresne [Sun, 24 Sep 2017 18:35:01 +0000 (14:35 -0400)]
flvdemux: Only set pixel-aspect-ratio if specified

If it's not specified, we should let the decoder figure it out.
Apparently the code was already in place, all was to make the code
conditional.

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

6 years agoflvdemux: Don't pull passed the EOS
Nicolas Dufresne [Sat, 23 Sep 2017 19:44:09 +0000 (15:44 -0400)]
flvdemux: Don't pull passed the EOS

When a truncated FLV is provided and processed in pull mode, we
may endup trying to pull passed EOS, causing a rather confusing
warning as the pull offset is an integer overflow.

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

6 years agoflvdemux: Ignore invalid H.264 codec data
Nicolas Dufresne [Sat, 23 Sep 2017 19:41:30 +0000 (15:41 -0400)]
flvdemux: Ignore invalid H.264 codec data

This code basically skip over codec_data with empty payload. In
this case, the codec_data variable is the size of the header for
the CODEC part of Video Tag. The remaining is supposed to be the
H.264 codec data, hence should not be empty.

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

6 years agoflvdemux: Avoid integer overflow on invalid CTS
Nicolas Dufresne [Sat, 23 Sep 2017 19:38:07 +0000 (15:38 -0400)]
flvdemux: Avoid integer overflow on invalid CTS

If the CTS is negative an would lead to a negtive PTS, clip
the CTS so the PTS will be 0.

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

6 years agodocs: Update for git changes
Thibault Saunier [Thu, 5 Oct 2017 17:36:28 +0000 (14:36 -0300)]
docs: Update for git changes

6 years agortspsrc: Fix build
Thibault Saunier [Thu, 5 Oct 2017 17:35:27 +0000 (14:35 -0300)]
rtspsrc: Fix build

6 years agortspsrc: Handle TCP as lower transport with RTSP 2.0
Thibault Saunier [Thu, 13 Jul 2017 18:46:55 +0000 (14:46 -0400)]
rtspsrc: Handle TCP as lower transport with RTSP 2.0

Meaning that the interleave fields have to be updated as
if streams setup was working when using pipelined setup
request. Otherwise there is a mismatch between the server
channel count and our own.

This also makes RTSP 2.0 over HTTP working.

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

6 years agortsp: Start implementing support for RTSP 2.0
Thibault Saunier [Thu, 20 Apr 2017 20:45:39 +0000 (17:45 -0300)]
rtsp: Start implementing support for RTSP 2.0

- Handle version negotation:

  Added a `default-version` property so that the user can configure
  what to use in case the server does not support version negotation
  (which actually exist)

- Handle pipelined requests, which allow avoiding full round trip to
  setup the RTP streams (request are sent in a raw, and response are
  handled as they arrive).

- Handle the new Media-Properties header

- Handle the new Seek-Style header

- Handle the new Accept-Ranges header

Handling of IPV6 should already be OK.

We are still missing (at least) the following features (which do not
seem really mandatory as they require a "persistent connection between
server and client"):

  - Server to Client TEARDOWN command (Not so usefull fmpov)
  - PLAY_NOTIFY (not needed for our server yet)
  - Support for the new REDIRECT features

and probably some more protocol changes might not be handled yet.

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

6 years agortspsrc: Use a macro to debug RTSP messages
Thibault Saunier [Wed, 3 May 2017 14:19:03 +0000 (11:19 -0300)]
rtspsrc: Use a macro to debug RTSP messages

Simplifying the code a little.

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

6 years agoUse proper GtkDoc notation for NULL/FALSE/TRUE
Reynaldo H. Verdejo Pinochet [Tue, 3 Oct 2017 23:30:10 +0000 (16:30 -0700)]
Use proper GtkDoc notation for NULL/FALSE/TRUE

6 years agortspsrc: Ignore medias marked as sendonly
Sebastian Dröge [Sun, 1 Oct 2017 14:09:13 +0000 (16:09 +0200)]
rtspsrc: Ignore medias marked as sendonly

We're never going to receive anything from them, so don't create pads
for them. These medias are destinations where *we* could send something.

6 years agosbcdepay: Add property to ignore input timestamps
Sebastian Dröge [Tue, 5 Sep 2017 08:41:35 +0000 (11:41 +0300)]
sbcdepay: Add property to ignore input timestamps

This then just counts samples and calculates the output timestamps based
on that and the very first observed timestamp. The timestamps on the
buffers are continued to be used to detect discontinuities that are too
big and reset the counter at that point.

When receiving data via Bluetooth, many devices put completely wrong
values into the RTP timestamp field. For example iOS seems to put a
timestamp in milliseconds in there, instead of something based on the
current sample offset (RTP clock-rate == sample rate).

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

6 years agortph265depay: Fix Memory leak in error case
Ponnam Srinivas [Thu, 21 Sep 2017 08:29:00 +0000 (13:59 +0530)]
rtph265depay: Fix Memory leak in error case

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

6 years agodeinterlace: Fixed memory leak in error code path
Deepak Srivastava [Fri, 22 Sep 2017 11:25:21 +0000 (16:55 +0530)]
deinterlace: Fixed memory leak in error code path

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

6 years agopngenc: fix memory leak in error code path
Ponnam Srinivas [Wed, 20 Sep 2017 04:07:59 +0000 (09:37 +0530)]
pngenc: fix memory leak in error code path

Don't leak row_pointers if frame can't be mapped.

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

6 years agov4l2videodec: Don't leak codec name
Nicolas Dufresne [Tue, 19 Sep 2017 21:55:58 +0000 (17:55 -0400)]
v4l2videodec: Don't leak codec name

6 years agov4l2bufferpool: Don't stop streaming when pool is flushing
Nicolas Dufresne [Sat, 5 Aug 2017 16:23:30 +0000 (12:23 -0400)]
v4l2bufferpool: Don't stop streaming when pool is flushing

The purpose of being able to flush the buffer pool is only to
unlock any blocked operation. Doing streamoff/streamon had the
side effect of turning off and on the camera. As we do a flush_start
/ flush_stop sequence when shutting down, that would cause a really
quick sequence of streamoff/streamon/streamoff/close which was
causing some cameras to stop working.

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

6 years agortpjitterbuffer: implement basic chain_list function
Tim-Philipp Müller [Sun, 17 Sep 2017 15:18:48 +0000 (16:18 +0100)]
rtpjitterbuffer: implement basic chain_list function

Doesn't do anything fancy yet, but still avoids lots of
unnecessary locking/unlocking that would happen if the
default chain_list fallback function in GstPad got invoked.

6 years agomultifilesink: use new gst_buffer_list_calculate_size()
Tim-Philipp Müller [Sun, 17 Sep 2017 11:50:30 +0000 (12:50 +0100)]
multifilesink: use new gst_buffer_list_calculate_size()

6 years agortpbin: add option for sanity checking timestamp offset
Patrick Radizi [Thu, 14 Sep 2017 11:00:56 +0000 (13:00 +0200)]
rtpbin: add option for sanity checking timestamp offset

Timestamp offsets needs to be checked to detect unrealistic values
caused for example by NTP clocks not in sync. The new parameter
max-ts-offset lets the user decide an upper offset limit. There
are two different cases for checking the offset based on if
ntp-sync is used or not:
1) ntp-sync enabled
   Only negative offsest are allowed since a positive offset would
   mean that the sender and receiver clocks are not in sync.
   Default vaule of max-ts-offset = 0 (disabled)
2) ntp-sync disabled
   Both positive and negative offsets are allowed.
   Default vaule of max-ts-offset = 3000000000
The reason for different default values is to be backwards
compatible.

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

6 years agortpbin: add option for increasing ts_offset gradually
Patrick Radizi [Thu, 14 Sep 2017 09:20:17 +0000 (11:20 +0200)]
rtpbin: add option for increasing ts_offset gradually

Instant large changes to ts_offset may cause timestamps to move
backwards and also cause visible effects in media playback. The new
option max-ts-offset-adjustment lets the application control the rate to
apply changes to ts_offset.

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

6 years agov4l2src: Ensure all caps a fixated
Nicolas Dufresne [Wed, 13 Sep 2017 20:05:08 +0000 (16:05 -0400)]
v4l2src: Ensure all caps a fixated

The code relied on the list compare function to fixate the caps
but if the caps only has one structure, the compare function will
never get called. Capture device for which there is only one
structure in the caps would then get some assertion and later
fail badly.

Instead, fixate before inserting into the list and split the reading
and the fixation of the structures.

6 years agov4l2object: Don't leak the par value
Nicolas Dufresne [Wed, 13 Sep 2017 15:52:09 +0000 (11:52 -0400)]
v4l2object: Don't leak the par value

6 years agov4l2-renegotiate: Don't leak the option context
Nicolas Dufresne [Wed, 13 Sep 2017 15:38:44 +0000 (11:38 -0400)]
v4l2-renegotiate: Don't leak the option context

6 years agov4l2src-renegotiate: Don't leak pipeline desc string
Nicolas Dufresne [Wed, 13 Sep 2017 15:33:33 +0000 (11:33 -0400)]
v4l2src-renegotiate: Don't leak pipeline desc string

6 years agov4l2-renegotiate: Change --enable-dmabuf into --io-mode=
Nicolas Dufresne [Wed, 13 Sep 2017 15:32:09 +0000 (11:32 -0400)]
v4l2-renegotiate: Change --enable-dmabuf into --io-mode=

This gives allow testing dmabuf importation but also exportation buy
letting user pick anything from the io-mode property on v4l2src.

6 years agomatroskademux: search_cluster should find preceding cluster before target
Mark Nauwelaerts [Mon, 11 Sep 2017 18:24:27 +0000 (20:24 +0200)]
matroskademux: search_cluster should find preceding cluster before target

... since failing this constraint takes search_pos by surprise which might
then end up in an infinite loop.

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

6 years agortprtx{send,receive}: improve the debug messages
George Kiagiadakis [Thu, 7 Sep 2017 11:33:57 +0000 (14:33 +0300)]
rtprtx{send,receive}: improve the debug messages

* use INFO/DEBUG/LOG/TRACE equaly and meaningfully;
  previously rtprtxsend:LOG and rtprtxreceive:LOG would generate
  a totally different amount of log traffic and sometimes it was
  impossible to see the information you wanted without useless
  spam being printed around
* improve the wording, give a reasonable and self-explanatory
  amount of information
* print SSRCs in hex
* avoid G_FOO_FORMAT for readability (we are just printing integers)

6 years agov4l2object: Handle BT2020 for colorspace and transfer
Ian Jamison [Tue, 5 Sep 2017 14:30:40 +0000 (15:30 +0100)]
v4l2object: Handle BT2020 for colorspace and transfer

This was not fully handled in switches and
ub gst_v4l2_object_get_colorspace();

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

6 years agov4l2object: Fix colorimetry transfer lookup for 4K video
Ian Jamison [Tue, 5 Sep 2017 14:29:24 +0000 (15:29 +0100)]
v4l2object: Fix colorimetry transfer lookup for 4K video

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

6 years agov4l2src: Check if caps have changed after try_fmt
Nicolas Dufresne [Wed, 6 Sep 2017 15:25:53 +0000 (11:25 -0400)]
v4l2src: Check if caps have changed after try_fmt

try_fmt will update the caps colorimetry and interlace-mode. Before this
call, those field are missing. The caps equality check was always
failing when a spurious reconfigure event was received.

6 years agoqtmux: Allow MPEG layer 1/2, AC3 and Opus in qtmux
Jan Schmidt [Wed, 6 Sep 2017 13:55:38 +0000 (23:55 +1000)]
qtmux: Allow MPEG layer 1/2, AC3 and Opus in qtmux

qtmux is supposed to be the muxer that allows all formats,
with others (mp4mux and friends) being profile-restricted.

6 years agortph265depay: fix keyunit detection
Tim-Philipp Müller [Tue, 5 Sep 2017 11:56:44 +0000 (12:56 +0100)]
rtph265depay: fix keyunit detection

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

6 years agojpegdec: Fix decoding of streams that don't signal exactly twice the height
Sebastian Dröge [Tue, 5 Sep 2017 12:42:17 +0000 (15:42 +0300)]
jpegdec: Fix decoding of streams that don't signal exactly twice the height

... and also progressive streams.

6 years agojpegdec: Handle interlaced MJPEG streams
Sebastian Dröge [Tue, 5 Sep 2017 10:28:16 +0000 (13:28 +0300)]
jpegdec: Handle interlaced MJPEG streams

These come with two JPEG images per buffer of half height than signalled
in the container.

Changes based on Tim-Philipp Müller's 0.10 branch:
https://cgit.freedesktop.org/~tpm/gst-plugins-good/log/?h=jpegdec-interlaced

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

6 years agodcaparse: Really fix "usage before unmap"
Edward Hervey [Mon, 4 Sep 2017 15:06:39 +0000 (17:06 +0200)]
dcaparse: Really fix "usage before unmap"

Previous patch would try to unref a buffer that was pushed downstream.

Instead only unref when/if needed and keep usage of the cleanup: goto
block

6 years agodcaparse: Don't unmap buffer before accessing data from it
Arun Raghavan [Sun, 3 Sep 2017 09:53:10 +0000 (15:23 +0530)]
dcaparse: Don't unmap buffer before accessing data from it

The previous patch added a check for a substream header after
gst_buffer_unmap(), which is incorrect.

6 years agodcaparse: preserve DTS HD substream
Matej Knopp [Sat, 24 Jun 2017 16:47:14 +0000 (18:47 +0200)]
dcaparse: preserve DTS HD substream

6 years agortpsbcpay: Fix some tabs that crept in somehow
Arun Raghavan [Mon, 14 Aug 2017 12:48:07 +0000 (18:18 +0530)]
rtpsbcpay: Fix some tabs that crept in somehow

6 years agortpbin: Also log local and SR RTP running times when doing ntp-sync=true
Sebastian Dröge [Tue, 29 Aug 2017 16:13:58 +0000 (19:13 +0300)]
rtpbin: Also log local and SR RTP running times when doing ntp-sync=true

6 years agortpbin: also create session when creating the send_rtcp_src_%u pad
Matthew Waters [Thu, 24 Aug 2017 07:06:38 +0000 (17:06 +1000)]
rtpbin: also create session when creating the send_rtcp_src_%u pad

If one requests the send_rtcp_src_%u pad before a recv_rtcp_sink_%u pad,
the session/pad would never be created and NULL was returned.
Switching the request order would work.

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

6 years agotests: mpg123audiodec: add files needed by unit tests
Tim-Philipp Müller [Sat, 26 Aug 2017 11:59:35 +0000 (12:59 +0100)]
tests: mpg123audiodec: add files needed by unit tests

6 years agotests: add basic unit test for twolame as well
Tim-Philipp Müller [Sat, 26 Aug 2017 09:10:19 +0000 (10:10 +0100)]
tests: add basic unit test for twolame as well

6 years agotests: lame: fix build
Tim-Philipp Müller [Sat, 26 Aug 2017 08:59:22 +0000 (09:59 +0100)]
tests: lame: fix build

6 years agotests: ignore another binary
Tim-Philipp Müller [Sat, 26 Aug 2017 08:52:33 +0000 (09:52 +0100)]
tests: ignore another binary

6 years agotwolame: hook up to build system
Tim-Philipp Müller [Sat, 26 Aug 2017 08:41:13 +0000 (09:41 +0100)]
twolame: hook up to build system

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

6 years agoMoving twolame mp2 encoder plugin from -ugly
Tim-Philipp Müller [Sat, 26 Aug 2017 08:21:44 +0000 (09:21 +0100)]
Moving twolame mp2 encoder plugin from -ugly

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

6 years agolame: hook up to build system
Tim-Philipp Müller [Sat, 26 Aug 2017 08:03:08 +0000 (09:03 +0100)]
lame: hook up to build system

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

6 years agoMoving lame mp3 encoder plugin from -ugly
Tim-Philipp Müller [Fri, 25 Aug 2017 20:13:58 +0000 (21:13 +0100)]
Moving lame mp3 encoder plugin from -ugly

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

6 years agomeson: Link mpeg123audiodec test against gstfft
Thibault Saunier [Sun, 20 Aug 2017 23:41:19 +0000 (20:41 -0300)]
meson: Link mpeg123audiodec test against gstfft

Fixing build error:

/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:150: undefined reference to `gst_fft_s32_new'
/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:151: undefined reference to `gst_fft_s32_window'
/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:151: undefined reference to `gst_fft_s32_fft'
/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:147: undefined reference to `gst_fft_s32_free'

6 years agotests: tagschecking: remove gst-check-xmp-* temp files when done
Tim-Philipp Müller [Sun, 20 Aug 2017 16:15:33 +0000 (17:15 +0100)]
tests: tagschecking: remove gst-check-xmp-* temp files when done

Also fix temp file creation a bit.

6 years agodocs: update for changes in git
Tim-Philipp Müller [Sun, 20 Aug 2017 14:49:12 +0000 (15:49 +0100)]
docs: update for changes in git

6 years agompg123: add to docs
Tim-Philipp Müller [Sun, 20 Aug 2017 14:48:24 +0000 (15:48 +0100)]
mpg123: add to docs

6 years agompg123: hook up to build system
Tim-Philipp Müller [Sun, 20 Aug 2017 12:56:19 +0000 (13:56 +0100)]
mpg123: hook up to build system

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

6 years agoMoving mpg123 plugin from -ugly
Tim-Philipp Müller [Sun, 20 Aug 2017 12:48:48 +0000 (13:48 +0100)]
Moving mpg123 plugin from -ugly

6 years agoAutomatic update of common submodule
Tim-Philipp Müller [Thu, 17 Aug 2017 11:23:25 +0000 (12:23 +0100)]
Automatic update of common submodule

From 48a5d85 to 3f4aa96

6 years agoac3parse: fix not-linked handling causing glitches when selecting stream
Sky Juan [Mon, 14 Aug 2017 07:28:22 +0000 (15:28 +0800)]
ac3parse: fix not-linked handling causing glitches when selecting stream

Fix chain function not handling not-linked from baseparse.

When an input data is separated into 2 buffers, the second buffer
would not be pushed into the adapter if baseparse returns not-linked
for first buffer.

This caused glitches when switching streams and selecting
a stream that was previously unselected.

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

6 years agogoom2k1: Convert source files to UTF-8
Jan Alexander Steffens (heftig) [Wed, 16 Aug 2017 11:57:50 +0000 (13:57 +0200)]
goom2k1: Convert source files to UTF-8

Causes problems with the new gtk-doc 1.26 otherwise,
but is a good idea in any case.

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

6 years agowavparse: Add support for growing WAV files
Eduard Sinelnikov [Mon, 14 Aug 2017 08:08:41 +0000 (03:08 -0500)]
wavparse: Add support for growing WAV files

With some fixes by me.

6 years agortpsbcpay: Fix compile error
Arun Raghavan [Mon, 14 Aug 2017 12:09:15 +0000 (17:39 +0530)]
rtpsbcpay: Fix compile error

6 years agortpsbcpay: fix if buffer size exceeds MTU
Jochen Henneberg [Mon, 14 Aug 2017 10:36:56 +0000 (10:36 +0000)]
rtpsbcpay: fix if buffer size exceeds MTU

The plugin queued buffer data if not all buffer data fit
into a single RTP packet. Now RTP packets are pushed as long
as enough data is available.

6 years agovpxenc: discard frames that have been dropped by libvpx
George Kiagiadakis [Thu, 27 Jul 2017 14:21:48 +0000 (17:21 +0300)]
vpxenc: discard frames that have been dropped by libvpx

This fixes a memory leak. When dropframe-threshold has been set,
libvpx may output less frames than the input ones, which causes
some GstVideoCodecFrames to queue up in GstVideoEncoder's internal
frame queue with no chance of ever being all released. And because
the frames keep references to the input buffers, the input buffer
pool keeps allocating new buffers and memory usage grows very fast.
For example the following pipeline's memory usage grows at a rate
of about 1GB per minute!

videotestsrc ! capsfilter caps=video/x-raw,width=1920,height=1080,framerate=30/1,format=I420 ! \
  vp8enc target-bitrate=1000000 end-usage=cbr dropframe-threshold=95 ! fakesink

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

6 years agortpstats: fix unsigned integer comparisons.
Mathieu Duponchelle [Tue, 8 Aug 2017 11:11:58 +0000 (13:11 +0200)]
rtpstats: fix unsigned integer comparisons.

Callers of the API (rtpsource, rtpjitterbuffer) pass clock_rate
as a signed integer, and the comparison "<= 0" is used against
it, leading me to think the intention was to have the field
be typed as gint32, not guint32.

This led to situations where we could call scale_int with
a MAX_UINT32 (-1) guint32 as the denom, thus raising an
assertion.

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

6 years agotaglib: use -fvisibility=hidden with this C++ plugin in meson too
Tim-Philipp Müller [Thu, 10 Aug 2017 13:44:35 +0000 (14:44 +0100)]
taglib: use -fvisibility=hidden with this C++ plugin in meson too

Also pass args as cpp_args.

6 years agoqtdemux: allow larger files
Michael Olbrich [Wed, 22 Mar 2017 14:25:17 +0000 (15:25 +0100)]
qtdemux: allow larger files

For really long files such as contiguous recordings of a whole day, the
50MB limit is not sufficient.

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

6 years agoqtdemux: Fix offsets for reading lpcm specific fields
Sebastian Dröge [Thu, 10 Aug 2017 13:08:06 +0000 (16:08 +0300)]
qtdemux: Fix offsets for reading lpcm specific fields

We were reading at the completely wrong positions, 16 bytes later in the
data.

Also add support for high-aligned samples.

6 years agomeson: don't export symbols by default
Tim-Philipp Müller [Thu, 10 Aug 2017 13:01:09 +0000 (14:01 +0100)]
meson: don't export symbols by default

Only plugin entry points should be exported.

Currently plugins might export more symbols with
the meson build, as we don't have the exports
regexp there that we pass to libtool.

6 years agowavparse: Fix memory leak in wavparse element
Deepak Srivastava [Thu, 10 Aug 2017 09:44:31 +0000 (15:14 +0530)]
wavparse: Fix memory leak in wavparse element

Fixing of leaking the text field of the GstWavParseNote and
GstWavParseLabl structure.

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

6 years agov4l2bufferpool: Don't mark jpeg frames as deltas
Cyril Lashkevich [Tue, 8 Aug 2017 10:37:12 +0000 (10:37 +0000)]
v4l2bufferpool: Don't mark jpeg frames as deltas

JPEG formats are encoded, but they never have keyframe flag. But in
fact they are keyframes

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

6 years agoosxvideo: rename library according to the plugin name
Philippe Normand [Sun, 6 Aug 2017 12:06:45 +0000 (13:06 +0100)]
osxvideo: rename library according to the plugin name

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

6 years agov4l2bufferpool: Don't drop buffer ref on qbuf
Nicolas Dufresne [Wed, 2 Aug 2017 21:16:21 +0000 (17:16 -0400)]
v4l2bufferpool: Don't drop buffer ref on qbuf

This function no longer take ownership of the buffer.

CID 1414800

6 years agov4l2: Enable VP9 format
Nicolas Dufresne [Wed, 2 Aug 2017 21:13:55 +0000 (17:13 -0400)]
v4l2: Enable VP9 format

This was missing, preventing the encoder and decoder to work
properly. This also adds support for camera that would produce
VP9 (if that exists).

6 years agov4l2: Remove spurious CATEGORY_EXTERN
Nicolas Dufresne [Wed, 2 Aug 2017 16:28:38 +0000 (12:28 -0400)]
v4l2: Remove spurious CATEGORY_EXTERN

These have been copy pasted all over the place and are not used anymore.
All object have it's own category now. This fixes build warning since
the VP9 decoder had vp8 category declared.

6 years agov4l2videoenc: Move the profile/level negotation in the base class
Nicolas Dufresne [Wed, 2 Aug 2017 14:39:46 +0000 (10:39 -0400)]
v4l2videoenc: Move the profile/level negotation in the base class

This removes duplicated code across different codec.

6 years agov4l2videoenc: Turn gst_v4l2_is_video_enc into a helper
Nicolas Dufresne [Wed, 2 Aug 2017 13:36:08 +0000 (09:36 -0400)]
v4l2videoenc: Turn gst_v4l2_is_video_enc into a helper

This reduces the amount of code needed in each codec class.

6 years agov4l2: Add VP8/9 encoder support
Nicolas Dufresne [Tue, 1 Aug 2017 20:01:11 +0000 (16:01 -0400)]
v4l2: Add VP8/9 encoder support

6 years agov4l2object: Use mmap64 to match libv4l2 signature
Nicolas Dufresne [Mon, 31 Jul 2017 15:56:05 +0000 (11:56 -0400)]
v4l2object: Use mmap64 to match libv4l2 signature

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

6 years agov4l2bufferpool: Copy flags and timestamp when importing
Nicolas Dufresne [Tue, 1 Aug 2017 13:22:43 +0000 (09:22 -0400)]
v4l2bufferpool: Copy flags and timestamp when importing

Whenever we import from downstream pool (userptr or dmabuf-import), we
should copy over the flags and timestamp, otherwise downstream will not
get proper synchronization or will not be able to notice frames that has
corruption in it.

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

6 years agov4l2: Add H263 Encoder support
Nicolas Dufresne [Mon, 31 Jul 2017 20:09:30 +0000 (16:09 -0400)]
v4l2: Add H263 Encoder support

6 years agov4l2: Add missing no-inst header
Nicolas Dufresne [Thu, 27 Jul 2017 17:51:25 +0000 (13:51 -0400)]
v4l2: Add missing no-inst header

6 years agov4l2: Add interface for MPEG4 encoding
Nicolas Dufresne [Wed, 26 Jul 2017 19:18:01 +0000 (15:18 -0400)]
v4l2: Add interface for MPEG4 encoding

6 years agov4l2: Ignore register issue and keep probing
Nicolas Dufresne [Thu, 27 Jul 2017 14:51:07 +0000 (10:51 -0400)]
v4l2: Ignore register issue and keep probing

Don't stop registering the other dynamic plugins if one registration
fails.

6 years agomulawdec: Unmap input buffer if failing to map the output buffer
Sebastian Dröge [Thu, 27 Jul 2017 11:21:34 +0000 (14:21 +0300)]
mulawdec: Unmap input buffer if failing to map the output buffer

6 years agoalawdec: Fix Memory leak in error case
Satya Prakash Gupta [Thu, 27 Jul 2017 03:52:25 +0000 (09:22 +0530)]
alawdec: Fix Memory leak in error case

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

6 years agov4l2: Update external files with latest
Nicolas Dufresne [Thu, 27 Jul 2017 00:36:15 +0000 (20:36 -0400)]
v4l2: Update external files with latest

This is copied from the linux kernel with only some include changes so
it works outside the kernel headers.

6 years agomatroskamux: For audio tracks, take the default duration from the first buffer
Sebastian Dröge [Tue, 18 Jul 2017 07:41:40 +0000 (10:41 +0300)]
matroskamux: For audio tracks, take the default duration from the first buffer

... if we don't have any better idea from the caps. This allows writing
SimpleBlocks for a majority of audio streams where the duration of
frames is usually fixed. And as a side effect, allows VLC to play
streams with Opus as it only works with SimpleBlocks currently:
  https://trac.videolan.org/vlc/ticket/18545

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

6 years agov4l2: Fix compilation without libv4l2
Nicolas Dufresne [Mon, 24 Jul 2017 20:45:40 +0000 (16:45 -0400)]
v4l2: Fix compilation without libv4l2

6 years agov4l2: Keep ref to element in allocator/pool
Nicolas Dufresne [Mon, 24 Jul 2017 20:13:56 +0000 (16:13 -0400)]
v4l2: Keep ref to element in allocator/pool

Removes the FIXME/Question in the buffer pool and add a ref to the
element in the GstAllocator too. This ref is strictly required to keep
the GstV4l2Object structure around.

6 years agov4l2object: Removed unused members
Nicolas Dufresne [Mon, 24 Jul 2017 18:27:05 +0000 (14:27 -0400)]
v4l2object: Removed unused members

6 years agov4l2: Add run-time environment to enable libv4l2
Nicolas Dufresne [Mon, 24 Jul 2017 18:19:02 +0000 (14:19 -0400)]
v4l2: Add run-time environment to enable libv4l2

The library has started preventing a lot of interesting use cases,
like CREATE_BUFS, DMABuf, usage of TRY_FMT. As the libv4l2 is totally
inactive and not maintained, we decided to disable it. As a convenience
we added a run-time environment that let you enable it for testing.

  GST_V4L2_USE_LIBV4L2=1

This of course only works if you have enabled libv4l2 at build time.

6 years agojpegenc: declare quality property changeable in PLAYING state
Nicola Murino [Mon, 17 Jul 2017 08:04:02 +0000 (10:04 +0200)]
jpegenc: declare quality property changeable in PLAYING state

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