KSPROPERTY_CAMERACONTROL_EXTENDED_METADATA
This extended property control is used by the client to query the driver for the metadata buffer requirements. It is sent to the driver along with a standard KSCAMERA_EXTENDEDPROP_HEADER structure followed by a KSCAMERA_EXTENDEDPROP_METADATAINFO structure.
Usage summary table
Scope | Control | Type |
---|---|---|
Version 1 |
Pin |
Synchronous |
The following are metadata flags that can be placed in the KSCAMERA_EXTENDEDPROP_HEADER.Flags field.
#define KSCAMERA_EXTENDEDPROP_METADATA_SYSTEMMEMORY 0x0000000000000001
#define KSCAMERA_EXTENDEDPROP_METADATA_ALIGNMENTREQUIRED 0x0000000000000100
In a Get call, the driver does the following:
Fills KSCAMERA_EXTENDEDPROP_HEADER.Capability with 0.
Fill KSCAMERA_EXTENDEDPROP_HEADER.Flags with a combination of any of the above KSCAMERA_EXTENDEDPROP_METADATA_XXX flags to indicate the metadata memory requirements.
Fill KSCAMERA_EXTENDEDPROP_METADATAINFO.BufferAlignment with the desired memory alignment (KSCAMERA_EXTENDEDPROP_MetadataAlignment_Xxx). See the KSCAMERA_EXTENDEDPROP_MetadataAlignment for possible values.
Fill KSCAMERA_EXTENDEDPROP_METADATAINFO.MaxMetadataBufferSize with the required metadata buffer size in bytes.
The table below contains the descriptions and requirements for the KSCAMERA_EXTENDEDPROP_HEADER structure fields when using the metadata control.
Member | Description |
---|---|
Version |
This must be 1. |
PinId |
This must be the Pin ID associated with the pin whose frame contains metadata. This can be any of the preview, record, and image pin. |
Size |
This must be sizeof(KSCAMERA_EXTENDEDPROP_HEADER)+sizeof(KSCAMERA_EXTENDEDPROP_METADATAINFO), |
Result |
This indicates the error results of the last SET operation. If no SET operation has taken place, this must be 0. |
Capability |
This is unused and must be 0. |
Flags |
This is a read/write field. This can be any combination of KSCAMERA_EXTENDEDPROP_METADATA_ALIGNMENTREQUIRED or KSCAMERA_EXTENDEDPROP_METADATA_SYSTEMMEMORY. |
Requirements
Header |
Ksmedia.h |