From 227de4e6a0be638b78386050ba188dc33cc30427 Mon Sep 17 00:00:00 2001 From: Sergii Doroshenko Date: Fri, 20 Jul 2012 16:46:23 -0500 Subject: AACExtractor: Added support for APE tag To support aac audio with APE tag we need parse this tag. Otherwise AACExtractor stops reading of audio file. DR: OMAPS00267689 Change-Id: Ic697b90dbc9f2b93aeb227411359c36c113cb71e Signed-off-by: Daniel Levin --- media/libstagefright/include/AACExtractor.h | 4 +++ media/libstagefright/include/APE.h | 43 +++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 media/libstagefright/include/APE.h (limited to 'media/libstagefright/include') diff --git a/media/libstagefright/include/AACExtractor.h b/media/libstagefright/include/AACExtractor.h index e98ca82..9a0ba2f 100644 --- a/media/libstagefright/include/AACExtractor.h +++ b/media/libstagefright/include/AACExtractor.h @@ -21,6 +21,7 @@ #include #include +#include "include/APE.h" namespace android { @@ -48,6 +49,9 @@ private: Vector mOffsetVector; int64_t mFrameDurationUs; + APE ape; + sp mApeMeta; + AACExtractor(const AACExtractor &); AACExtractor &operator=(const AACExtractor &); }; diff --git a/media/libstagefright/include/APE.h b/media/libstagefright/include/APE.h new file mode 100644 index 0000000..db49bb0 --- /dev/null +++ b/media/libstagefright/include/APE.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) Texas Instruments - http://www.ti.com/ + * + * 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 APE_TAG_H_ + +#define APE_TAG_H_ + +#include +#include +#include + +namespace android { + +class APE{ +public: + APE(); + ~APE(); + bool isAPE(uint8_t *apeTag) const; + bool parseAPE(const sp &source, off64_t offset, + sp &meta); + +private: + uint32_t itemNumber; + uint32_t itemFlags; + size_t lenValue; +}; + +} //namespace android + +#endif //APE_TAG_H_ -- cgit v1.1