19c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk/* 29c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * Copyright 2014 The Android Open Source Project 39c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * 49c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * Licensed under the Apache License, Version 2.0 (the "License"); 59c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * you may not use this file except in compliance with the License. 69c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * You may obtain a copy of the License at 79c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * 89c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * http://www.apache.org/licenses/LICENSE-2.0 99c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * 109c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * Unless required by applicable law or agreed to in writing, software 119c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * distributed under the License is distributed on an "AS IS" BASIS, 129c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * See the License for the specific language governing permissions and 149c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * limitations under the License. 159c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk */ 169c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk 179c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#ifndef SYSTEM_MEDIA_PRIVATE_INCLUDE_CAMERA_METADATA_HIDDEN_H 189c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#define SYSTEM_MEDIA_PRIVATE_INCLUDE_CAMERA_METADATA_HIDDEN_H 199c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk 209c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#include <system/camera_vendor_tags.h> 219c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk 229c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk/** 239c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * Error codes returned by vendor tags ops operations. These are intended 249c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * to be used by all framework code that uses the return values from the 259c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * vendor operations object. 269c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk */ 279c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#define VENDOR_SECTION_NAME_ERR NULL 289c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#define VENDOR_TAG_NAME_ERR NULL 299c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#define VENDOR_TAG_COUNT_ERR (-1) 309c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#define VENDOR_TAG_TYPE_ERR (-1) 319c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk 329c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#ifdef __cplusplus 339c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunkextern "C" { 349c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#endif 359c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk/** **These are private functions for use only by the camera framework.** **/ 369c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk 379c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk/** 389c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * Set the global vendor tag operations object used to define vendor tag 399c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * structure when parsing camera metadata with functions defined in 409c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk * system/media/camera/include/camera_metadata.h. 419c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk */ 429c13e191ea2d9622d00621d6acb009a9a759dc92Ruben BrunkANDROID_API 439c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunkint set_camera_metadata_vendor_ops(const vendor_tag_ops_t *query_ops); 449c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk 45a26996379965c552df9001618afce4d02b659abbEmilian Peev/** 46a26996379965c552df9001618afce4d02b659abbEmilian Peev * Set the global vendor tag cache operations object used to define vendor tag 47a26996379965c552df9001618afce4d02b659abbEmilian Peev * structure when parsing camera metadata with functions defined in 48a26996379965c552df9001618afce4d02b659abbEmilian Peev * system/media/camera/include/camera_metadata.h. 49a26996379965c552df9001618afce4d02b659abbEmilian Peev */ 50a26996379965c552df9001618afce4d02b659abbEmilian PeevANDROID_API 51a26996379965c552df9001618afce4d02b659abbEmilian Peevint set_camera_metadata_vendor_cache_ops( 52a26996379965c552df9001618afce4d02b659abbEmilian Peev const struct vendor_tag_cache_ops *query_cache_ops); 53a26996379965c552df9001618afce4d02b659abbEmilian Peev 54a26996379965c552df9001618afce4d02b659abbEmilian Peev/** 55a26996379965c552df9001618afce4d02b659abbEmilian Peev * Set the vendor id for a particular metadata buffer. 56a26996379965c552df9001618afce4d02b659abbEmilian Peev */ 57a26996379965c552df9001618afce4d02b659abbEmilian PeevANDROID_API 58a26996379965c552df9001618afce4d02b659abbEmilian Peevvoid set_camera_metadata_vendor_id(camera_metadata_t *meta, 59a26996379965c552df9001618afce4d02b659abbEmilian Peev metadata_vendor_id_t id); 60a26996379965c552df9001618afce4d02b659abbEmilian Peev 61a26996379965c552df9001618afce4d02b659abbEmilian Peev/** 62a26996379965c552df9001618afce4d02b659abbEmilian Peev * Retrieve the vendor id for a particular metadata buffer. 63a26996379965c552df9001618afce4d02b659abbEmilian Peev */ 64a26996379965c552df9001618afce4d02b659abbEmilian PeevANDROID_API 65a26996379965c552df9001618afce4d02b659abbEmilian Peevmetadata_vendor_id_t get_camera_metadata_vendor_id( 66a26996379965c552df9001618afce4d02b659abbEmilian Peev const camera_metadata_t *meta); 67a26996379965c552df9001618afce4d02b659abbEmilian Peev 68a26996379965c552df9001618afce4d02b659abbEmilian Peev/** 69a26996379965c552df9001618afce4d02b659abbEmilian Peev * Retrieve the type of a tag. Returns -1 if no such tag is defined. 70a26996379965c552df9001618afce4d02b659abbEmilian Peev */ 71a26996379965c552df9001618afce4d02b659abbEmilian PeevANDROID_API 72a26996379965c552df9001618afce4d02b659abbEmilian Peevint get_local_camera_metadata_tag_type_vendor_id(uint32_t tag, 73a26996379965c552df9001618afce4d02b659abbEmilian Peev metadata_vendor_id_t id); 74a26996379965c552df9001618afce4d02b659abbEmilian Peev 75a26996379965c552df9001618afce4d02b659abbEmilian Peev/** 76a26996379965c552df9001618afce4d02b659abbEmilian Peev * Retrieve the name of a tag. Returns NULL if no such tag is defined. 77a26996379965c552df9001618afce4d02b659abbEmilian Peev */ 78a26996379965c552df9001618afce4d02b659abbEmilian PeevANDROID_API 79a26996379965c552df9001618afce4d02b659abbEmilian Peevconst char *get_local_camera_metadata_tag_name_vendor_id(uint32_t tag, 80a26996379965c552df9001618afce4d02b659abbEmilian Peev metadata_vendor_id_t id); 81a26996379965c552df9001618afce4d02b659abbEmilian Peev 82a26996379965c552df9001618afce4d02b659abbEmilian Peev/** 83a26996379965c552df9001618afce4d02b659abbEmilian Peev * Retrieve the name of a tag section. Returns NULL if no such tag is defined. 84a26996379965c552df9001618afce4d02b659abbEmilian Peev */ 85a26996379965c552df9001618afce4d02b659abbEmilian PeevANDROID_API 86a26996379965c552df9001618afce4d02b659abbEmilian Peevconst char *get_local_camera_metadata_section_name_vendor_id(uint32_t tag, 87a26996379965c552df9001618afce4d02b659abbEmilian Peev metadata_vendor_id_t id); 88a26996379965c552df9001618afce4d02b659abbEmilian Peev 89a26996379965c552df9001618afce4d02b659abbEmilian Peev/** 90a26996379965c552df9001618afce4d02b659abbEmilian Peev * Retrieve the type of a tag. Returns -1 if no such tag is defined. 91a26996379965c552df9001618afce4d02b659abbEmilian Peev */ 92a26996379965c552df9001618afce4d02b659abbEmilian PeevANDROID_API 93a26996379965c552df9001618afce4d02b659abbEmilian Peevint get_local_camera_metadata_tag_type_vendor_id(uint32_t tag, 94a26996379965c552df9001618afce4d02b659abbEmilian Peev metadata_vendor_id_t id); 95a26996379965c552df9001618afce4d02b659abbEmilian Peev 969c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#ifdef __cplusplus 979c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk} /* extern "C" */ 989c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#endif 999c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk 1009c13e191ea2d9622d00621d6acb009a9a759dc92Ruben Brunk#endif /* SYSTEM_MEDIA_PRIVATE_INCLUDE_CAMERA_METADATA_HIDDEN_H */ 101