Reynaldo H. Verdejo Pinochet [Tue, 3 Oct 2017 23:30:10 +0000 (16:30 -0700)]
Use proper GtkDoc notation for NULL/FALSE/TRUE
Cassandra Rommel [Mon, 2 Oct 2017 19:35:48 +0000 (12:35 -0700)]
gl: Use GstGLDisplayEGL directly instead of creating a GstGLDisplayVIVFb subclass
This simplifies the code a lot without any functional changes apart from
not closing the display connection. Closing the display connection is
not safe to do as it is shared between all other code in the same
process and no reference counting or anything happens at the platform
layer.
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.
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
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
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
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
Nicolas Dufresne [Tue, 19 Sep 2017 21:55:58 +0000 (17:55 -0400)]
v4l2videodec: Don't leak codec name
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
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.
Tim-Philipp Müller [Sun, 17 Sep 2017 11:50:30 +0000 (12:50 +0100)]
multifilesink: use new gst_buffer_list_calculate_size()
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
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
Jochen Henneberg [Wed, 6 Sep 2017 07:59:56 +0000 (07:59 +0000)]
qmlglsink: Expose itemInitialized as property
Instead of just signalling when ready exposing the state
as a property allows us to bind at any time if player is
loaded async.
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.
Nicolas Dufresne [Wed, 13 Sep 2017 15:52:09 +0000 (11:52 -0400)]
v4l2object: Don't leak the par value
Nicolas Dufresne [Wed, 13 Sep 2017 15:38:44 +0000 (11:38 -0400)]
v4l2-renegotiate: Don't leak the option context
Nicolas Dufresne [Wed, 13 Sep 2017 15:33:33 +0000 (11:33 -0400)]
v4l2src-renegotiate: Don't leak pipeline desc string
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.
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
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)
Tim-Philipp Müller [Thu, 7 Sep 2017 08:39:13 +0000 (09:39 +0100)]
qt: fix build with qmake
Move the package defines for GST_PLUGIN_DEFINE from the
command line into the source file to avoid quoting issues
(-DPACKAGE_NAME="foo" means the quotes won't actually make
it to the compiler and then it no longer gets a string constant).
Nicolas Dufresne [Tue, 5 Sep 2017 20:20:44 +0000 (16:20 -0400)]
Request minimum buffer even if need_pool is FALSE
When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.
https://bugzilla.gnome.org/show_bug.cgi?id=730758
Nicolas Dufresne [Tue, 5 Sep 2017 20:20:44 +0000 (16:20 -0400)]
Request minimum buffer even if need_pool is FALSE
When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.
https://bugzilla.gnome.org/show_bug.cgi?id=730758
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
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
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.
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.
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
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.
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
Matthew Waters [Fri, 1 Sep 2017 05:00:12 +0000 (15:00 +1000)]
gtkglsink: expose the created display and context correctly
1. Propagate the GstGLDisplay we create
2. Add the created GstGLContext to the propagated GstGLDisplay
Otherwise with multi-branch GL pipelines involving gtkglsink, things
will fall apart and errors will be genarated somewhere.
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
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.
Matej Knopp [Sat, 24 Jun 2017 16:47:14 +0000 (18:47 +0200)]
dcaparse: preserve DTS HD substream
Edward Hervey [Fri, 1 Sep 2017 13:56:04 +0000 (15:56 +0200)]
qt: Only include qtgui-config.h on qt >= 5.9.0
The file does not exist in previous versions
Matthew Waters [Thu, 31 Aug 2017 04:40:44 +0000 (14:40 +1000)]
qt: the defines for QT_OPENGL_ES_2 have moved
Update the includes to account for that
Jochen Henneberg [Wed, 26 Apr 2017 11:50:41 +0000 (13:50 +0200)]
qt: ensure GL_DRAW_FRAMEBUFFER
Arun Raghavan [Mon, 14 Aug 2017 12:48:07 +0000 (18:18 +0530)]
rtpsbcpay: Fix some tabs that crept in somehow
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
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
Tim-Philipp Müller [Sat, 26 Aug 2017 11:59:35 +0000 (12:59 +0100)]
tests: mpg123audiodec: add files needed by unit tests
Tim-Philipp Müller [Sat, 26 Aug 2017 09:10:19 +0000 (10:10 +0100)]
tests: add basic unit test for twolame as well
Tim-Philipp Müller [Sat, 26 Aug 2017 08:59:22 +0000 (09:59 +0100)]
tests: lame: fix build
Tim-Philipp Müller [Sat, 26 Aug 2017 08:52:33 +0000 (09:52 +0100)]
tests: ignore another binary
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
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
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
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
Julien Isorce [Tue, 22 Aug 2017 11:39:43 +0000 (12:39 +0100)]
qt: fix broken build due to commit
2fd84a6c for gstgl
https://bugzilla.gnome.org/show_bug.cgi?id=784779
Julien Isorce [Fri, 7 Jul 2017 15:15:12 +0000 (16:15 +0100)]
gl: do not include GL headers in public gstgl headers
Except for gst/gl/gstglfuncs.h
It is up to the client app to include these headers.
It is coherent with the fact that gstreamer-gl.pc does not
require any egl.pc/gles.pc. I.e. it is the responsability
of the app to search these headers within its build setup.
For example gstreamer-vaapi includes explicitly EGL/egl.h
and search for it in its configure.ac.
For example with this patch, if an app includes the headers
gst/gl/egl/gstglcontext_egl.h
gst/gl/egl/gstgldisplay_egl.h
gst/gl/egl/gstglmemoryegl.h
it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h.
Which is good because the app might want to use the gstgl api only
without the need to bother about gl headers.
Also added a test: cd tests/check && make libs/gstglheaders.check
https://bugzilla.gnome.org/show_bug.cgi?id=784779
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'
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.
Tim-Philipp Müller [Sun, 20 Aug 2017 14:49:12 +0000 (15:49 +0100)]
docs: update for changes in git
Tim-Philipp Müller [Sun, 20 Aug 2017 14:48:24 +0000 (15:48 +0100)]
mpg123: add to docs
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
Tim-Philipp Müller [Sun, 20 Aug 2017 12:48:48 +0000 (13:48 +0100)]
Moving mpg123 plugin from -ugly
Tim-Philipp Müller [Thu, 17 Aug 2017 11:23:25 +0000 (12:23 +0100)]
Automatic update of common submodule
From 48a5d85 to 3f4aa96
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
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
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.
Arun Raghavan [Mon, 14 Aug 2017 12:09:15 +0000 (17:39 +0530)]
rtpsbcpay: Fix compile error
Carlos Rafael Giani [Sun, 21 May 2017 14:01:14 +0000 (16:01 +0200)]
qmlglsink: Add itemInitialized signal to QML item
This is useful for autoplay for example. With autoplay, it is necessary to
wait until the scene graph is fully set up. This signal is emitted once the
QML item node is ready. So, inside a connected slot, the pipeline's state
can be set to PLAYING to automatically start playback as soon as the QML
script is loaded.
https://bugzilla.gnome.org/show_bug.cgi?id=786246
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.
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
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
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.
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
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.
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.
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
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
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
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
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).
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.
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.
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.
Nicolas Dufresne [Tue, 1 Aug 2017 20:01:11 +0000 (16:01 -0400)]
v4l2: Add VP8/9 encoder support
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
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
Nicolas Dufresne [Mon, 31 Jul 2017 20:09:30 +0000 (16:09 -0400)]
v4l2: Add H263 Encoder support
Nicolas Dufresne [Thu, 27 Jul 2017 17:51:25 +0000 (13:51 -0400)]
v4l2: Add missing no-inst header
Nicolas Dufresne [Wed, 26 Jul 2017 19:18:01 +0000 (15:18 -0400)]
v4l2: Add interface for MPEG4 encoding
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.
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
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
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.
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
Nicolas Dufresne [Mon, 24 Jul 2017 20:45:40 +0000 (16:45 -0400)]
v4l2: Fix compilation without libv4l2
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.
Nicolas Dufresne [Mon, 24 Jul 2017 18:27:05 +0000 (14:27 -0400)]
v4l2object: Removed unused members
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.
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
Nicolas Dufresne [Sat, 22 Jul 2017 03:34:59 +0000 (23:34 -0400)]
v4l2object: Fix colorimetry validation
While not documented, gst_video_colorimetry_matches() only accepts well
known names. Looking at the code and unit test, this seems to be on
purpose, so fixing by parsing the string and compating the colorimetry
structures.
Nicolas Dufresne [Fri, 21 Jul 2017 19:40:24 +0000 (15:40 -0400)]
v4l2encoder: Fix negotiation error handling
The subclass negotiated function will call set_format, if that fails the
pool will not be created. We ended up with an assertion.
GStreamer-CRITICAL **: gst_buffer_pool_set_active: assertion 'GST_IS_BUFFER_POOL (pool)' failed
Nicolas Dufresne [Thu, 20 Jul 2017 02:25:49 +0000 (22:25 -0400)]
v4l2src: Speedup camera startup by skipping try_fmt
In this commit, we enabled skip_try_fmt_probes quirk in order to speed
up the start which is known to be disastrously slow with certain USB
cameras.
This has the side effect that we needed to rewrite the entire
negotiation process in a way that we iterate over the possible caps
until we find one that works.
The new negotiation method consist of extracting a preferred structure
from the peer caps and using this to fixate and sort the caps. To
reflect the old behaviour, we sort all resolution strictly bigger
to the preferred one with the closes one first. The rest is appended,
keeping the same order. We then normalize the caps in case there was
some list of interlace-mode or colorimetry left. We finally iterate
over all fixed caps and try it. 99% of the time, the first or the
second one should work, whit the result of a single S_FMT being issues.
From there, it will be relatively easy to introduce new negotiation
algorithm. The current algorithm is made for optimal image quality
with a scaling sink that sets it's window resolution as preference.
This the case if for:
v4l2src ! videoconvert ! videoscale ! ximagesink
Other strategy would be needed to optimize for non-scaling sink like
ximagesink or kmssink when the driver does not scale.
https://bugzilla.gnome.org/show_bug.cgi?id=785156
Nicolas Dufresne [Thu, 20 Jul 2017 02:09:38 +0000 (22:09 -0400)]
v4l2object: Introduce quirk to skip slow probes
skip_try_fmt_probes quirk is set, V4L2 object will not probe for
interlace-mode and colorimetry to avoid relying on try_fmt. This quirk
will be used by v4l2src to avoid desastrous startup time with slow
USB webcams.
When this quirk is enabled, caller will have to iterate over the
negotiated caps as it may contains unsupported formats. If the peer
didn't choose a specific interlace-mode, or colorimetry, the value
chosen by the driver is set into the caps. For this reason, when this
mode is enabled, gst_v4l2_object_set_format() will require writable
caps.
https://bugzilla.gnome.org/show_bug.cgi?id=785156
Nicolas Dufresne [Thu, 20 Jul 2017 02:07:32 +0000 (22:07 -0400)]
v4l2object: always set the GstV4l2Error on error
Some of the error case were conditional to using try_fmt or not.
This is slightly unexpected, always set the error so the caller
can decide.
https://bugzilla.gnome.org/show_bug.cgi?id=785156
Nicolas Dufresne [Thu, 20 Jul 2017 02:05:49 +0000 (22:05 -0400)]
v4l2object: Minor style fix and useful trace
https://bugzilla.gnome.org/show_bug.cgi?id=785156