1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
/*
* Copyright (C) 2011 The Android Open Source Project
*
* 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.
*/
/**
************************************************************************
* @file M4Common_Types.h
* @brief defines common structures
* @note
*
************************************************************************
*/
#ifndef M4COMMON_TYPES_H
#define M4COMMON_TYPES_H
#include "M4OSA_Types.h"
#include "M4OSA_Memory.h"
/**
************************************************************************
* structure M4COMMON_MetadataType
************************************************************************
*/
typedef enum
{
M4COMMON_kUnknownMetaDataType,
/* Local files */
M4COMMON_kTagID3v1, /**< Metadata from TAG ID3 V1 */
M4COMMON_kTagID3v2, /**< Metadata from TAG ID3 V2 */
M4COMMON_kASFContentDesc, /**< Metadata from ASF content description */
M4COMMON_k3GppAssetMovieBox, /**< Metadata from a 3gpp file (movie box) */
M4COMMON_k3GppAssetTrackBox, /**< Metadata from a 3gpp file (track box) */
/* Streaming */
M4COMMON_kMetaDataSdpSession, /**< Metadata from an SDP file (Session level) */
M4COMMON_kMetaDataSdpAudio, /**< Metadata from an SDP file (media audio level) */
M4COMMON_kMetaDataSdpVideo, /**< Metadata from an SDP file (media video level) */
M4COMMON_kJpegExif /**< EXIF in JPEG */
} M4COMMON_MetadataType;
/**
************************************************************************
* enumeration M4VPS_EncodingFormat
* @brief Text encoding format
************************************************************************
*/
typedef enum
{
M4COMMON_kEncFormatUnknown = 0, /**< Unknown format */
M4COMMON_kEncFormatASCII = 1, /**< ISO-8859-1. Terminated with $00 */
M4COMMON_kEncFormatUTF8 = 2, /**< UTF-8 encoded Unicode . Terminated with $00 */
M4COMMON_kEncFormatUTF16 = 3 /**< UTF-16 encoded Unicode. Terminated with $00 00 */
} M4COMMON_EncodingFormat;
/**
************************************************************************
* structure M4VPS_String
* @brief This structure defines string attribute
************************************************************************
*/
typedef struct
{
M4OSA_Void* m_pString; /**< Pointer to text */
M4OSA_UInt32 m_uiSize; /**< Text size in bytes */
M4COMMON_EncodingFormat m_EncodingFormat; /**< Text encoding format */
} M4COMMON_String;
/**
************************************************************************
* structure M4COMMON_Buffer
* @brief This structure defines generic buffer attribute
************************************************************************
*/
typedef struct
{
M4OSA_MemAddr8 m_pBuffer; /**< Pointer to buffer */
M4OSA_UInt32 m_size; /**< size of buffer in bytes */
} M4COMMON_Buffer;
typedef enum
{
M4COMMON_kMimeType_NONE,
M4COMMON_kMimeType_JPG,
M4COMMON_kMimeType_PNG,
M4COMMON_kMimeType_BMP, /* bitmap, with header */
M4COMMON_kMimeType_RGB24, /* raw RGB 24 bits */
M4COMMON_kMimeType_RGB565, /* raw, RGB 16 bits */
M4COMMON_kMimeType_YUV420,
M4COMMON_kMimeType_MPEG4_IFrame /* RC: to support PV art */
} M4COMMON_MimeType;
/* picture type definition from id3v2 tag*/
typedef enum
{
M4COMMON_kPicType_Other = 0x00,
M4COMMON_kPicType_32_32_Icon = 0x01,
M4COMMON_kPicType_Other_Icon = 0x02,
M4COMMON_kPicType_FrontCover = 0x03,
M4COMMON_kPicType_BackCover = 0x04,
M4COMMON_kPicType_LeafletPage = 0x05,
M4COMMON_kPicType_Media = 0x06,
M4COMMON_kPicType_LeadArtist = 0x07,
M4COMMON_kPicType_Artist = 0x08,
M4COMMON_kPicType_Conductor = 0x09,
M4COMMON_kPicType_Orchestra = 0x0A,
M4COMMON_kPicType_Composer = 0x0B,
M4COMMON_kPicType_Lyricist = 0x0C,
M4COMMON_kPicType_RecordingLocation = 0x0D,
M4COMMON_kPicType_DuringRecording = 0x0E,
M4COMMON_kPicType_DuringPerformance = 0x0F,
M4COMMON_kPicType_MovieScreenCapture = 0x10,
M4COMMON_kPicType_BrightColouredFish = 0x11,
M4COMMON_kPicType_Illustration = 0x12,
M4COMMON_kPicType_ArtistLogo = 0x13,
M4COMMON_kPicType_StudioLogo = 0x14
} M4COMMON_PictureType;
/**
******************************************************************************
* enum M4COMMON_Orientation
* @brief This enum defines the possible orientation of a frame as described
* in the EXIF standard.
******************************************************************************
*/
typedef enum
{
M4COMMON_kOrientationUnknown = 0,
M4COMMON_kOrientationTopLeft,
M4COMMON_kOrientationTopRight,
M4COMMON_kOrientationBottomRight,
M4COMMON_kOrientationBottomLeft,
M4COMMON_kOrientationLeftTop,
M4COMMON_kOrientationRightTop,
M4COMMON_kOrientationRightBottom,
M4COMMON_kOrientationLeftBottom
}M4COMMON_Orientation ;
/**
******************************************************************************
* structure M4EXIFC_Location
* @brief The Image GPS location (example : 48°52.21' )
******************************************************************************
*/
typedef struct
{
M4OSA_Float degrees;
M4OSA_Float minsec;
} M4COMMON_Location;
/**
************************************************************************
* structure M4COMMON_MetaDataAlbumArt
* @brief This structure defines fields of a album art
************************************************************************
*/
typedef struct
{
M4COMMON_MimeType m_mimeType;
M4OSA_UInt32 m_uiSize;
M4OSA_Void* m_pData;
M4COMMON_String m_pDescription;
} M4COMMON_MetaDataAlbumArt;
/**
************************************************************************
* structure M4COMMON_MetaDataFields
* @brief This structure defines fields of metadata information
************************************************************************
*/
typedef struct
{
M4COMMON_MetadataType m_MetadataType;
/* Meta data fields */
M4COMMON_String m_pTitle; /**< Title for the media */
M4COMMON_String m_pArtist; /**< Performer or artist */
M4COMMON_String m_pAlbum; /**< Album title for the media */
M4COMMON_String m_pAuthor; /**< Author of the media */
M4COMMON_String m_pGenre; /**< Genre (category and style) of the media */
M4COMMON_String m_pDescription; /**< Caption or description for the media */
M4COMMON_String m_pCopyRights; /**< Notice about organization holding copyright
for the media file */
M4COMMON_String m_pRecordingYear; /**< Recording year for the media */
M4COMMON_String m_pRating; /**< Media rating */
M4COMMON_String m_pClassification; /**< Classification of the media */
M4COMMON_String m_pKeyWords; /**< Media keywords */
M4COMMON_String m_pLocation; /**< Location information */
M4COMMON_String m_pUrl; /**< Reference of the resource */
M4OSA_UInt8 m_uiTrackNumber; /**< Track number for the media*/
M4OSA_UInt32 m_uiDuration; /**< The track duration in milliseconds */
M4COMMON_MetaDataAlbumArt m_albumArt; /**< AlbumArt description */
M4COMMON_String m_pMood; /**< Mood of the media */
/**< Modifs ACO 4/12/07 : add Exif specific infos */
M4COMMON_String m_pCreationDateTime; /**< date and time original image was generated */
M4COMMON_String m_pLastChangeDateTime; /**< file change date and time */
M4COMMON_String m_pManufacturer; /**< manufacturer of image input equipment */
M4COMMON_String m_pModel; /**< model of image input equipment */
M4COMMON_String m_pSoftware; /**< software used */
M4COMMON_Orientation m_Orientation; /**< Orientation of the picture */
/**< Modifs FS 29/08/08 : additionnal Exif infos */
M4OSA_UInt32 m_width; /**< image width in pixels */
M4OSA_UInt32 m_height; /**< image height in pixels */
M4OSA_UInt32 m_thumbnailSize; /**< size of the thumbnail */
M4COMMON_String m_pLatitudeRef; /**< Latitude reference */
M4COMMON_Location m_latitude; /**< Latitude */
M4COMMON_String m_pLongitudeRef; /**< Longitude reference */
M4COMMON_Location m_longitude; /**< Longitude */
} M4COMMON_MetaDataFields;
#endif /*M4COMMON_TYPES_H*/
|