diff --git a/girs/GstBadBaseCameraBin-1.0.gir b/girs/GstBadBaseCameraBin-1.0.gir
new file mode 100644
index 0000000000..ef2c910557
--- /dev/null
+++ b/girs/GstBadBaseCameraBin-1.0.gir
@@ -0,0 +1,569 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set the chosen #GstCameraBinMode capture mode.
+
+
+
+
+
+
+ the camerasrc bin
+
+
+
+ the mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set the chosen #GstCameraBinMode capture mode.
+
+
+
+
+
+
+ the camerasrc bin
+
+
+
+ the mode
+
+
+
+
+
+ Apply preview caps to preview pipeline and to video source.
+
+
+
+
+
+
+ camerasrc bin
+
+
+
+ preview caps to set
+
+
+
+
+
+ Apply zoom configured to camerabin to capture.
+
+
+
+
+
+
+ camerasrc object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ When %TRUE, preview images should be posted to the bus when
+captures are made
+
+
+
+
+
+
+
+
+
+ When TRUE new capture can be prepared. If FALSE capturing is ongoing
+and starting a new capture immediately is not possible.
+
+Note that calling start-capture from the notify callback of this property
+will cause a deadlock. If you need to react like this on the notify
+function, please schedule a new thread to do it. If you're using glib's
+mainloop you can use g_idle_add() for example.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the camerasrc bin
+
+
+
+ the mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Capture mode to use.
+
+
+ image capture
+
+
+ video capture
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a new previewing pipeline that can receive buffers
+to be posted as camerabin preview messages for @element
+
+
+ The newly created #GstCameraBinPreviewPipelineData
+
+
+
+
+ Owner of this pipeline
+
+
+
+ Custom filter to process preview data (an extra ref is taken)
+
+
+
+
+
+ Frees a #GstCameraBinPreviewPipelineData
+
+
+
+
+
+
+ the #GstCameraBinPreviewPipelineData
+
+
+
+
+
+ Converts the @sample to the desired format and posts the preview
+message to the bus.
+
+
+ %TRUE on success
+
+
+
+
+ the #GstCameraBinPreviewPipelineData
+
+
+
+ the sample to be posted as a preview
+
+
+
+
+
+ The caps that preview buffers should have when posted
+on the bus
+
+
+
+
+
+
+ the #GstCameraBinPreviewPipelineData
+
+
+
+ the #GstCaps to be set (a new ref will be taken)
+
+
+
+
+
+ Set the filter element into preview pipeline.
+
+
+ %TRUE on success
+
+
+
+
+ the #GstCameraBinPreviewPipelineData
+
+
+
+ Custom filter to process preview data (an extra ref is taken)
+
+
+
+
+
+
diff --git a/girs/GstVa-1.0.gir b/girs/GstVa-1.0.gir
new file mode 100644
index 0000000000..910107ef28
--- /dev/null
+++ b/girs/GstVa-1.0.gir
@@ -0,0 +1,1150 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flag indicating that we should map the VASurfaceID instead of to
+system memory, so users can use libva primitives to operate with
+that surface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check whether the display is the implementation of the specified
+#GstVaImplementation type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ There are two types of VA allocators:
+
+* #GstVaAllocator
+* #GstVaDmabufAllocator
+
+ Instanciate a new pooled #GstAllocator backed by VASurfaceID.
+
+
+ a #GstVaDisplay
+
+
+
+
+ a #GstVaDisplay
+
+
+
+ a #GArray
+ of valid #GstVideoFormat for surfaces in current VA context.
+
+
+
+
+
+
+
+ Allocate a new VASurfaceID backed #GstMemory.
+
+
+ a #GstMemory backed with a VASurfaceID; %NULL, otherwise.
+
+
+
+
+ a #GstAllocator
+
+
+
+
+
+ Removes all the memories in @allocator's pool.
+
+
+
+
+
+
+ a #GstAllocator
+
+
+
+
+
+ Gets current internal configuration of @allocator.
+
+
+ %TRUE if @allocator is already configured; %FALSE
+otherwise.
+
+
+
+
+ a #GstAllocator
+
+
+
+ a #GstVideoInfo
+
+
+
+ VA usage hint
+
+
+
+ a #GstVaFeature if derived images
+ are used for buffer mapping.
+
+
+
+
+
+
+
+ the display which this
+ @allocator belongs to. The reference of the display is unchanged.
+
+
+
+
+ a #GstAllocator
+
+
+
+
+
+ This method will populate @buffer with pooled VASurfaceID
+memories. It doesn't allocate new VASurfacesID.
+
+
+ %TRUE if @buffer was populated correctly; %FALSE
+otherwise.
+
+
+
+
+ a #GstAllocator
+
+
+
+ an empty #GstBuffer
+
+
+
+
+
+ Sets the configuration defined by @info, @usage_hint and
+@use_derived for @allocator, and it tries the configuration, if
+@allocator has not allocated memories yet.
+
+If @allocator has memory allocated already, and frame size and
+format in @info are the same as currently configured in @allocator,
+the rest of @info parameters are updated internally.
+
+
+ %TRUE if the configuration is valid or updated; %FALSE if
+configuration is not valid or not updated.
+
+
+
+
+ a #GstAllocator
+
+
+
+ a #GstVideoInfo
+
+
+
+ VA usage hint
+
+
+
+ a #GstVaFeature
+
+
+
+
+
+ Internal method to set allocator specific logic changes.
+
+
+
+
+
+
+ a #GstAllocator
+
+
+
+ hacks id to set
+
+
+
+
+
+ Populates an empty @buffer with a VASuface backed #GstMemory.
+
+
+ %TRUE if @buffer is populated; %FALSE otherwise.
+
+
+
+
+ a #GstAllocator
+
+
+
+ a #GstBuffer
+
+
+
+
+
+
+ It is a generic wrapper for VADisplay. To create new instances
+subclasses are required, depending on the display type to use
+(v.gr. DRM, X11, Wayland, etc.).
+
+The purpose of this class is to be shared among pipelines via
+#GstContext so all the VA processing elements will use the same
+display entry. Application developers can create their own
+subclass, based on their display, and shared it via the synced bus
+message for the application.
+
+
+ This is called when the subclass has to create the internal
+VADisplay.
+
+
+ The created VADisplay
+
+
+
+
+ a #GstVaDisplay instance
+
+
+
+
+
+ Get the the #GstVaImplementation type of @self.
+
+
+ #GstVaImplementation.
+
+
+
+
+ a #GstVaDisplay type display.
+
+
+
+
+
+ Get the VA display handle of the @self.
+
+
+ the VA display handle.
+
+
+
+
+ a #GstVaDisplay type display.
+
+
+
+
+
+ If the display is set by the user (foreign) it is assumed that the
+driver is already initialized, thus this function is noop.
+
+If the display is opened internally, this function will initialize
+the driver and it will set driver's message callbacks.
+
+NOTE: this function is supposed to be private, only used by
+GstVaDisplay descendants.
+
+
+ %TRUE if the VA driver can be initialized; %FALSE
+ otherwise
+
+
+
+
+ a #GstVaDisplay
+
+
+
+
+
+
+
+
+
+
+
+ parent #GstObject
+
+
+
+
+ The common VA display object class structure.
+
+
+ parent #GstObjectClass
+
+
+
+
+
+
+ The created VADisplay
+
+
+
+
+ a #GstVaDisplay instance
+
+
+
+
+
+
+
+ This is a #GstVaDisplay subclass to instantiate with DRM devices.
+
+
+ Creates a new #GstVaDisplay from a DRM device . It will try to open
+and operate the device in @path.
+
+
+ a newly allocated #GstVaDisplay if the
+ specified DRM render device could be opened and initialized;
+ otherwise %NULL is returned.
+
+
+
+
+ the path to the DRM device
+
+
+
+
+
+
+
+
+
+
+
+
+ This is a #GstVaDisplay instantiaton subclass for custom created
+VADisplay, such as X11 or Wayland, wrapping it.
+
+
+ Creates a #GstVaDisplay wrapping an already created and initialized
+VADisplay.
+
+The lifetime of @handle must be hold by the provider while the
+pipeline is instantiated. Do not call vaTerminate on it while the
+pipeline is not in NULL state.
+
+
+ a new #GstVaDisplay if @handle is valid,
+ Otherwise %NULL.
+
+
+
+
+ a VADisplay to wrap
+
+
+
+
+
+
+
+
+
+ A pooled memory allocator backed by the DMABufs exported from a
+VASurfaceID. Also it is possible to import DMAbufs into a
+VASurfaceID.
+
+ Instanciate a new pooled allocator backed with both DMABuf and
+VASurfaceID.
+
+
+ a new allocated #GstAllocator
+
+
+
+
+ a #GstVaDisplay
+
+
+
+
+
+ Removes all the memories in @allocator's pool.
+
+
+
+
+
+
+ a #GstAllocator
+
+
+
+
+
+ Gets current internal configuration of @allocator.
+
+
+ %TRUE if @allocator is already configured; %FALSE
+otherwise.
+
+
+
+
+ a #GstAllocator
+
+
+
+ a #GstVideoInfo
+
+
+
+ VA usage hint
+
+
+
+
+
+ This method will populate @buffer with pooled VASurfaceID/DMABuf
+memories. It doesn't allocate new VASurfacesID.
+
+
+ %TRUE if @buffer was populated correctly; %FALSE
+otherwise.
+
+
+
+
+ a #GstAllocator
+
+
+
+ an empty #GstBuffer
+
+
+
+
+
+ Sets the configuration defined by @info and @usage_hint for
+@allocator, and it tries the configuration, if @allocator has not
+allocated memories yet.
+
+If @allocator has memory allocated already, and frame size and
+format in @info are the same as currently configured in @allocator,
+the rest of @info parameters are updated internally.
+
+
+ %TRUE if the configuration is valid or updated; %FALSE if
+configuration is not valid or not updated.
+
+
+
+
+ a #GstAllocator
+
+
+
+ a #GstVideoInfo
+
+
+
+ VA usage hint
+
+
+
+
+
+ This funciton creates a new VASurfaceID and exposes its DMABufs,
+later it populates the @buffer with those DMABufs.
+
+
+ %TRUE if @buffer is populated correctly; %FALSE otherwise.
+
+
+
+
+ a #GstAllocator
+
+
+
+ an empty #GstBuffer
+
+
+
+
+
+
+
+ The feature is disabled.
+
+
+ The feature is enabled.
+
+
+ The feature is enabled automatically.
+
+
+
+ Types of different VA API implemented drivers. These are the typical and
+the most widely used VA drivers.
+
+
+ The mesa gallium implementation.
+
+
+ The legacy i965 intel implementation.
+
+
+ The iHD intel implementation.
+
+
+ Other implementation.
+
+
+ Invalid implementation.
+
+
+
+ @GstVaPool is a buffer pool for VA allocators.
+
+
+
+ A new #GstBufferPool for VA allocators.
+
+
+
+
+
+
+ a new #GstBufferPool that handles VASurfacesID-backed
+ buffers. If the pool cannot be configured correctly, %NULL is
+ returned.
+
+
+
+
+ the #GstCaps of the buffers handled by the new pool.
+
+
+
+ the size of the frames to hold.
+
+
+
+ minimum number of frames to create.
+
+
+
+ maximum number of frames to create.
+
+
+
+ VA usage hint
+
+
+
+ a #GstVaFeature for derived mapping (only used when
+ VA allocator).
+
+
+
+ the VA allocator to use.
+
+
+
+ #GstAllocationParams to use.
+
+
+
+
+
+ Retuns: %TRUE if @pool always add #GstVideoMeta to its
+ buffers. Otherwise, %FALSE.
+
+
+
+
+
+
+ the #GstBufferPool
+
+
+
+
+
+
+ Video alignment is not handled as expected by VA since it uses
+opaque surfaces, not directly mappable memory. Still, decoders
+might need to request bigger surfaces for coded size rather than
+display sizes. This method will set the coded size to bufferpool's
+configuration, out of the typical video aligment.
+
+
+
+
+
+
+ the #GstStructure with the pool's configuration.
+
+
+
+ a #GstVideoAlignment
+
+
+
+
+
+ Sets the usage hint for the buffers handled by the buffer pool.
+
+
+
+
+
+
+ the #GstStructure with the pool's configuration.
+
+
+
+ the VA usage hint for new VASurfaceID.
+
+
+
+ a #GstVaFeature for derived mapping (only used when
+ VA allocator).
+
+
+
+
+
+
+
+ whether we find a valid @display in the @context
+
+
+
+
+ a #GstContext may contain the display
+
+
+
+ a #gchar string of the element type
+
+
+
+ the #gchar string of render device path
+
+
+
+ the #GstVaDisplay we get
+
+
+
+
+
+ Set the @display in the @context
+
+
+
+
+
+
+ a #GstContext
+
+
+
+ the #GstVaDisplay we want to set
+
+
+
+
+
+ Creates a new VASurfaceID with @buffer's allocator and attached it
+to it.
+
+*This method is used only by plugin's internal VA decoder.*
+
+
+ %TRUE if the new VASurfaceID is attached to @buffer
+ correctly; %FALSE, otherwise.
+
+
+
+
+ a #GstBuffer
+
+
+
+
+
+
+
+ the VASurfaceID attached to
+ @buffer.
+
+
+
+
+ a #GstBuffer
+
+
+
+
+
+
+
+ the VASurfaceID in @buffer.
+
+
+
+
+ a #GstBuffer
+
+
+
+
+
+
+
+ the display which this
+ @buffer belongs to. The reference of the display is unchanged.
+
+
+
+
+ a #GstBuffer
+
+
+
+
+
+ Query the specified context type name.
+
+
+
+
+
+
+ a #GstElement
+
+
+
+ the #gchar string specify the context type name
+
+
+
+
+
+ It imports the array of @mem, representing a single frame, into a
+VASurfaceID and it's attached into every @mem.
+
+
+ %TRUE if frame is imported correctly into a VASurfaceID;
+%FALSE otherwise.
+
+
+
+
+ a #GstVaDisplay
+
+
+
+ a #GstVideoInfo
+
+
+
+ number of planes
+
+
+
+ Memories. One
+ per plane.
+
+
+
+
+
+ array of
+ DMABuf file descriptors.
+
+
+
+
+
+ array of memory
+ offsets.
+
+
+
+
+
+ VA usage hint.
+
+
+
+
+
+ Propagate @display by posting it as #GstContext in the pipeline's bus.
+
+
+
+
+
+
+ a #GstElement
+
+
+
+ the #GstVaDisplay to propagate
+
+
+
+
+
+ Called by the va element to ensure a valid #GstVaDisplay.
+
+
+ whether a #GstVaDisplay exists in @display_ptr
+
+
+
+
+ a #GstElement
+
+
+
+ the #gchar string of render device path
+
+
+
+ The #GstVaDisplay to ensure
+
+
+
+
+
+ Used by elements when processing their pad's queries, propagating
+element's #GstVaDisplay if the processed query requests it.
+
+
+ whether we can handle the context query successfully
+
+
+
+
+ a #GstElement
+
+
+
+ a #GstQuery to query the context
+
+
+
+ a #GstVaDisplay to answer the query
+
+
+
+
+
+ Called by elements in their #GstElementClass::set_context vmethod.
+It gets a valid #GstVaDisplay if @context has it.
+
+
+ whether the @display_ptr could be successfully set to a
+valid #GstVaDisplay in the @context
+
+
+
+
+ a #GstElement
+
+
+
+ a #GstContext may contain the display
+
+
+
+ the #gchar string of render device path
+
+
+
+ The #GstVaDisplay to set
+
+
+
+
+
+
+
+ the VASurfaceID in @mem.
+
+
+
+
+ a #GstMemory
+
+
+
+
+
+
+
+ the display which
+ this @mem belongs to. The reference of the display is unchanged.
+
+
+
+
+ a #GstMemory
+
+
+
+
+
+
diff --git a/subprojects/gst-plugins-bad/ext/srt/gstsrtsink.c b/subprojects/gst-plugins-bad/ext/srt/gstsrtsink.c
index 3144402cd7..a2ab8863ef 100644
--- a/subprojects/gst-plugins-bad/ext/srt/gstsrtsink.c
+++ b/subprojects/gst-plugins-bad/ext/srt/gstsrtsink.c
@@ -307,7 +307,7 @@ gst_srt_sink_class_init (GstSRTSinkClass * klass)
* @gstsrtsink: the srtsink element that emitted this signal
* @unused: always zero (for ABI compatibility with previous versions)
* @addr: the #GSocketAddress of the new caller
- *
+ *
* A new caller has connected to @gstsrtsink.
*/
signals[SIG_CALLER_ADDED] =
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/basecamerabinsrc/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/basecamerabinsrc/meson.build
index f8f11b9c71..d39db684e5 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/basecamerabinsrc/meson.build
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/basecamerabinsrc/meson.build
@@ -46,6 +46,7 @@ if build_gir and not static_build
gen_sources += basecamerabin_gir
endif
endif
+gst_libraries += [[pkg_name, library_def]]
gstbasecamerabin_dep = declare_dependency(link_with : gstbasecamerabin,
include_directories : [libsinc],
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build
index ff3d966b8f..689f2cb6ca 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build
@@ -145,6 +145,7 @@ if build_gir
library_def = {'lib': library_def['lib'], 'gir': [gir]}
if not static_build
va_gir = gnome.generate_gir(gstva, kwargs: gir)
+ library_def += {'gir_targets': library_def.get('gir_targets', []) + [va_gir]}
va_gen_sources += va_gir
endif
endif