mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
add some docs
This commit is contained in:
parent
9ffec214b8
commit
ebb5ed94a2
6 changed files with 39 additions and 21 deletions
|
|
@ -38,12 +38,12 @@ extern "C" {
|
|||
*/
|
||||
enum spa_meta_type {
|
||||
SPA_META_Invalid,
|
||||
SPA_META_Header,
|
||||
SPA_META_VideoCrop,
|
||||
SPA_META_VideoDamage,
|
||||
SPA_META_Bitmap,
|
||||
SPA_META_Cursor,
|
||||
SPA_META_Control, /**< metadata contains a spa_pod_sequence
|
||||
SPA_META_Header, /**< struct spa_meta_header */
|
||||
SPA_META_VideoCrop, /**< struct spa_meta_region with cropping data */
|
||||
SPA_META_VideoDamage, /**< array of struct spa_meta_region with damage */
|
||||
SPA_META_Bitmap, /**< struct spa_meta_bitmap */
|
||||
SPA_META_Cursor, /**< struct spa_meta_cursor */
|
||||
SPA_META_Control, /**< metadata contains a spa_meta_control
|
||||
* associated with the data */
|
||||
|
||||
SPA_META_LAST, /**< not part of ABI/API */
|
||||
|
|
@ -91,7 +91,8 @@ struct spa_meta_region {
|
|||
|
||||
#define spa_meta_region_is_valid(m) ((m)->region.size.width != 0 && (m)->region.size.height != 0)
|
||||
|
||||
#define spa_meta_region_for_each(pos,meta) \
|
||||
/** iterate all the items in a metadata */
|
||||
#define spa_meta_for_each(pos,meta) \
|
||||
for (pos = (__typeof(pos))spa_meta_first(meta); \
|
||||
spa_meta_check(pos, meta); \
|
||||
(pos)++)
|
||||
|
|
|
|||
|
|
@ -56,19 +56,23 @@ static const struct spa_type_info spa_type_data_type[] = {
|
|||
#define SPA_TYPE_INFO_Meta SPA_TYPE_INFO_POINTER_BASE "Meta"
|
||||
#define SPA_TYPE_INFO_META_BASE SPA_TYPE_INFO_Meta ":"
|
||||
|
||||
#define SPA_TYPE_INFO_META_Array SPA_TYPE_INFO_META_BASE "Array"
|
||||
#define SPA_TYPE_INFO_META_ARRAY_BASE SPA_TYPE_INFO_META_Array ":"
|
||||
|
||||
#define SPA_TYPE_INFO_META_Region SPA_TYPE_INFO_META_BASE "Region"
|
||||
#define SPA_TYPE_INFO_META_REGION_BASE SPA_TYPE_INFO_META_Region ":"
|
||||
|
||||
#define SPA_TYPE_INFO_META_RegionArray SPA_TYPE_INFO_META_BASE "RegionArray"
|
||||
#define SPA_TYPE_INFO_META_REGION_ARRAY_BASE SPA_TYPE_INFO_META_RegionArray ":"
|
||||
#define SPA_TYPE_INFO_META_ARRAY_Region SPA_TYPE_INFO_META_ARRAY_BASE "Region"
|
||||
#define SPA_TYPE_INFO_META_ARRAY_REGION_BASE SPA_TYPE_INFO_META_ARRAY_Region ":"
|
||||
|
||||
static const struct spa_type_info spa_type_meta_type[] = {
|
||||
{ SPA_META_Invalid, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_BASE "Invalid", NULL },
|
||||
{ SPA_META_Header, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_BASE "Header", NULL },
|
||||
{ SPA_META_VideoCrop, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_REGION_BASE "VideoCrop", NULL },
|
||||
{ SPA_META_VideoDamage, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_REGION_ARRAY_BASE "VideoDamage", NULL },
|
||||
{ SPA_META_VideoDamage, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_ARRAY_REGION_BASE "VideoDamage", NULL },
|
||||
{ SPA_META_Bitmap, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_BASE "Bitmap", NULL },
|
||||
{ SPA_META_Cursor, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_BASE "Cursor", NULL },
|
||||
{ SPA_META_Control, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_BASE "Control", NULL },
|
||||
{ 0, 0, NULL, NULL },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ static inline int spa_debug_buffer(int indent, const struct spa_buffer *buffer)
|
|||
case SPA_META_VideoDamage:
|
||||
{
|
||||
struct spa_meta_region *h;
|
||||
spa_meta_region_for_each(h, m) {
|
||||
spa_meta_for_each(h, m) {
|
||||
spa_debug("%*s" " struct spa_meta_region:", indent, "");
|
||||
spa_debug("%*s" " x: %d", indent, "", h->region.position.x);
|
||||
spa_debug("%*s" " y: %d", indent, "", h->region.position.y);
|
||||
|
|
|
|||
|
|
@ -37,11 +37,19 @@ extern "C" {
|
|||
/**
|
||||
* spa_device:
|
||||
*
|
||||
* The device interface.
|
||||
* The device interface can be used to monitor all kinds of devices
|
||||
* and create objects as a result. Objects a typically other
|
||||
* Devices or Nodes.
|
||||
*
|
||||
*/
|
||||
#define SPA_VERSION_DEVICE 0
|
||||
struct spa_device { struct spa_interface iface; };
|
||||
|
||||
/**
|
||||
* Information about the device and parameters it supports
|
||||
*
|
||||
* This information is part of the info event on a device.
|
||||
*/
|
||||
struct spa_device_info {
|
||||
#define SPA_VERSION_DEVICE_INFO 0
|
||||
uint32_t version;
|
||||
|
|
@ -51,25 +59,30 @@ struct spa_device_info {
|
|||
#define SPA_DEVICE_CHANGE_MASK_PARAMS (1u<<2)
|
||||
uint64_t change_mask;
|
||||
uint64_t flags;
|
||||
const struct spa_dict *props;
|
||||
struct spa_param_info *params;
|
||||
uint32_t n_params;
|
||||
const struct spa_dict *props; /**< device properties */
|
||||
struct spa_param_info *params; /**< supported parameters */
|
||||
uint32_t n_params; /**< number of elements in params */
|
||||
};
|
||||
|
||||
#define SPA_DEVICE_INFO_INIT() (struct spa_device_info){ SPA_VERSION_DEVICE_INFO, }
|
||||
|
||||
/**
|
||||
* Information about a device object
|
||||
*
|
||||
* This information is part of the object_info event on the device.
|
||||
*/
|
||||
struct spa_device_object_info {
|
||||
#define SPA_VERSION_DEVICE_OBJECT_INFO 0
|
||||
uint32_t version;
|
||||
|
||||
uint32_t type;
|
||||
const char *factory_name;
|
||||
uint32_t type; /**< the object type managed by this device */
|
||||
const char *factory_name; /**< a factory name that implements the object */
|
||||
|
||||
#define SPA_DEVICE_OBJECT_CHANGE_MASK_FLAGS (1u<<0)
|
||||
#define SPA_DEVICE_OBJECT_CHANGE_MASK_PROPS (1u<<1)
|
||||
uint64_t change_mask;
|
||||
uint64_t flags;
|
||||
const struct spa_dict *props;
|
||||
const struct spa_dict *props; /**< extra object properties */
|
||||
};
|
||||
|
||||
#define SPA_DEVICE_OBJECT_INFO_INIT() (struct spa_device_object_info){ SPA_VERSION_DEVICE_OBJECT_INFO, }
|
||||
|
|
@ -134,7 +147,7 @@ struct spa_device_methods {
|
|||
* the device.
|
||||
*
|
||||
* Setting the events will trigger the info event and an
|
||||
* object_info event for each managed node on the new
|
||||
* object_info event for each managed object on the new
|
||||
* listener.
|
||||
*
|
||||
* \param device a #spa_device
|
||||
|
|
|
|||
|
|
@ -387,7 +387,7 @@ static int do_render(struct spa_loop *loop, bool async, uint32_t seq,
|
|||
}
|
||||
|
||||
if ((m = spa_buffer_find_meta(buf, SPA_META_VideoDamage))) {
|
||||
spa_meta_region_for_each(r, m) {
|
||||
spa_meta_for_each(r, m) {
|
||||
if (!spa_meta_region_is_valid(r))
|
||||
break;
|
||||
if (memcmp(&r->region, &d->region, sizeof(struct spa_region)) == 0)
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ const struct type_info {
|
|||
{ "Spa:Enum:ParamId:Meta", SPA_TYPE_INFO_PARAM_ID_BASE "Meta", SPA_PARAM_Meta, },
|
||||
{ "Spa:Pointer:Meta:Header", SPA_TYPE_INFO_META_BASE "Header", SPA_META_Header, },
|
||||
{ "Spa:Pointer:Meta:VideoCrop", SPA_TYPE_INFO_META_REGION_BASE "VideoCrop", SPA_META_VideoCrop, },
|
||||
{ "Spa:Pointer:Meta:VideoDamage", SPA_TYPE_INFO_META_REGION_ARRAY_BASE "VideoDamage", SPA_META_VideoDamage, },
|
||||
{ "Spa:Pointer:Meta:VideoDamage", SPA_TYPE_INFO_META_ARRAY_REGION_BASE "VideoDamage", SPA_META_VideoDamage, },
|
||||
{ "Spa:Pointer:Meta:Bitmap", SPA_TYPE_INFO_META_BASE "Bitmap", SPA_META_Bitmap, },
|
||||
{ "Spa:Pointer:Meta:Cursor", SPA_TYPE_INFO_META_BASE "Cursor", SPA_META_Cursor, },
|
||||
{ "Spa:Enum:DataType:MemPtr", SPA_TYPE_INFO_DATA_BASE "MemPtr", SPA_DATA_MemPtr, },
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue