2 * Copyright 2012 Michael Chen <omxcodec@gmail.com>
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef CODEC_UTILS_H_
19 #define CODEC_UTILS_H_
24 #include <utils/Errors.h>
25 #include <media/stagefright/foundation/ABuffer.h>
27 #include "ffmpeg_utils.h"
32 sp<MetaData> setAVCFormat(AVCodecContext *avctx);
33 sp<MetaData> setH264Format(AVCodecContext *avctx);
34 sp<MetaData> setMPEG4Format(AVCodecContext *avctx);
35 sp<MetaData> setH263Format(AVCodecContext *avctx);
36 sp<MetaData> setMPEG2VIDEOFormat(AVCodecContext *avctx);
37 sp<MetaData> setVC1Format(AVCodecContext *avctx);
38 sp<MetaData> setWMV1Format(AVCodecContext *avctx);
39 sp<MetaData> setWMV2Format(AVCodecContext *avctx);
40 sp<MetaData> setWMV3Format(AVCodecContext *avctx);
41 sp<MetaData> setRV20Format(AVCodecContext *avctx);
42 sp<MetaData> setRV30Format(AVCodecContext *avctx);
43 sp<MetaData> setRV40Format(AVCodecContext *avctx);
44 sp<MetaData> setFLV1Format(AVCodecContext *avctx);
45 sp<MetaData> setHEVCFormat(AVCodecContext *avctx);
46 sp<MetaData> setVP8Format(AVCodecContext *avctx);
47 sp<MetaData> setVP9Format(AVCodecContext *avctx);
49 sp<MetaData> setMP2Format(AVCodecContext *avctx);
50 sp<MetaData> setMP3Format(AVCodecContext *avctx);
51 sp<MetaData> setVORBISFormat(AVCodecContext *avctx);
52 sp<MetaData> setAC3Format(AVCodecContext *avctx);
53 sp<MetaData> setAACFormat(AVCodecContext *avctx);
54 sp<MetaData> setWMAV1Format(AVCodecContext *avctx);
55 sp<MetaData> setWMAV2Format(AVCodecContext *avctx);
56 sp<MetaData> setWMAProFormat(AVCodecContext *avctx);
57 sp<MetaData> setWMALossLessFormat(AVCodecContext *avctx);
58 sp<MetaData> setRAFormat(AVCodecContext *avctx);
59 sp<MetaData> setAPEFormat(AVCodecContext *avctx);
60 sp<MetaData> setDTSFormat(AVCodecContext *avctx);
61 sp<MetaData> setFLACFormat(AVCodecContext *avctx);
63 //Convert H.264 NAL format to annex b
64 status_t convertNal2AnnexB(uint8_t *dst, size_t dst_size,
65 uint8_t *src, size_t src_size, size_t nal_len_size);
67 int getDivXVersion(AVCodecContext *avctx);
69 status_t parseMetadataTags(AVFormatContext *ctx, const sp<MetaData> &meta);
71 } // namespace android
73 #endif // CODEC_UTILS_H_