By passing NULL to `g_signal_new` instead of a marshaller, GLib will
actually internally optimize the signal (if the marshaller is available
in GLib itself) by also setting the valist marshaller. This makes the
signal emission a bit more performant than the regular marshalling,
which still needs to box into `GValue` and call libffi in case of a
generic marshaller.
Note that for custom marshallers, one would use
`g_signal_set_va_marshaller()` with the valist marshaller instead.
need to pass a GstSample to the utilitary preview buffer post functions
as a GstBuffer doesn't have caps anymore. The GstSample has the GstCaps
and it is used to inform the preview's pipeline about the format of the
input, before it gets converted to the user's requested output format.
Create preview pipeline already in initialization phase. This speeds
up NULL_TO_READY state change. Also implement a separate function for
setting the preview filter element.
This also restricts the preview filter property to work only on
NULL state.
If the preview pipeline fails creation, for any reason, we should
fail basecamerasrc state change.
Also adds a missing g_return_if_fail check to preview pipeline
functions
The use of this method was removed in:
commit 539f10f4d9
basecamerasrc: More cleanup
The code from wrappercamerabinsrc is from v4l2camerasrc but is unused:
get_allowed_input_caps is not called anywhere.
This is not implemented in any of our real sources to which wrappercamerabinsrc
might connect but this is optional and can be implemented at any time. A
limit on the software zoom level using video{crop,scale} would be arbitrary.
Use resource warning messages to notify camerabin2 that a capture
as aborted or couldn't be started, making it decrement the
processing counter and making the idle property more reliable.
Checks if the new received preview-caps are equal to what is
already in use, skips the preview-caps setting logic in case
new caps are same as current ones.
Adds a virtual function to basecamerasrc in case subclasses want to be
notified of changing preview caps. This is useful if the subclass wants
to post the preview itself or if it wants to provide a preview buffer
as close to as possible to the user's requested resolution to the
preview generation pipeline.
Adds some more logging and always assume capture has started before
start_capture is called. This helps on image captures that might
call finish_capture directly from start_capture or before start_capture
finishes.