gst_plugins-cache: add zxing plugin

update documentation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7887>
This commit is contained in:
Stéphane Cerveau 2024-11-14 10:37:05 +01:00 committed by GStreamer Marge Bot
parent bc63d85f19
commit ab8b2883a1
3 changed files with 272 additions and 9 deletions

View file

@ -253314,5 +253314,202 @@
"source": "gst-plugins-bad", "source": "gst-plugins-bad",
"tracers": {}, "tracers": {},
"url": "Unknown package origin" "url": "Unknown package origin"
},
"zxing": {
"description": "ZXing bar code detector plugin",
"elements": {
"zxing": {
"author": "Stéphane Cerveau <scerveau@collabora.com>",
"description": "Detect bar codes in the video streams with zxing library",
"hierarchy": [
"GstZXing",
"GstVideoFilter",
"GstBaseTransform",
"GstElement",
"GstObject",
"GInitiallyUnowned",
"GObject"
],
"klass": "Filter/Analyzer/Video",
"pad-templates": {
"sink": {
"caps": "video/x-raw:\n format: { ARGB, xRGB, Y444, Y42B, I420, Y41B, YUV9, YV12 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "sink",
"presence": "always"
},
"src": {
"caps": "video/x-raw:\n format: { ARGB, xRGB, Y444, Y42B, I420, Y41B, YUV9, YV12 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "src",
"presence": "always"
}
},
"properties": {
"attach-frame": {
"blurb": "Attach a frame dump to each barcode message",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "false",
"mutable": "null",
"readable": true,
"type": "gboolean",
"writable": true
},
"format": {
"blurb": "Barcode image format",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "all (0)",
"mutable": "null",
"readable": true,
"type": "GstBarCodeFormat",
"writable": true
},
"message": {
"blurb": "Post a barcode message for each detected code",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "true",
"mutable": "null",
"readable": true,
"type": "gboolean",
"writable": true
},
"try-faster": {
"blurb": "Try faster to analyze the frame",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "false",
"mutable": "null",
"readable": true,
"type": "gboolean",
"writable": true
},
"try-rotate": {
"blurb": "Try to rotate the frame to detect barcode (slower)",
"conditionally-available": false,
"construct": false,
"construct-only": false,
"controllable": false,
"default": "false",
"mutable": "null",
"readable": true,
"type": "gboolean",
"writable": true
}
},
"rank": "marginal"
}
},
"filename": "gstzxing",
"license": "LGPL",
"other-types": {
"GstBarCodeFormat": {
"kind": "enum",
"values": [
{
"desc": "ALL",
"name": "all",
"value": "0"
},
{
"desc": "AZTEC",
"name": "aztec",
"value": "1"
},
{
"desc": "CODABAR",
"name": "codabar",
"value": "2"
},
{
"desc": "CODE_39",
"name": "code_39",
"value": "3"
},
{
"desc": "CODE_93",
"name": "code_93",
"value": "4"
},
{
"desc": "CODE_128",
"name": "code_128",
"value": "5"
},
{
"desc": "PNG",
"name": "png",
"value": "6"
},
{
"desc": "EAN_8",
"name": "ean_8",
"value": "7"
},
{
"desc": "EAN_13",
"name": "ean_13",
"value": "8"
},
{
"desc": "ITF",
"name": "itf",
"value": "9"
},
{
"desc": "MAXICODE",
"name": "maxicode",
"value": "10"
},
{
"desc": "PDF_417",
"name": "pdf_417",
"value": "11"
},
{
"desc": "QR_CODE",
"name": "qr_code",
"value": "12"
},
{
"desc": "RSS_14",
"name": "rss_14",
"value": "13"
},
{
"desc": "RSS_EXPANDED",
"name": "rss_expanded",
"value": "14"
},
{
"desc": "UPC_A",
"name": "upc_a",
"value": "15"
},
{
"desc": "UPC_E",
"name": "upc_e",
"value": "16"
},
{
"desc": "UPC_EAN_EXTENSION",
"name": "upc_ean_expansion",
"value": "17"
}
]
}
},
"package": "GStreamer Bad Plug-ins",
"source": "gst-plugins-bad",
"tracers": {},
"url": "Unknown package origin"
} }
} }

View file

@ -37,7 +37,7 @@
* the .#GstZXing:attach-frame property was set to %TRUE (Since 1.18) * the .#GstZXing:attach-frame property was set to %TRUE (Since 1.18)
* *
* This element is based on the c++ implementation of zxing which can found * This element is based on the c++ implementation of zxing which can found
* at https://github.com/nu-book/zxing-cpp. * at https://github.com/zxing-cpp/zxing-cpp.
* *
* ## Example launch lines * ## Example launch lines
* |[ * |[
@ -47,6 +47,8 @@
* gst-launch-1.0 -m v4l2src ! tee name=t ! queue ! videoconvert ! zxing ! fakesink t. ! queue ! xvimagesink * gst-launch-1.0 -m v4l2src ! tee name=t ! queue ! videoconvert ! zxing ! fakesink t. ! queue ! xvimagesink
* ]| Same as above, but running the filter on a branch to keep the display in color * ]| Same as above, but running the filter on a branch to keep the display in color
* *
* Since: 1.18
*
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -84,7 +86,31 @@ enum
PROP_FORMAT, PROP_FORMAT,
}; };
enum /**
* GstBarCodeFormat:
*
* @BARCODE_FORMAT_ALL all format
* @BARCODE_FORMAT_AZTEC aztec format
* @BARCODE_FORMAT_CODABAR codabar format
* @BARCODE_FORMAT_CODE_39 code39 format
* @BARCODE_FORMAT_CODE_93 code 93 format
* @BARCODE_FORMAT_CODE_128 code 128 format
* @BARCODE_FORMAT_DATA_MATRIX data matrix format
* @BARCODE_FORMAT_EAN_8 EAN 8 format
* @BARCODE_FORMAT_EAN_13 EAN 13 format
* @BARCODE_FORMAT_ITF ITF format
* @BARCODE_FORMAT_MAXICODE maxicode format
* @BARCODE_FORMAT_PDF_417 pdf 417 format
* @BARCODE_FORMAT_QR_CODE QR code format
* @BARCODE_FORMAT_RSS_14 RSS 14 format
* @BARCODE_FORMAT_RSS_EXPANDED RSS expanded format
* @BARCODE_FORMAT_UPC_A UPC_A format
* @BARCODE_FORMAT_UPC_E UPC_E format
* @BARCODE_FORMAT_UPC_EAN_EXTENSION UPC_EAN_EXTENSION format
*
* Since: 1.18
*/
typedef enum
{ {
BARCODE_FORMAT_ALL, BARCODE_FORMAT_ALL,
BARCODE_FORMAT_AZTEC, BARCODE_FORMAT_AZTEC,
@ -104,7 +130,7 @@ enum
BARCODE_FORMAT_UPC_A, BARCODE_FORMAT_UPC_A,
BARCODE_FORMAT_UPC_E, BARCODE_FORMAT_UPC_E,
BARCODE_FORMAT_UPC_EAN_EXTENSION BARCODE_FORMAT_UPC_EAN_EXTENSION
}; } GstBarCodeFormat;
static const GEnumValue barcode_formats[] = { static const GEnumValue barcode_formats[] = {
{BARCODE_FORMAT_ALL, "ALL", "all"}, {BARCODE_FORMAT_ALL, "ALL", "all"},
@ -175,7 +201,7 @@ struct _GstZXing
gboolean rotate; gboolean rotate;
gboolean faster; gboolean faster;
ImageFormat image_format; ImageFormat image_format;
guint barcode_format; GstBarCodeFormat barcode_format;
}; };
static void gst_zxing_set_property (GObject * object, guint prop_id, static void gst_zxing_set_property (GObject * object, guint prop_id,
@ -208,27 +234,60 @@ gst_zxing_class_init (GstZXingClass * g_class)
gobject_class->set_property = gst_zxing_set_property; gobject_class->set_property = gst_zxing_set_property;
gobject_class->get_property = gst_zxing_get_property; gobject_class->get_property = gst_zxing_get_property;
/**
* GstZXing::message:
*
* Post a barcode message for each detected code.
*
* Since: 1.18
*/
g_object_class_install_property (gobject_class, PROP_MESSAGE, g_object_class_install_property (gobject_class, PROP_MESSAGE,
g_param_spec_boolean ("message", g_param_spec_boolean ("message",
"message", "Post a barcode message for each detected code", "message", "Post a barcode message for each detected code",
DEFAULT_MESSAGE, DEFAULT_MESSAGE,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
/**
* GstZXing::attach-frame:
*
* Attach a frame dump to each barcode message
*
* Since: 1.18
*/
g_object_class_install_property (gobject_class, PROP_ATTACH_FRAME, g_object_class_install_property (gobject_class, PROP_ATTACH_FRAME,
g_param_spec_boolean ("attach-frame", "Attach frame", g_param_spec_boolean ("attach-frame", "Attach frame",
"Attach a frame dump to each barcode message", "Attach a frame dump to each barcode message",
DEFAULT_ATTACH_FRAME, DEFAULT_ATTACH_FRAME,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
/**
* GstZXing::try-rotate:
*
* Try to rotate the frame to detect barcode (slower)
*
* Since: 1.18
*/
g_object_class_install_property (gobject_class, PROP_TRY_ROTATE, g_object_class_install_property (gobject_class, PROP_TRY_ROTATE,
g_param_spec_boolean ("try-rotate", "Try rotate", g_param_spec_boolean ("try-rotate", "Try rotate",
"Try to rotate the frame to detect barcode (slower)", "Try to rotate the frame to detect barcode (slower)",
DEFAULT_TRY_ROTATE, DEFAULT_TRY_ROTATE,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
/**
* GstZXing::try-faster:
*
* Try faster to analyze the frame
*
* Since: 1.18
*/
g_object_class_install_property (gobject_class, PROP_TRY_FASTER, g_object_class_install_property (gobject_class, PROP_TRY_FASTER,
g_param_spec_boolean ("try-faster", "Try faster", g_param_spec_boolean ("try-faster", "Try faster",
"Try faster to analyze the frame", DEFAULT_TRY_FASTER, "Try faster to analyze the frame", DEFAULT_TRY_FASTER,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
/**
* GstZXing::format:
*
* Barcode image format
*
* Since: 1.18
*/
g_object_class_install_property (gobject_class, PROP_FORMAT, g_object_class_install_property (gobject_class, PROP_FORMAT,
g_param_spec_enum ("format", "barcode format", "Barcode image format", g_param_spec_enum ("format", "barcode format", "Barcode image format",
GST_TYPE_BARCODE_FORMAT, BARCODE_FORMAT_ALL, GST_TYPE_BARCODE_FORMAT, BARCODE_FORMAT_ALL,
@ -248,6 +307,8 @@ gst_zxing_class_init (GstZXingClass * g_class)
GST_DEBUG_FUNCPTR (gst_zxing_transform_frame_ip); GST_DEBUG_FUNCPTR (gst_zxing_transform_frame_ip);
vfilter_class->set_info = vfilter_class->set_info =
GST_DEBUG_FUNCPTR (gst_zxing_set_info); GST_DEBUG_FUNCPTR (gst_zxing_set_info);
gst_type_mark_as_plugin_api (GST_TYPE_BARCODE_FORMAT, (GstPluginAPIFlags)0);
} }
static void static void
@ -284,7 +345,7 @@ gst_zxing_set_property (GObject * object, guint prop_id, const GValue * value,
zxing->faster = g_value_get_boolean (value); zxing->faster = g_value_get_boolean (value);
break; break;
case PROP_FORMAT: case PROP_FORMAT:
zxing->barcode_format = g_value_get_enum (value); zxing->barcode_format = (GstBarCodeFormat)g_value_get_enum (value);
break; break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);

View file

@ -18,8 +18,13 @@
*/ */
/* /**
* ZXing GStreamer plugin * SECTION:plugin-zxing
*
* Plugin for [ZXing](https://github.com/zxing-cpp/zxing-cpp), a bar code detector.
*
* Since: 1.18
*
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H