Commit 8dd8ec71 authored by Andreas Huber's avatar Andreas Huber Committed by Martin Storsjo

Upstream commit "The AMR WB software encoder is now an OMX component."

Change-Id: Iebfb2696783a0163369ba4e8ef72e19ee76ad893

Adapted from upstream commit 83f70f4472e9b0cacc5d372eddfcef4b02662d10.
parent f84abeec
...@@ -117,4 +117,26 @@ endif ...@@ -117,4 +117,26 @@ endif
include $(BUILD_STATIC_LIBRARY) include $(BUILD_STATIC_LIBRARY)
################################################################################
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
SoftAMRWBEncoder.cpp
LOCAL_C_INCLUDES := \
frameworks/base/media/libstagefright/include \
frameworks/base/include/media/stagefright/openmax \
frameworks/base/media/libstagefright/codecs/common/include \
LOCAL_STATIC_LIBRARIES := \
libstagefright_amrwbenc
LOCAL_SHARED_LIBRARIES := \
libstagefright_omx libstagefright_foundation libutils \
libstagefright_enc_common
LOCAL_MODULE := libstagefright_soft_amrwbenc
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)
This diff is collapsed.
/*
* Copyright (C) 2012 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.
*/
#ifndef SOFT_AMRWB_ENCODER_H_
#define SOFT_AMRWB_ENCODER_H_
#include "SimpleSoftOMXComponent.h"
#include "voAMRWB.h"
struct VO_AUDIO_CODECAPI;
struct VO_MEM_OPERATOR;
namespace android {
struct SoftAMRWBEncoder : public SimpleSoftOMXComponent {
SoftAMRWBEncoder(
const char *name,
const OMX_CALLBACKTYPE *callbacks,
OMX_PTR appData,
OMX_COMPONENTTYPE **component);
protected:
virtual ~SoftAMRWBEncoder();
virtual OMX_ERRORTYPE internalGetParameter(
OMX_INDEXTYPE index, OMX_PTR params);
virtual OMX_ERRORTYPE internalSetParameter(
OMX_INDEXTYPE index, const OMX_PTR params);
virtual void onQueueFilled(OMX_U32 portIndex);
private:
enum {
kNumBuffers = 4,
kNumSamplesPerFrame = 320,
};
void *mEncoderHandle;
VO_AUDIO_CODECAPI *mApiHandle;
VO_MEM_OPERATOR *mMemOperator;
OMX_U32 mBitRate;
VOAMRWBMODE mMode;
size_t mInputSize;
int16_t mInputFrame[kNumSamplesPerFrame];
int64_t mInputTimeUs;
bool mSawInputEOS;
bool mSignalledError;
void initPorts();
status_t initEncoder();
DISALLOW_EVIL_CONSTRUCTORS(SoftAMRWBEncoder);
};
} // namespace android
#endif // SOFT_AMRWB_ENCODER_H_
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment