platform/upstream/gstreamer.git
4 years agoMerge branch 'plugin-move-rpicamsrc'
Tim-Philipp Müller [Thu, 9 Jul 2020 11:46:30 +0000 (11:46 +0000)]
Merge branch 'plugin-move-rpicamsrc'

Move rpicamsrc from https://github.com/thaytan/gst-rpicamsrc/

It's a useful little element and works well, so might as well
make sure it's widely available so people can stop piping
raspivid output into fdsrc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>

4 years agorpicamsrc: sync autotools with glib-mkenum usage in meson build
Tim-Philipp Müller [Sat, 2 May 2020 19:27:20 +0000 (19:27 +0000)]
rpicamsrc: sync autotools with glib-mkenum usage in meson build

4 years agorpicamsrc: meson: use gnome.glib_mkenums_simple() and fix build as Meson subproject
Tim-Philipp Müller [Sat, 2 May 2020 18:28:10 +0000 (18:28 +0000)]
rpicamsrc: meson: use gnome.glib_mkenums_simple() and fix build as Meson subproject

While at it also fix up the type defines, e.g.
GST_RPI_CAM_TYPE_RPI_CAM_SRC_EXPOSURE_MODE -> GST_RPI_CAM_SRC_TYPE_EXPOSURE_MODE

4 years agorpicamsrc: meson: drop map file and fix plugin symbol export with newer gstreamer...
Tim-Philipp Müller [Sun, 3 May 2020 11:09:47 +0000 (11:09 +0000)]
rpicamsrc: meson: drop map file and fix plugin symbol export with newer gstreamer versions

Use -fvisibility instead of a map file for symbol export, so that
the right symbols get exported with newer gstreamer versions. Older
GStreamer versions also still work of course.

Fixes blacklisting/plugin-loading issues with GStreamer >= 1.14

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/984,
closes https://github.com/thaytan/gst-rpicamsrc/issues/94
and https://github.com/thaytan/gst-rpicamsrc/issues/67

4 years agorpicamsrc: Attempt to workaround MMAL timeout bug
Jan Schmidt [Mon, 16 Jul 2018 09:49:21 +0000 (19:49 +1000)]
rpicamsrc: Attempt to workaround MMAL timeout bug

mmal_queue_timedwait() might spuriously return immediately
if called at exactly the wrong instant due to an internal
off-by-one bug. Attempt to work around that and just retry.

4 years agorpicamsrc: Improve timeout error
Jan Schmidt [Mon, 16 Jul 2018 09:30:26 +0000 (19:30 +1000)]
rpicamsrc: Improve timeout error

Propagate timeout errors so they're not reported
generically

4 years agorpicamsrc: webrtc example: Add a STUN server to the configuration
Jan Schmidt [Thu, 21 Jun 2018 12:50:28 +0000 (22:50 +1000)]
rpicamsrc: webrtc example: Add a STUN server to the configuration

To let the webrtc example work through NAT firewalls

4 years agorpicamsrc: webrtc example: Modify HTML to support other ports than 57778
Jan Schmidt [Thu, 21 Jun 2018 12:44:25 +0000 (22:44 +1000)]
rpicamsrc: webrtc example: Modify HTML to support other ports than 57778

4 years agorpicamsrc: webrtc example: Remove external fmtp insertion
Jan Schmidt [Thu, 21 Jun 2018 11:45:32 +0000 (21:45 +1000)]
rpicamsrc: webrtc example: Remove external fmtp insertion

GStreamer 1.14.2 should contain the backport of gst-plugins-bad
commit 5c450c5 adding FEC and RTX support, and incidentally
the fmtp field in the SDP

4 years agorpicamsrc: webrtc example: Set the locale
Jan Schmidt [Thu, 21 Jun 2018 10:33:03 +0000 (20:33 +1000)]
rpicamsrc: webrtc example: Set the locale

Make the date format in the overlay respect the current
locale

4 years agorpicamsrc: Don't destroy the camera component on startup error
Jan Schmidt [Wed, 20 Jun 2018 15:36:42 +0000 (15:36 +0000)]
rpicamsrc: Don't destroy the camera component on startup error

Just disable the camera component when it fails to start. The
most common reason is that the camera device is already in use,
and if we just disable the mmal component correct cleanup
will happen later

4 years agorpicamsrc: Add webrtc streaming example
Jan Schmidt [Sat, 12 May 2018 21:13:52 +0000 (21:13 +0000)]
rpicamsrc: Add webrtc streaming example

Add an example for testing webrtc streaming from the rpi
camera, based on the code from
https://bugzilla.gnome.org/show_bug.cgi?id=795404

Requires GStreamer 1.14.1 or git master

4 years agorpicamsrc: Expose constrained-baseline profile
Jan Schmidt [Sat, 12 May 2018 19:57:43 +0000 (19:57 +0000)]
rpicamsrc: Expose constrained-baseline profile

constrained-baseline is a useful profile for streaming to iOS
devices, and seems to work in the firmware, so let's publish it

4 years agorpicamsrc: Add define and increase reported maximum FPS from 90 to 1000
Jan Schmidt [Wed, 28 Mar 2018 11:00:10 +0000 (22:00 +1100)]
rpicamsrc: Add define and increase reported maximum FPS from 90 to 1000

4 years agorpicamsrc: Expand frame timeout from 100ms to 500ms
Jan Schmidt [Tue, 14 Nov 2017 04:01:21 +0000 (15:01 +1100)]
rpicamsrc: Expand frame timeout from 100ms to 500ms

rpicamsrc on a normal rpi camera doesn't start up fast enough,
and always fails the new 100ms timeout. A better solution
might be to have a longer timeout for the first frame, but
shorter once frames are running - but this quick fix will at
least make rpicamsrc work again.

4 years agorpicamsrc: RaspiCapture: use mmal_queue_timedwait() for buffer queueing
Georgii Staroselskii [Wed, 8 Nov 2017 09:14:35 +0000 (09:14 +0000)]
rpicamsrc: RaspiCapture: use mmal_queue_timedwait() for buffer queueing

If an external camera was disconnected, there were no feedback in an
application. It seems reasonable to wait on mmal_queue no longer than
100ms. If it's stuck we just return a FLOW_ERROR and let the application
decide what to do later.

4 years agorpicamsrc: RaspiCapture: handle MMAL_EVENT_ERROR
Georgii Staroselskii [Tue, 7 Nov 2017 15:14:06 +0000 (15:14 +0000)]
rpicamsrc: RaspiCapture: handle MMAL_EVENT_ERROR

4 years agorpicamsrc: Implement use-stc property to disable STC timestamps
Jan Schmidt [Fri, 30 Jun 2017 14:51:13 +0000 (00:51 +1000)]
rpicamsrc: Implement use-stc property to disable STC timestamps

If use-stc=false, then rpicamsrc won't apply
the camera timestamping to outgoing buffers, instead
relying on real-time timestamping by the
GStreamer clock. It means slightly less accuracy
and more jitter in timestamps, but might help on some
CSI inputs with broken timestamping.

4 years agorpicamsrc: Fix the descriptions of text annotation colour properties
Jan Schmidt [Fri, 19 May 2017 10:55:35 +0000 (20:55 +1000)]
rpicamsrc: Fix the descriptions of text annotation colour properties

The text annotation colour properties take an integer value
corresponding to a VUY colour, not a text string like
the copy-pasted description from raspivid suggests.

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/59

4 years agorpicamsrc: Implement dynamic bitrate update
Jan Schmidt [Fri, 27 Jan 2017 01:58:29 +0000 (12:58 +1100)]
rpicamsrc: Implement dynamic bitrate update

Use mmal_port_set_parameter_uint32 to update the encoder
bitrate.

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/60

4 years agorpicamsrc: Set outgoing buffer durations based on negotiated framerate.
Jan Schmidt [Sat, 8 Oct 2016 11:12:09 +0000 (11:12 +0000)]
rpicamsrc: Set outgoing buffer durations based on negotiated framerate.

make sure outgoing buffers have at least some duration set,
otherwise it leads to strange situations, like qtmux writing
out a file that doesn't include the final frame inside the
playable segment, because no-duration = 0 duration there.

4 years agorpicamsrc: Destroy mmal pool on shutdown always.
Jan Schmidt [Sat, 8 Oct 2016 11:10:30 +0000 (11:10 +0000)]
rpicamsrc: Destroy mmal pool on shutdown always.

Avoid hangs on the next run because we didn't clean up the mmal pool
last time we shutdown.

4 years agorpicamsrc: Switch back to MJPEG codec for image/jpeg
Jan Schmidt [Mon, 3 Oct 2016 15:29:49 +0000 (15:29 +0000)]
rpicamsrc: Switch back to MJPEG codec for image/jpeg

The JPEG codec hangs, not sure why yet. The MJPEG
codec doesn't provide a quality setting, and sometimes
freezes on shutdown, but otherwise seems more
reliable

4 years agorpicamsrc: Don't try and set H264 params with JPEG codec
Jan Schmidt [Mon, 3 Oct 2016 14:00:54 +0000 (14:00 +0000)]
rpicamsrc: Don't try and set H264 params with JPEG codec

4 years agorpicamsrc: First attempt at implementing MJPEG and raw video support
Jan Schmidt [Sun, 2 Oct 2016 15:34:50 +0000 (02:34 +1100)]
rpicamsrc: First attempt at implementing MJPEG and raw video support

4 years agorpicamsrc: Add experimental build using the Meson build system
Tim-Philipp Müller [Mon, 19 Sep 2016 12:06:05 +0000 (12:06 +0000)]
rpicamsrc: Add experimental build using the Meson build system

Builds in about 10 seconds vs. 77 seconds with autotools.

4 years agorpicamsrc: Implement GstVideoDirection interface
Xabier Rodriguez Calvar [Tue, 30 Aug 2016 15:00:41 +0000 (17:00 +0200)]
rpicamsrc: Implement GstVideoDirection interface

Instead of implementing a custom property, we implement that interface.

4 years agorpicamsrc: MMAL gives buffers with nal alignment, not AU
Jan Schmidt [Wed, 20 Jul 2016 16:29:57 +0000 (02:29 +1000)]
rpicamsrc: MMAL gives buffers with nal alignment, not AU

Fix the output caps, our buffers are not AU aligned, since
the SPS / PPS are given in separate packets at the start.

4 years agorpicamsrc: Create orientation property
Xabier Rodriguez Calvar [Fri, 8 Jul 2016 13:32:21 +0000 (15:32 +0200)]
rpicamsrc: Create orientation property

Its behavior and choices are analog to the ones present in [gl]videoflip
for the method property.

4 years agorpicamsrc: basesrc event handlers should not unref
Jan Schmidt [Sat, 2 Jan 2016 21:26:23 +0000 (08:26 +1100)]
rpicamsrc: basesrc event handlers should not unref

Don't unref the passed event when handling events via
the GstBaseSrc src pad event handler - basesrc does
the unref. That breaks handling of upstream
force-key-unit events by unreffing twice.

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/43

4 years agorpicamsrc: Add property getters for preview window position.
Jan Schmidt [Thu, 17 Dec 2015 03:16:10 +0000 (14:16 +1100)]
rpicamsrc: Add property getters for preview window position.

Add the lines in get_property() for the preview-x/y/w/h properties
so the values can be retrieved without causing critical warnings.

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/42

4 years agorpicamsrc: Add preview-x/y/w/h properties
Jan Schmidt [Tue, 1 Dec 2015 14:20:10 +0000 (01:20 +1100)]
rpicamsrc: Add preview-x/y/w/h properties

Expose properties for setting the position of the preview
window on the screen

4 years agorpicamsrc: Add properties for configuring annotation text size and colour.
Jan Schmidt [Wed, 21 Oct 2015 10:11:36 +0000 (21:11 +1100)]
rpicamsrc: Add properties for configuring annotation text size and colour.

Map the raspivid setting for annotation text size and colours
to properties.

4 years agorpicamsrc: Changed awb-gain-blue use the correct enum PROP_AWB_GAIN_BLUE and not...
ibauer [Thu, 8 Oct 2015 08:32:32 +0000 (10:32 +0200)]
rpicamsrc: Changed awb-gain-blue use the correct enum PROP_AWB_GAIN_BLUE and not PROP_AWB_GAIN_RED

4 years agorpicamsrc: Fix buffer PTS calculation
Jan Schmidt [Sat, 18 Jul 2015 15:48:35 +0000 (01:48 +1000)]
rpicamsrc: Fix buffer PTS calculation

Timestamps from MMAL are in microseconds,
so make sure to convert to nanoseconds before
using them to adjust the GStreamer buffer time

4 years agorpicamsrc: Basic orientation interface support
Philippe Normand [Mon, 11 May 2015 09:16:52 +0000 (11:16 +0200)]
rpicamsrc: Basic orientation interface support

The (h,v)flip attributes are now supported through this interface.
It should also be possible to support (h,v)center attributes using the
ROI properties.

4 years agorpicamsrc: Describe awb-mode=off in lowercase
Jan Schmidt [Mon, 11 May 2015 11:29:58 +0000 (21:29 +1000)]
rpicamsrc: Describe awb-mode=off in lowercase

Change the descriptions for the awb-gain-blue and awb-gain-red
properties to say 'awb-mode=off' instead of 'awb-mode=OFF'

See https://github.com/thaytan/gst-rpicamsrc/issues/26

4 years agorpicamsrc: colorbalance: protect with config_lock mutex
Philippe Normand [Mon, 11 May 2015 08:17:18 +0000 (10:17 +0200)]
rpicamsrc: colorbalance: protect with config_lock mutex

4 years agorpicamsrc: add test-color-balance example
Philippe Normand [Tue, 5 May 2015 17:03:43 +0000 (19:03 +0200)]
rpicamsrc: add test-color-balance example

This small test will display a live video preview of the rpicam with
the balance controls being updated once a second. The controls to
update can be disabled in the source by setting the CONTROL_* macros
values to 0.

4 years agorpicamsrc: Implement GstColorBalance interface
Philippe Normand [Wed, 29 Apr 2015 14:36:18 +0000 (16:36 +0200)]
rpicamsrc: Implement GstColorBalance interface

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/24

4 years agorpicamsrc: Fix initial config setting.
Jan Schmidt [Mon, 27 Apr 2015 12:56:32 +0000 (22:56 +1000)]
rpicamsrc: Fix initial config setting.

Make sure to update the captsure config before starting
capture. Since the capture component now keeps a local
copy of the config, it's not updated automatically.

4 years agorpicamsrc: Disable bitrate, quantisation and intra-refresh dynamic changes
Jan Schmidt [Sun, 26 Apr 2015 18:05:42 +0000 (04:05 +1000)]
rpicamsrc: Disable bitrate, quantisation and intra-refresh dynamic changes

The firmware rejects dynamic changes of those encoder params.

4 years agorpicamsrc: Send vcos_log_warn via GStreamer debug messages
Jan Schmidt [Sun, 26 Apr 2015 18:05:04 +0000 (04:05 +1000)]
rpicamsrc: Send vcos_log_warn via GStreamer debug messages

4 years agorpicamsrc: Add dynamic properties example
Jan Schmidt [Sun, 26 Apr 2015 16:43:14 +0000 (02:43 +1000)]
rpicamsrc: Add dynamic properties example

Python example of adjusting saturation on the fly

4 years agorpicamsrc: Update properties dynamically where possible
Jan Schmidt [Sun, 26 Apr 2015 14:54:54 +0000 (00:54 +1000)]
rpicamsrc: Update properties dynamically where possible

Update camera and encoder properties at runtime
where possible

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/19
and https://github.com/thaytan/gst-rpicamsrc/issues/23

4 years agorpicamsrc: split preview config and state
Jan Schmidt [Sun, 26 Apr 2015 14:40:23 +0000 (00:40 +1000)]
rpicamsrc: split preview config and state

4 years agorpicamsrc: Clear intra-refresh MMAL param struct.
Jan Schmidt [Mon, 20 Apr 2015 16:45:59 +0000 (02:45 +1000)]
rpicamsrc: Clear intra-refresh MMAL param struct.

Use memset on the stack allocated MMAL_PARAMETER_VIDEO_INTRA_REFRESH_T
struct. Apparently mmal_port_parameter_get() doesn't retrieve all
parameters, causing random failures when we set the intra-refresh
param on the encoder.

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/22 for me.

4 years agorpicamsrc: Merge changes from userland repo
Jan Schmidt [Mon, 20 Apr 2015 15:17:55 +0000 (01:17 +1000)]
rpicamsrc: Merge changes from userland repo

Current to b69f807ce59189457662c2144a8e7e12dc776988

No integration of stereoscopic support as yet

4 years agorpicamsrc: Map intra-refresh cyclic-rows to the correct MMAL param.
Jan Schmidt [Mon, 20 Apr 2015 14:02:27 +0000 (00:02 +1000)]
rpicamsrc: Map intra-refresh cyclic-rows to the correct MMAL param.

4 years agorpicamsrc: Use MMAL PTS and STC to calculate GStreamer timestamps
Jan Schmidt [Mon, 9 Mar 2015 13:22:40 +0000 (00:22 +1100)]
rpicamsrc: Use MMAL PTS and STC to calculate GStreamer timestamps

Don't apply timestamps based on output time from the encoder,
but use the MMAL STC and capture PTS to generate a GStreamer
timestamp that more accurately resembles the input (and would
preserve reordering should the encoder ever add B-frames).

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/16

4 years agorpicamsrc: Defer encoder creation until after caps are negotiated
Jan Schmidt [Fri, 6 Mar 2015 15:11:25 +0000 (02:11 +1100)]
rpicamsrc: Defer encoder creation until after caps are negotiated

This ensures the encoder is created with the profile
negotiated with downstream

4 years agorpicamsrc: Read and set H.264 profile from negotiated caps
Jan Schmidt [Fri, 6 Mar 2015 14:17:30 +0000 (01:17 +1100)]
rpicamsrc: Read and set H.264 profile from negotiated caps

4 years agorpicamsrc: Add intra-refresh-type property, and set default keyframe spacing to ...
Jan Schmidt [Thu, 5 Mar 2015 16:43:07 +0000 (03:43 +1100)]
rpicamsrc: Add intra-refresh-type property, and set default keyframe spacing to -1 (auto)

This plus other recent commits mostly fix
bug https://github.com/thaytan/gst-rpicamsrc/issues/16

4 years agorpicamsrc: Add annotation-mode and annotation-text properties
Jan Schmidt [Thu, 5 Mar 2015 16:05:24 +0000 (03:05 +1100)]
rpicamsrc: Add annotation-mode and annotation-text properties

4 years agorpicamsrc: implement sensor-mode property
Jan Schmidt [Thu, 5 Mar 2015 15:42:00 +0000 (02:42 +1100)]
rpicamsrc: implement sensor-mode property

4 years agorpicamsrc: More conversion to GStreamer logging
Jan Schmidt [Thu, 5 Mar 2015 14:27:44 +0000 (01:27 +1100)]
rpicamsrc: More conversion to GStreamer logging

4 years agorpicamsrc: Implement drc property
Jan Schmidt [Thu, 5 Mar 2015 14:15:48 +0000 (01:15 +1100)]
rpicamsrc: Implement drc property

4 years agorpicamsrc: add awb-gain-red and awb-gain-blue properties
Jan Schmidt [Thu, 5 Mar 2015 14:09:16 +0000 (01:09 +1100)]
rpicamsrc: add awb-gain-red and awb-gain-blue properties

4 years agorpicamsrc: Add camera-number property
Jan Schmidt [Thu, 5 Mar 2015 13:52:37 +0000 (00:52 +1100)]
rpicamsrc: Add camera-number property

4 years agorpicamsrc: add inline-headers and shutter-speed properties
Jan Schmidt [Thu, 5 Mar 2015 13:45:05 +0000 (00:45 +1100)]
rpicamsrc: add inline-headers and shutter-speed properties

4 years agorpicamsrc: Add quantisation-parameter property, support variable bitrate
Jan Schmidt [Thu, 5 Mar 2015 13:21:31 +0000 (00:21 +1100)]
rpicamsrc: Add quantisation-parameter property, support variable bitrate

Allow birate=0 and implement the quantisation-parameter property

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/21

4 years agorpicamsrc: Incorporate raspivid changes from upstream
Jan Schmidt [Thu, 5 Mar 2015 06:01:33 +0000 (17:01 +1100)]
rpicamsrc: Incorporate raspivid changes from upstream

Merge all changes for new features from upstream
raspberrypi userland, up to commit 0de0b2

4 years agorpicamsrc: Add keyframe-interval property to the element
Jan Schmidt [Sun, 4 Jan 2015 15:21:16 +0000 (02:21 +1100)]
rpicamsrc: Add keyframe-interval property to the element

4 years agorpicamsrc: deviceprovider: check if camera is detected and supported
Tim-Philipp Müller [Thu, 30 Oct 2014 00:45:18 +0000 (00:45 +0000)]
rpicamsrc: deviceprovider: check if camera is detected and supported

4 years agorpicamsrc: Add GstDeviceProvider for rpi camera module
Tim-Philipp Müller [Wed, 29 Oct 2014 00:43:51 +0000 (00:43 +0000)]
rpicamsrc: Add GstDeviceProvider for rpi camera module

4 years agorpicamsrc: avoid single-element lists in template caps
Tim-Philipp Müller [Sat, 27 Sep 2014 13:31:10 +0000 (14:31 +0100)]
rpicamsrc: avoid single-element lists in template caps

4 years agorpicamsrc: Add force-key-unit event support
Vivia Nikolaidou [Thu, 9 Oct 2014 20:38:41 +0000 (20:38 +0000)]
rpicamsrc: Add force-key-unit event support

4 years agorpicamsrc: Move all debug output to go via GStreamer logs
Jan Schmidt [Wed, 12 Mar 2014 13:16:18 +0000 (00:16 +1100)]
rpicamsrc: Move all debug output to go via GStreamer logs

Fixes https://github.com/thaytan/gst-rpicamsrc/issues/9

4 years agorpicamsrc: Update maximum framerate to 90 fps
Jan Schmidt [Sat, 19 Oct 2013 07:52:25 +0000 (18:52 +1100)]
rpicamsrc: Update maximum framerate to 90 fps

4 years agorpicamsrc: Enable image effects
Jan Schmidt [Sun, 13 Oct 2013 15:39:00 +0000 (02:39 +1100)]
rpicamsrc: Enable image effects

4 years agorpicamsrc: Re-flow element source code with gst-indent
Jan Schmidt [Sun, 13 Oct 2013 07:01:00 +0000 (18:01 +1100)]
rpicamsrc: Re-flow element source code with gst-indent

4 years agorpicamsrc: Implement a bunch of the raspivid command-line params
Jan Schmidt [Sun, 13 Oct 2013 06:46:07 +0000 (17:46 +1100)]
rpicamsrc: Implement a bunch of the raspivid command-line params

Add properties for controlling various parts of the capture

4 years agorpicamsrc: Tell basesrc to timestamp buffers for us, for now.
Jan Schmidt [Sat, 12 Oct 2013 14:29:08 +0000 (01:29 +1100)]
rpicamsrc: Tell basesrc to timestamp buffers for us, for now.

4 years agorpicamsrc: Initial caps nego and properties.
Jan Schmidt [Sat, 12 Oct 2013 14:20:51 +0000 (01:20 +1100)]
rpicamsrc: Initial caps nego and properties.

Support caps negotiation for H.264 frame size and framerate.

Add bitrate, saturation, brightness, contrast, sharpness properties.

4 years agorpicamsrc: First version which generates buffers on the src pad
Jan Schmidt [Sat, 12 Oct 2013 08:23:03 +0000 (19:23 +1100)]
rpicamsrc: First version which generates buffers on the src pad

Fixed to 1920x1080 h264 regardless of caps.

4 years agorpicamsrc: Checkpoint. Version which writes directly to test.out
Jan Schmidt [Sat, 12 Oct 2013 01:42:07 +0000 (12:42 +1100)]
rpicamsrc: Checkpoint. Version which writes directly to test.out

Switch to plain basesrc for parent class

4 years agorpicamsrc: checkpoint
Jan Schmidt [Fri, 11 Oct 2013 08:17:05 +0000 (19:17 +1100)]
rpicamsrc: checkpoint

4 years agorpicamsrc: Initial commit
Jan Schmidt [Thu, 10 Oct 2013 12:47:38 +0000 (23:47 +1100)]
rpicamsrc: Initial commit

Simple modified gst-template to use BaseCameraSrc
Incorporate Broadcom mmal headers

4 years agosouphttpsrc: don't fail when seeking past the end of the content
Michael Olbrich [Thu, 19 Apr 2018 11:57:26 +0000 (13:57 +0200)]
souphttpsrc: don't fail when seeking past the end of the content

Range errors are already turned into EOS when the size is not known.
Do the same thing if the request as outside the known content size.

This can be triggered by seeking in a queue2:
- Ensure that the range containing the end of the file is available.
- Seek into this range from a different range.
- queue2 creates a seek event with start=<file-size>
- this results in a "Requested Range Not Satisfiable" error

Fixes #452

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/385>

4 years agosouphttpsrc: don't update the size on error
Michael Olbrich [Sun, 10 Nov 2019 20:19:09 +0000 (21:19 +0100)]
souphttpsrc: don't update the size on error

Any data corresponding length in the message is not part of the requested
file.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/385>

4 years agoqt/gloverlay: fix using OpenGL after destroying Qml
Matthew Waters [Thu, 18 Jun 2020 09:12:46 +0000 (19:12 +1000)]
qt/gloverlay: fix using OpenGL after destroying Qml

Qml somewhat unhelpfully seems to uncurrent our OpenGL context on its
destruction.  Work around that by uncurrenting and recurrenting again.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/632>

4 years agomeson: set release date from .doap file for releases
Tim-Philipp Müller [Wed, 8 Jul 2020 16:02:34 +0000 (17:02 +0100)]
meson: set release date from .doap file for releases

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/664>

4 years agoqtmux: Don't lock object lock twice in prefill mode
Sebastian Dröge [Tue, 7 Jul 2020 09:36:01 +0000 (12:36 +0300)]
qtmux: Don't lock object lock twice in prefill mode

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/762

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/663>

4 years agomeson: add update-orc-dist target
Tim-Philipp Müller [Sat, 4 Jul 2020 00:02:02 +0000 (01:02 +0100)]
meson: add update-orc-dist target

Add target to update backup orc -dist.[ch] files.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/662>

4 years agov4l2: Do not renegotiate if only framerate changed
Xavier Claessens [Tue, 26 May 2020 14:27:35 +0000 (10:27 -0400)]
v4l2: Do not renegotiate if only framerate changed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/602>

4 years agoflacenc: Pass audio info from set_format() to query_total_samples() explicitly
Sebastian Dröge [Thu, 2 Jul 2020 06:15:08 +0000 (09:15 +0300)]
flacenc: Pass audio info from set_format() to query_total_samples() explicitly

This fixes writing of the seek table header.

gst_audio_encoder_get_audio_info() will still return old/unset audio
info until set_format() has actually returned, which then results in
query_total_samples() to always return 0.

Thanks to Jacob Kauffmann for debugging this and finding the main cause.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/756

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/661>

4 years agoBack to development
Tim-Philipp Müller [Fri, 3 Jul 2020 01:03:33 +0000 (02:03 +0100)]
Back to development

4 years agoRelease 1.17.2
Tim-Philipp Müller [Thu, 2 Jul 2020 23:27:47 +0000 (00:27 +0100)]
Release 1.17.2

4 years agodeinterlace: Disable nasm support on x32
Nirbheek Chauhan [Thu, 2 Jul 2020 02:23:14 +0000 (07:53 +0530)]
deinterlace: Disable nasm support on x32

The assembly assumes pointers are 64-bit, so just disable it.

Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/757

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/660>

4 years agodeinterlace: Fix build on x32
Nirbheek Chauhan [Wed, 1 Jul 2020 12:49:09 +0000 (18:19 +0530)]
deinterlace: Fix build on x32

Need to pass `-f elfx32` to nasm in that case.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/757

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/657>

4 years agomatroska-mux: Wait for caps on sparse streams
Jan Schmidt [Wed, 1 Jul 2020 06:17:19 +0000 (16:17 +1000)]
matroska-mux: Wait for caps on sparse streams

Don't set sparse streams to non-waiting at the collectpads
level until after capa arrive, as we need caps on all
pads before the file headers get written, or else the
subtitle track will be silently absent in the final file.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/724

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/656>

4 years agomatroska-mux: Warn on late caps arrival
Jan Schmidt [Wed, 1 Jul 2020 06:13:27 +0000 (16:13 +1000)]
matroska-mux: Warn on late caps arrival

As well as warning when caps change after the headers
were already written, make sure to warn if the *first* caos
arrive late too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/656>

4 years agoimagefreeze: Return TRUE from the LATENCY query handling
Sebastian Dröge [Tue, 30 Jun 2020 15:37:06 +0000 (18:37 +0300)]
imagefreeze: Return TRUE from the LATENCY query handling

We always answer it successfully no matter what.

The default return value in the function is FALSE even if the code below
sets it again to FALSE.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/654>

4 years agoimagefreeze: Add test for new live mode
Sebastian Dröge [Mon, 29 Jun 2020 08:53:39 +0000 (11:53 +0300)]
imagefreeze: Add test for new live mode

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/653>

4 years agoimagefreeze: Add a live mode
Sebastian Dröge [Mon, 29 Jun 2020 07:10:09 +0000 (10:10 +0300)]
imagefreeze: Add a live mode

Previously imagefreeze would always operate as non-live element and
output frames as fast as possible according to the configured segment
(via SEEK events) and the negotiated framerate from start to stop or the
other way around.

With the new live mode (enabled via the is-live property) it would only
output frames in PLAYING. Frames would be output according to the
negotiated framerate unless it would be too late, in which case it would
jump ahead and skip over the requirement amount of frames.

This makes it possible to actually use imagefreeze in live pipelines
without having to manually ensure somehow that it would start outputting
at the current running time and without still risking to fall behind
without recovery.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/653>

4 years agoimagefreeze: Correctly answer the LATENCY query
Sebastian Dröge [Sun, 28 Jun 2020 19:26:23 +0000 (22:26 +0300)]
imagefreeze: Correctly answer the LATENCY query

We never run as a live element, even if upstream is live, and never
output any buffers with latency but immediately generate buffers as
fast as we can according to the negotiated framerate.

Passing the query upstream would proxy whatever mode of operation
upstream has, which has nothing to do with how we produce buffers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/653>

4 years agov4l2: Fix threading issues in orphaning mechanism
Nicolas Dufresne [Thu, 25 Jun 2020 18:15:51 +0000 (14:15 -0400)]
v4l2: Fix threading issues in orphaning mechanism

The pool orphaning function was colling internal _stop() virtual function
implementation. This is not thread safe, as a private lock inside the buffer
pool is supposed to be held. Fix this by keeping delayed _stop() and orphaning
the GstV4L2Allocator instead (REQBUFS(0)).

Then, protect the orphaned boolean with the object lock for the case a buffer
is being released after we have orphaned the buffer. That would otherwise
cause a QBUF to happen while the queue is no longer owned by the buffer pool.
This boolean is otherwise used and set from the streaming lock, or after
threads have been stopped (final cleanup).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/648>

4 years agov4l2bufferpoool: Fix requeueue after seek when importing
Nicolas Dufresne [Fri, 26 Jun 2020 20:43:37 +0000 (16:43 -0400)]
v4l2bufferpoool: Fix requeueue after seek when importing

When the buffer pool is importing buffer, it will requeue num_allocated on
streamon. As this value was not set for DMABuf import and USERPTR, no buffer
was queued  back.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/651>

4 years agoRevert "v4l2bufferpool: request the maximum number of buffers for USERPTR"
Nicolas Dufresne [Fri, 26 Jun 2020 20:39:42 +0000 (16:39 -0400)]
Revert "v4l2bufferpool: request the maximum number of buffers for USERPTR"

This reverts commit 6bf9f4bd77a4c6cce8786893feea7d601a6e6030.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/651>

4 years agoRevert "v4l2bufferpool: request the maximum number of buffers for DMABUF"
Nicolas Dufresne [Fri, 26 Jun 2020 20:37:06 +0000 (16:37 -0400)]
Revert "v4l2bufferpool: request the maximum number of buffers for DMABUF"

This reverts commit 94e323c10f2d7fa85bf63f357d203ca5305800c6.

Fixes #754

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/651>