Age | Commit message (Collapse) | Author |
|
This simply adds the boiler plate for pads on the source element. The
design is that we have one pad, called "src", that will always be
present, and then more pads can be requested prior in READY or less
state. Initially pads have one property "stream-role" that let you
decide which role this pad will have.
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
While GLib has locker implementation already using g_autoptr(), recursive mutex
locker was only introduced in recent GLib. Implement a simple locker for GMutex
and GRectMutex in order to allow making locking simpler and safer.
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
This feature is used with GstDeviceMonitor in order to enumerate
and monitor devices to be used with the source element. The resulting
GstDevice implementation is also used by application to abstract the
configuration of the source element.
Implementation notes:
- libcamera does not support polling yet
- The device ID isn't unique in libcamera yet
- The "name" property does not yet exist in libcamerasrc yet
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
This transforms the basic information found in StreamFormats to GstCaps.
This can be handy to reply to early caps query or inside a device
provider. Note that we ignored generated range as they are harmful to
caps negotiation. We also don't simplify the caps for readability
reasons, so some of the discrete value may be included in a range.
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
This implements the GStreamer plugin interface and adds libcamerasrc
element feature to it. This is just enough to allow plugin
introspection.
gst-inspect-1.0 build/src/gstreamer/libgstlibcamera.so
Plugin Details:
Name libcamera
Description libcamera capture plugin
Filename build/src/gstreamer/libgstlibcamera.so
Version 0.0.0+1042-6c9f16d3-dirty
License LGPL
Source module libcamera
Binary package libcamera
Origin URL https://libcamera.org
libcamerasrc: libcamera Source
1 features:
GST_PLUGIN_PATH=$(pwd)/build/src/gstreamer gst-inspect-1.0 libcamerasrc
Factory Details:
Rank primary (256)
Long-name libcamera Source
Klass Source/Video
Description Linux Camera source using libcamera
Author Nicolas Dufresne <nicolas.dufresne@collabora.com
Plugin Details:
Name libcamera
Description libcamera capture plugin
Filename /home/nicolas/Sources/libcamera/build/src/gstreamer/libgstlibcamera.so
Version 0.0.0+1042-6c9f16d3-dirty
License LGPL
Source module libcamera
Binary package libcamera
Origin URL https://libcamera.org
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstLibcameraSrc
Pad Templates:
none
Element has no clocking capabilities.
Element has no URI handling capabilities.
Pads:
none
Element Properties:
name : The name of the object
flags: accès en lecture, accès en écriture, 0x2000
String. Default: "libcamerasrc0"
parent : The parent of the object
flags: accès en lecture, accès en écriture, 0x2000
Object of type "GstObject"
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
[Silence -Wunused-function warning for older GLib versions]
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|