Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 81b18090 authored by codeworkx's avatar codeworkx
Browse files

samsung: added support for proprietary omx codecs

Change-Id: Ide94f625ff52ca5c55a1e92e5f3581a869bb4a9d
parent 49fb515f
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -3,9 +3,6 @@ include $(CLEAR_VARS)

include frameworks/base/media/libstagefright/codecs/common/Config.mk

ifeq ($(BOARD_HAVE_CODEC_SUPPORT),SAMSUNG_CODEC_SUPPORT)
LOCAL_CFLAGS     += -DSAMSUNG_CODEC_SUPPORT
endif
LOCAL_SRC_FILES:=                         \
        ACodec.cpp                        \
        AACExtractor.cpp                  \
@@ -92,6 +89,14 @@ LOCAL_STATIC_LIBRARIES := \
        libstagefright_id3 \
        libFLAC \

ifeq ($(BOARD_HAVE_CODEC_SUPPORT),SAMSUNG_CODEC_SUPPORT)
LOCAL_CFLAGS     += -DSAMSUNG_CODEC_SUPPORT
endif

ifeq ($(BOARD_USES_PROPRIETARY_OMX),SAMSUNG)
LOCAL_CFLAGS     += -DSAMSUNG_OMX
endif

################################################################################

# The following was shamelessly copied from external/webkit/Android.mk and
+24 −0
Original line number Diff line number Diff line
@@ -116,6 +116,22 @@ static sp<MediaSource> InstantiateSoftwareEncoder(
#undef FACTORY_CREATE

static const CodecInfo kDecoderInfo[] = {
#ifdef SAMSUNG_OMX
    { MEDIA_MIMETYPE_AUDIO_MPEG, "OMX.SEC.mp3.dec" },
    { MEDIA_MIMETYPE_AUDIO_AMR_NB, "OMX.SEC.amr.dec" },
    { MEDIA_MIMETYPE_AUDIO_AMR_WB, "OMX.SEC.amr.dec" },
    { MEDIA_MIMETYPE_AUDIO_AAC, "OMX.SEC.aac.dec" },
    { MEDIA_MIMETYPE_AUDIO_FLAC, "OMX.SEC.flac.dec" },
    { MEDIA_MIMETYPE_VIDEO_MPEG4, "OMX.SEC.mpeg4.dec" },
    { MEDIA_MIMETYPE_VIDEO_H263, "OMX.SEC.h263.dec" },
    { MEDIA_MIMETYPE_VIDEO_H263, "OMX.SEC.h263sr.dec" },
    { MEDIA_MIMETYPE_VIDEO_AVC, "OMX.SEC.avc.dec" },
    { MEDIA_MIMETYPE_CONTAINER_WVM, "OMX.SEC.vc1.dec" },
    { MEDIA_MIMETYPE_CONTAINER_WVM, "OMX.SEC.wma.dec" },
    { MEDIA_MIMETYPE_CONTAINER_WVM, "OMX.SEC.wmv7.dec" },
    { MEDIA_MIMETYPE_CONTAINER_WVM, "OMX.SEC.wmv8.dec" },
    { MEDIA_MIMETYPE_VIDEO_VPX, "OMX.SEC.vp8.dec" },
#endif
    { MEDIA_MIMETYPE_IMAGE_JPEG, "OMX.TI.JPEG.decode" },
//    { MEDIA_MIMETYPE_AUDIO_MPEG, "OMX.TI.MP3.decode" },
    { MEDIA_MIMETYPE_AUDIO_MPEG, "OMX.google.mp3.decoder" },
@@ -158,6 +174,14 @@ static const CodecInfo kDecoderInfo[] = {
};

static const CodecInfo kEncoderInfo[] = {
#ifdef SAMSUNG_OMX
    { MEDIA_MIMETYPE_AUDIO_AMR_NB, "OMX.SEC.amr.enc" },
    { MEDIA_MIMETYPE_AUDIO_AMR_WB, "OMX.SEC.amr.enc" },
    { MEDIA_MIMETYPE_AUDIO_AAC, "OMX.SEC.aac.enc" },
    { MEDIA_MIMETYPE_VIDEO_MPEG4, "OMX.SEC.mpeg4.enc" },
    { MEDIA_MIMETYPE_VIDEO_H263, "OMX.SEC.h263.enc" },
    { MEDIA_MIMETYPE_VIDEO_AVC, "OMX.SEC.avc.enc" },
#endif
    { MEDIA_MIMETYPE_AUDIO_AMR_NB, "OMX.TI.AMR.encode" },
    { MEDIA_MIMETYPE_AUDIO_AMR_NB, "AMRNBEncoder" },
    { MEDIA_MIMETYPE_AUDIO_AMR_WB, "OMX.TI.WBAMR.encode" },
+4 −0
Original line number Diff line number Diff line
@@ -25,6 +25,10 @@ LOCAL_SHARED_LIBRARIES := \
        libstagefright_foundation       \
        libdl

ifeq ($(BOARD_USES_PROPRIETARY_OMX),SAMSUNG)
LOCAL_CFLAGS     += -DSAMSUNG_OMX
endif

LOCAL_MODULE:= libstagefright_omx

include $(BUILD_SHARED_LIBRARY)
+5 −0
Original line number Diff line number Diff line
@@ -44,13 +44,18 @@ OMXMaster::~OMXMaster() {
}

void OMXMaster::addVendorPlugin() {
#ifdef SAMSUNG_OMX
    addPlugin("libsomxcore.so");
#else
    addPlugin("libstagefrighthw.so");
#endif
}

void OMXMaster::addPlugin(const char *libname) {
    mVendorLibHandle = dlopen(libname, RTLD_NOW);

    if (mVendorLibHandle == NULL) {
        LOGE("dlopen() failed.");
        return;
    }