Skip to content

Commit 4bc8bfa

Browse files
theandi666Android (Google) Code Review
authored andcommitted
Merge "The software AAC encoder is now an OMX component."
2 parents 23fb7dc + afe02df commit 4bc8bfa

File tree

8 files changed

+677
-10
lines changed

8 files changed

+677
-10
lines changed

cmds/stagefright/record.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ static const int32_t kVideoBitRate = 512 * 1024;
3838
static const int32_t kAudioBitRate = 12200;
3939
static const int64_t kDurationUs = 10000000LL; // 10 seconds
4040

41-
#if 1
41+
#if 0
4242
class DummySource : public MediaSource {
4343

4444
public:
@@ -318,7 +318,7 @@ int main(int argc, char **argv) {
318318

319319
sp<MetaData> encMeta = new MetaData;
320320
encMeta->setCString(kKeyMIMEType,
321-
1 ? MEDIA_MIMETYPE_AUDIO_AMR_WB : MEDIA_MIMETYPE_AUDIO_AAC);
321+
0 ? MEDIA_MIMETYPE_AUDIO_AMR_WB : MEDIA_MIMETYPE_AUDIO_AAC);
322322
encMeta->setInt32(kKeySampleRate, kSampleRate);
323323
encMeta->setInt32(kKeyChannelCount, kNumChannels);
324324
encMeta->setInt32(kKeyMaxInputSize, 8192);

include/media/stagefright/OMXCodec.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ struct OMXCodec : public MediaSource,
172172
uint32_t mFlags;
173173

174174
bool mIsEncoder;
175+
bool mIsVideo;
175176
char *mMIME;
176177
char *mComponentName;
177178
sp<MetaData> mOutputFormat;

media/libstagefright/Android.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ LOCAL_SHARED_LIBRARIES := \
7777

7878
LOCAL_STATIC_LIBRARIES := \
7979
libstagefright_color_conversion \
80-
libstagefright_aacenc \
8180
libstagefright_amrnbenc \
8281
libstagefright_amrwbenc \
8382
libstagefright_avcenc \

media/libstagefright/OMXCodec.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#define LOG_TAG "OMXCodec"
1919
#include <utils/Log.h>
2020

21-
#include "include/AACEncoder.h"
2221
#include "include/AMRNBEncoder.h"
2322
#include "include/AMRWBEncoder.h"
2423
#include "include/AVCEncoder.h"
@@ -73,7 +72,6 @@ static sp<MediaSource> Make##name(const sp<MediaSource> &source, const sp<MetaDa
7372

7473
FACTORY_CREATE_ENCODER(AMRNBEncoder)
7574
FACTORY_CREATE_ENCODER(AMRWBEncoder)
76-
FACTORY_CREATE_ENCODER(AACEncoder)
7775
FACTORY_CREATE_ENCODER(AVCEncoder)
7876
FACTORY_CREATE_ENCODER(M4vH263Encoder)
7977

@@ -88,7 +86,6 @@ static sp<MediaSource> InstantiateSoftwareEncoder(
8886
static const FactoryInfo kFactoryInfo[] = {
8987
FACTORY_REF(AMRNBEncoder)
9088
FACTORY_REF(AMRWBEncoder)
91-
FACTORY_REF(AACEncoder)
9289
FACTORY_REF(AVCEncoder)
9390
FACTORY_REF(M4vH263Encoder)
9491
};
@@ -153,7 +150,7 @@ static const CodecInfo kEncoderInfo[] = {
153150
{ MEDIA_MIMETYPE_AUDIO_AMR_WB, "OMX.TI.WBAMR.encode" },
154151
{ MEDIA_MIMETYPE_AUDIO_AMR_WB, "AMRWBEncoder" },
155152
{ MEDIA_MIMETYPE_AUDIO_AAC, "OMX.TI.AAC.encode" },
156-
{ MEDIA_MIMETYPE_AUDIO_AAC, "AACEncoder" },
153+
{ MEDIA_MIMETYPE_AUDIO_AAC, "OMX.google.aac.encoder" },
157154
{ MEDIA_MIMETYPE_VIDEO_MPEG4, "OMX.TI.DUCATI1.VIDEO.MPEG4E" },
158155
{ MEDIA_MIMETYPE_VIDEO_MPEG4, "OMX.qcom.7x30.video.encoder.mpeg4" },
159156
{ MEDIA_MIMETYPE_VIDEO_MPEG4, "OMX.qcom.video.encoder.mpeg4" },
@@ -1487,6 +1484,7 @@ OMXCodec::OMXCodec(
14871484
mQuirks(quirks),
14881485
mFlags(flags),
14891486
mIsEncoder(isEncoder),
1487+
mIsVideo(!strncasecmp("video/", mime, 6)),
14901488
mMIME(strdup(mime)),
14911489
mComponentName(strdup(componentName)),
14921490
mSource(source),
@@ -2192,7 +2190,7 @@ status_t OMXCodec::pushBlankBuffersToNativeWindow() {
21922190
}
21932191

21942192
int64_t OMXCodec::retrieveDecodingTimeUs(bool isCodecSpecific) {
2195-
CHECK(mIsEncoder);
2193+
CHECK(mIsEncoder && mIsVideo);
21962194

21972195
if (mDecodingTimeList.empty()) {
21982196
CHECK(mSignalledEOS || mNoMoreOutputData);
@@ -2387,7 +2385,7 @@ void OMXCodec::on_message(const omx_message &msg) {
23872385
mNoMoreOutputData = true;
23882386
}
23892387

2390-
if (mIsEncoder) {
2388+
if (mIsEncoder && mIsVideo) {
23912389
int64_t decodingTimeUs = retrieveDecodingTimeUs(isCodecSpecific);
23922390
buffer->meta_data()->setInt64(kKeyDecodingTime, decodingTimeUs);
23932391
}
@@ -3249,7 +3247,7 @@ bool OMXCodec::drainInputBuffer(BufferInfo *info) {
32493247
int64_t lastBufferTimeUs;
32503248
CHECK(srcBuffer->meta_data()->findInt64(kKeyTime, &lastBufferTimeUs));
32513249
CHECK(lastBufferTimeUs >= 0);
3252-
if (mIsEncoder) {
3250+
if (mIsEncoder && mIsVideo) {
32533251
mDecodingTimeList.push_back(lastBufferTimeUs);
32543252
}
32553253

media/libstagefright/codecs/aacenc/Android.mk

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,29 @@ LOCAL_C_INCLUDES += $(LOCAL_PATH)/src/asm/ARMV7
8585
endif
8686

8787
include $(BUILD_STATIC_LIBRARY)
88+
89+
################################################################################
90+
91+
include $(CLEAR_VARS)
92+
93+
LOCAL_SRC_FILES := \
94+
SoftAACEncoder.cpp
95+
96+
LOCAL_C_INCLUDES := \
97+
frameworks/base/media/libstagefright/include \
98+
frameworks/base/include/media/stagefright/openmax \
99+
frameworks/base/media/libstagefright/codecs/common/include \
100+
101+
LOCAL_CFLAGS := -DOSCL_IMPORT_REF=
102+
103+
LOCAL_STATIC_LIBRARIES := \
104+
libstagefright_aacenc
105+
106+
LOCAL_SHARED_LIBRARIES := \
107+
libstagefright_omx libstagefright_foundation libutils \
108+
libstagefright_enc_common
109+
110+
LOCAL_MODULE := libstagefright_soft_aacenc
111+
LOCAL_MODULE_TAGS := optional
112+
113+
include $(BUILD_SHARED_LIBRARY)

0 commit comments

Comments
 (0)