Git init
[framework/multimedia/libmm-fileinfo.git] / formats / ffmpeg / include / mm_file_format_aac.h
1 /*
2  * libmm-fileinfo
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Haejeong Kim <backto.kim@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22 #ifndef __MM_FILE_FORMAT_AAC_H__
23 #define __MM_FILE_FORMAT_AAC_H__
24
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 #include "mm_file_formats.h"
31
32 #define MMFILE_AAC_PARSER_SUCCESS   1
33 #define MMFILE_AAC_PARSER_FAIL      0
34
35 typedef enum _mmfile_aac_profile_type {
36   AAC_PROFILE_MAIN,
37   AAC_PROFILE_LC,
38   AAC_PROFILE_SSR,
39   AAC_PROFILE_LTP,
40   AAC_PROFILE_UNKNOWN
41 }TAacProfileType;
42
43 typedef void* MMFileAACHandle;
44
45 typedef struct _mmfileaacstreaminfo {
46   unsigned int    iseekable;
47   long long       duration;
48   long long       fileSize;
49   unsigned int    bitRate;
50   unsigned int    samplingRate;
51   unsigned int    frameRate;
52   unsigned int    numAudioChannels;
53   unsigned int    numTracks;
54   TAacProfileType profileType;
55 } tMMFILE_AAC_STREAM_INFO;
56
57
58 typedef struct _mmfileaactaginfo {
59   char *title;
60   char *author;
61   char *artist;
62   char *album;
63   char *year;
64   char *copyright;
65   char *comment;
66   char *genre;
67   char *composer;
68   char *classification;
69   char *rating;
70   char *recordDate;
71   char *conductor;
72   char *artworkMime;
73   char *artwork;
74   unsigned int artworkSize;
75 } tMMFILE_AAC_TAG_INFO;
76
77
78 int mmfile_aacparser_open (MMFileAACHandle *handle, const char *src);
79 int mmfile_aacparser_get_stream_info (MMFileAACHandle handle, tMMFILE_AAC_STREAM_INFO *aacinfo);
80 int mmfile_aacparser_get_tag_info (MMFileAACHandle handle, tMMFILE_AAC_TAG_INFO *info);
81 int mmfile_aacparser_get_next_frame (MMFileAACHandle handle, tMMFILE_AAC_STREAM_INFO *aacinfo);
82 int mmfile_aacparser_close (MMFileAACHandle handle);
83
84 #ifdef __cplusplus
85 }
86 #endif
87
88 #endif /*__MM_FILE_FORMAT_AAC_H__*/
89