/* * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __TIZEN_MULTIMEDIA_METADATA_EXTRACTOR_PRIVATE_H__ #define __TIZEN_MULTIMEDIA_METADATA_EXTRACTOR_PRIVATE_H__ #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef LOG_TAG #undef LOG_TAG #endif #define LOG_TAG "CAPI_MEDIA_METADATA_EXTRACTOR" #define SAFE_FREE(src) { if (src) {free(src); src = NULL; } } #define ME_STRING_VALID(str) (str != NULL && strlen(str) > 0) #define metadata_extractor_debug(fmt, arg...) do { \ LOGD(""fmt"", ##arg); \ } while (0) #define metadata_extractor_info(fmt, arg...) do { \ LOGI(""fmt"", ##arg); \ } while (0) #define metadata_extractor_error(fmt, arg...) do { \ LOGE(""fmt"", ##arg); \ } while (0) #define metadata_extractor_debug_fenter() do { \ LOGD(""); \ } while (0) #define metadata_extractor_debug_fleave() do { \ LOGD(""); \ } while (0) #define metadata_extractor_secure_info(fmt, arg...) do { \ SECURE_LOGI(""fmt"", ##arg); \ } while (0) #define metadata_extractor_retv_free_if(expr, val, p_str) do { \ if (expr) { \ LOGE("Internal operation error"); \ SAFE_FREE(p_str); \ return (val); \ } \ } while (0) #define metadata_extractor_retvm_if(expr, val, fmt, arg...) do { \ if (expr) { \ LOGE(""fmt"", ##arg); \ return (val); \ } \ } while (0) typedef struct { char *path; const void *buffer; int buffer_size; bool extract_meta; int audio_track_cnt; int video_track_cnt; MMHandleType attr_h; MMHandleType tag_h; } metadata_extractor_s; /*TODO: Move attributes to metadata_extractor_type.h after ACR*/ #ifdef SUPPORT_GSPHERICAL_METADATA #define METADATA_360_V1_STITCHED 35 /**< Flag indicating if the video is stitched. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_STITCHING_SOFTWARE 36 /**< Software used to stitch the spherical video. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_PROJECTION_TYPE 37 /**< Projection type used in the video frames. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_STEREO_MODE 38 /**< Description of stereoscopic 3D layout. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_SOURCE_COUNT 39 /**< Number of cameras used to create the spherical video. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_INIT_VIEW_HEADING 40 /**< The heading angle of the initial view in degrees. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_INIT_VIEW_PITCH 41 /**< The pitch angle of the initial view in degrees. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_INIT_VIEW_ROLL 42 /**< The roll angle of the initial view in degrees. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_TIMESTAMP 43 /**< Epoch timestamp of when the first frame in the video was recorded. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_FULL_PANO_WIDTH 44 /**< Width of the encoded video frame in pixels. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_FULL_PANO_HEIGHT 45 /**< Height of the encoded video frame in pixels. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_CROPPED_AREA_IMAGE_WIDTH 46 /**< Width of the video frame to display (e.g. cropping). Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_CROPPED_AREA_IMAGE_HEIGHT 47 /**< Height of the video frame to display (e.g. cropping). Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_CROPPED_AREA_LEFT 48 /**< Column where the left edge of the image was cropped from the full sized panorama. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V1_CROPPED_AREA_TOP 49 /**< Row where the top edge of the image was cropped from the full sized panorama. Spherical Video Metadata RFC v1 (Since 4.0) */ #define METADATA_360_V2_STEREO_MODE 50 /**< Stereo frame layout. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_360_V2_METADATA_SOURCE 51 /**< Tool used to create the Spherical Video Metadata V2 (Since 4.0) */ #define METADATA_360_V2_PROJ_TYPE 52 /**< Projection type. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_360_V2_POSE_YAW 53 /**< Counter-clockwise rotation in degrees around the up vector. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_360_V2_POSE_PITCH 54 /**< Counter-clockwise rotation in degrees around the right vector post yaw transform. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_360_V2_POSE_ROLL 55 /**< Clockwise-rotation in degrees around the forward vector post yaw and pitch transform. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_360_V2_CBMP_LAYOUT 56 /**< Layout of cube faces for the Cubemap Projection. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_360_V2_CBMP_PADDING 57 /**< Number of pixels to pad from the edge of each cube face for the Cubemap Projection. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_360_V2_EQUI_BOUNDS_TOP 58 /**< Amount from the top of the frame to crop. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_360_V2_EQUI_BOUNDS_BOTTOM 59 /**< Amount from the bottom of the frame to crop. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_360_V2_EQUI_BOUNDS_LEFT 60 /**< Amount from the left of the frame to crop. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_360_V2_EQUI_BOUNDS_RIGHT 61 /**< Amount from the right of the frame to crop. Spherical Video Metadata RFC v2 (Since 4.0) */ #define METADATA_AMBISONIC_TYPE 62 /**< Ambisonics type in User Data Information (Since 4.0) */ #define METADATA_AMBISONIC_FORMAT 63 /**< Ambisonics format in User Data Information (Since 4.0) */ #define METADATA_AMBISONIC_ORDER 64 /**< Ambisonics order in User Data Information (Since 4.0) */ #endif #ifdef __cplusplus } #endif /* __cplusplus */ #endif /*__TIZEN_MULTIMEDIA_METADATA_EXTRACTOR_PRIVATE_H__*/