फ़्रेम मेटाडेटा, फ़्रेम मेटाडेटा

फ़्रेम मेटाडेटा को एंड्रॉइड 11 में बफ़रडेस्क डेटा संरचना के सदस्य के रूप में पेश किया गया है। ग्राहक-परिभाषित डेटा प्रारूप को समायोजित करने के लिए इस नए फ़ील्ड को vec<uint8_t> के रूप में घोषित किया गया है और यह ईवीएस प्रबंधक के लिए अपारदर्शी है।

struct BufferDesc {
    /**
     * HIDL counterpart of AHardwareBuffer_Desc. Please see
     * hardware/interfaces/graphics/common/1.2/types.hal for more details.
     */
    HardwareBuffer buffer;
    ...

    /**
     * Time that this buffer is being filled.
     */
    int64_t timestamp;

    /**
     * Frame metadata field. This is opaque to EVS manager.
     */
    vec<uint8_t> metadata;
};

HIDL vec<T> एक अलग बफर में संग्रहीत डेटा के साथ गतिशील रूप से आकार वाले सरणी का प्रतिनिधित्व करता है। ऐसे उदाहरणों को संरचना में vec<T> के एक उदाहरण के साथ दर्शाया जाता है, जिसका अर्थ है कि ईवीएस कैमरा एचएएल ड्राइवर कार्यान्वयन इस मेटाडेटा का मालिक है और इसे ठीक से साफ करना चाहिए। मेटाडेटा भरने के दो तरीके हैं:

  • operator[]
        struct BufferDesc desc = {};
        ...
        desc.metadata.resize(10);
        for (auto i = 0; i < 10; ++i) {
            desc.metadata[i] = frameInfo[i];
        }
        ...
        
    का उपयोग करके कंटेनर का आकार बदलें और डेटा भरें
  • vec<T> अपनी कस्टम डेटा संरचना पर इंगित करने के लिए setToExternal() का उपयोग करें।
    struct BufferDesc desc = {};
    struct FrameMetadata metadata = {
       ...
    }; // this is in vendor-defined format.
    
    desc.metadata.setToExternal(&metadata, sizeof(metadata)); ...
,

फ़्रेम मेटाडेटा को एंड्रॉइड 11 में बफ़रडेस्क डेटा संरचना के सदस्य के रूप में पेश किया गया है। ग्राहक-परिभाषित डेटा प्रारूप को समायोजित करने के लिए इस नए फ़ील्ड को vec<uint8_t> के रूप में घोषित किया गया है और यह ईवीएस प्रबंधक के लिए अपारदर्शी है।

struct BufferDesc {
    /**
     * HIDL counterpart of AHardwareBuffer_Desc. Please see
     * hardware/interfaces/graphics/common/1.2/types.hal for more details.
     */
    HardwareBuffer buffer;
    ...

    /**
     * Time that this buffer is being filled.
     */
    int64_t timestamp;

    /**
     * Frame metadata field. This is opaque to EVS manager.
     */
    vec<uint8_t> metadata;
};

HIDL vec<T> एक अलग बफर में संग्रहीत डेटा के साथ गतिशील रूप से आकार वाले सरणी का प्रतिनिधित्व करता है। ऐसे उदाहरणों को संरचना में vec<T> के एक उदाहरण के साथ दर्शाया जाता है, जिसका अर्थ है कि ईवीएस कैमरा एचएएल ड्राइवर कार्यान्वयन इस मेटाडेटा का मालिक है और इसे ठीक से साफ करना चाहिए। मेटाडेटा भरने के दो तरीके हैं:

  • operator[]
        struct BufferDesc desc = {};
        ...
        desc.metadata.resize(10);
        for (auto i = 0; i < 10; ++i) {
            desc.metadata[i] = frameInfo[i];
        }
        ...
        
    का उपयोग करके कंटेनर का आकार बदलें और डेटा भरें
  • vec<T> अपनी कस्टम डेटा संरचना पर इंगित करने के लिए setToExternal() का उपयोग करें।
    struct BufferDesc desc = {};
    struct FrameMetadata metadata = {
       ...
    }; // this is in vendor-defined format.
    
    desc.metadata.setToExternal(&metadata, sizeof(metadata)); ...