| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|
|
|
| |
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
|
|\
| |
| |
| | |
umpf-merge-topic: 1.0/topic/upstream
|
| |
| |
| |
| |
| |
| | |
The audio buffer was mapped so unmap it and not the video buffer
https://bugzilla.gnome.org/show_bug.cgi?id=706642
|
| |
| |
| |
| |
| |
| |
| |
| | |
gst_video_info_from_caps() always extract width, height, interlace mode and
framerate now. It is no longer necessary to do it again for encoded
formats.
https://bugzilla.gnome.org/show_bug.cgi?id=703399
|
| |
| |
| |
| |
| |
| |
| |
| | |
The pool accesses data from the v4l2object so it must exist at least
as long as the pool. Refcount the element which controls the object
live-time.
https://bugzilla.gnome.org/show_bug.cgi?id=701650
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In v2.6.18 control classes where added to the v4l2 API.
Iterating over CIDs starting with V4L2_CID_BASE will only find controls for
the first control class.
By iterating with V4L2_CTRL_FLAG_NEXT_CTRL all controls are found.
This is necessary to make controls from other control classes available in
the extra-controls property.
If V4L2_CTRL_FLAG_NEXT_CTRL is not defined at compile time or not supported
at runtime then the old mechanism for iterating is used.
https://bugzilla.gnome.org/show_bug.cgi?id=701540
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of just assuming a aspect ratio of 1/1 use VIDIOC_CROPCAP to ask
the device.
This also add a pixel-aspect-ratio property to overwrite the value from the
driver and a force-aspect-ratio property to ignore it.
https://bugzilla.gnome.org/show_bug.cgi?id=700285
|
| |
| |
| |
| | |
https://bugzilla.gnome.org/show_bug.cgi?id=701595
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Without this the following sequence fails:
- set_caps()
- object_stop() (does nothing)
- set_format() -> VIDIOC_S_FMT
- set_config() -> VIDIOC_REQBUFS with count = N
- set_caps()
- object_stop()
- pool_finalize()
- set_format() -> VIDIOC_S_FMT => EBUSY
Usually the pool is started after set_config(), in which case object_stop()
will result in a pool_stop and therefore VIDIOC_REQBUFS with count = 0 but
that is not guaranteed.
Also calling VIDIOC_REQBUFS with count = 0 in pool_finalize() if necessary
fixes this problem.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701543
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a followup patch for #700781, which is not quite correct.
The buffer handling is quite complicated here.
The original code intended to the the following:
- gst_v4l2_buffer_pool_process() calls QBUF and adds the buffer to the
local list.
- The sink calls gst_buffer_unref() which returns the buffer to the pool
but not the 'free list'.
- Some time later DQBUF returns the buffer and
gst_v4l2_buffer_pool_release_buffer() puts in on the 'free list'.
If the buffer must be copied then (parent_class)->acquire_buffer() is
called directly to keep the buffer in the pool.
This has two problems:
1. If gst_v4l2_buffer_pool_release_buffer() is called before the buffer is
returned to the pool, then the buffer is put on the 'free list' twice.
This can happen if a reference to the buffer is kept outside the sink,
of if DQBUF returns the buffer, that was just queued with QBUF.
2. If buffers are copied, then all buffers are in the pool at all times. As
a result gst_v4l2_buffer_pool_stop() and gst_v4l2_buffer_pool_dqbuf()
can access pool->buffers at the same time, which can lead to memory
corruption.
The patch for #700781 fixes those problems, but with the side effect that
there are always buffers outside the pool (because they are queued) and
the pool is never stopped.
This patch fixes this by releasing the reference to the buffer after
handling it (to avoid problem 2.) so it can be returned to the pool.
gst_v4l2_buffer_pool_release_buffer() is only called if the buffer is
already in the pool (to avoid problem 1.).
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701375
|
| |
| |
| |
| | |
in older versions
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes it possible to set any controls that can be set with
VIDIOC_S_CTRL.
The controls are set when the property is set (if the device is open)
and when the device is opened.
https://bugzilla.gnome.org/show_bug.cgi?id=698837
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Without this, a queued buffer may be required, filled and queued before it
is dequeued.
Calling gst_buffer_pool_acquire_buffer() ensures that the buffer is set up
correctly and gst_buffer_unref() calls buffer_release().
https://bugzilla.gnome.org/show_bug.cgi?id=700781
|
| |
| |
| |
| |
| |
| |
| |
| | |
This can happen if other parts of the pipeline are reconfigured.
Stop streaming even for a short amount of time can be quite visible, so it
should be avoided if possible.
https://bugzilla.gnome.org/show_bug.cgi?id=700503
|
| |
| |
| |
| | |
https://bugzilla.gnome.org/show_bug.cgi?id=700280
|
| |
| |
| |
| | |
https://bugzilla.gnome.org/show_bug.cgi?id=700282
|
| |
| |
| |
| |
| |
| |
| | |
Without this stopping the pool in *_set_caps() is useless.
S_FMT will still fail with EBUSY.
https://bugzilla.gnome.org/show_bug.cgi?id=699835
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When queuing a buffer for a sink, bytesused must contain the actual
amount of data.
For a source, the driver must overwrite this, so it doesn't matter
what is set here.
https://bugzilla.gnome.org/show_bug.cgi?id=699598
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the past gst_video_info_from_caps() only video/x-raw. Now it also
supports other video/* and image/* formats.
With this patch the format won't be GST_VIDEO_FORMAT_UNKOWN and
gst_v4l2_buffer_pool_set_config() handles strides correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=699570
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If max_buffers is 0 then an arbitrary number of buffers (currently 4) is
allocated. If this is not enough v4l2src starts copying buffers.
With this patch VIDIOC_CREATE_BUFS is used to allocate a new buffer. If
this fails v4l2src falls back to copying buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=699447
|
| |
| |
| |
| |
| |
| | |
clear the struct, and provide a correct error message
https://bugzilla.gnome.org/show_bug.cgi?id=699337
|
| |
| |
| |
| |
| |
| |
| | |
Newer kernels return -ENOTTY, older kernels return -EINVAL if the ioctl
is not implemented. With this patch, GStreamer handles both cases.
https://bugzilla.gnome.org/show_bug.cgi?id=698825
|
| |
| |
| |
| | |
https://bugzilla.gnome.org/show_bug.cgi?id=699294
|
| |
| |
| |
| |
| |
| |
| | |
Note that the V4L2 API defines that for output devices POLLOUT
indicates that a buffer is ready to be dequeued.
https://bugzilla.gnome.org/show_bug.cgi?id=698992
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The existence of a GstVideoFormatInfo does not guarantee, that
the buffer contains video frames, so the format must be checked.
Also, for encoded buffers the length is variable and must be set.
https://bugzilla.gnome.org/show_bug.cgi?id=698949
|
| |
| |
| |
| | |
https://bugzilla.gnome.org/show_bug.cgi?id=698826
|
| |
| |
| |
| |
| |
| |
| | |
In kernel v3.7-rc1, VIDIOC_ENUMSTD returns ENODATA if the current input
does not support the STD API.
https://bugzilla.gnome.org/show_bug.cgi?id=698827
|
| |
| |
| |
| |
| |
| |
| | |
The buffer might still be in use elsewhere when dequeuing buffers for
outputs.
https://bugzilla.gnome.org/show_bug.cgi?id=698822
|
| | |
|
|/
|
|
|
|
|
|
| |
v4l has add a new IOCTL to export a buffer by using dmabuf.
This patch allow to use this new IOTCL if it has been defined in videodev2.h
I introduce a new IO mode (GST_V4L2_IO_DMABUF) to enable this way of working.
https://bugzilla.gnome.org/show_bug.cgi?id=693826
|
| |
|
|
|
|
| |
avdec_h263 won't get plugged otherwise.
|
| |
|
|
|
|
|
|
| |
Due to function decorations on Windows AC_CHECK_LIB can't be used to check for bz2.
https://bugzilla.gnome.org/show_bug.cgi?id=465924
|
|
|
|
|
|
|
| |
others
Probably fixes
https://bugzilla.gnome.org/show_bug.cgi?id=705477
|
|
|
|
|
|
|
|
| |
In some cases the src caps determined by goom weren't writable, causing
a bunch of assertion failures and failed caps. Fixed by always
explicitely making the caps writable
https://bugzilla.gnome.org/show_bug.cgi?id=705475
|
|
|
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=705142
Conflicts:
gst/flv/gstflvdemux.c
|
|
|
|
| |
This time with ChangeLog file
|
| |
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=704951
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=704921
|
| |
|
|
|
|
|
|
| |
The caps should be used to get the mimetype and there is
only an info structure for the GstSample if the image-type
is not NONE.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=705018
|
|
|
|
|
|
|
|
| |
This way, we don't block the initial negotiation.
Thanks to Jeremy Whiting for doing all the testing.
https://bugzilla.gnome.org/show_bug.cgi?id=695981
|