platform/upstream/gstreamer.git
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