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

Commit 18e4fa61 authored by Shalaj Jain's avatar Shalaj Jain Committed by Ricardo Cerqueira
Browse files

libstagefright: Initial commit for video



Patchset 1: Add QCOM_HARDWARE ifdefs.
Patchset 2: Rebase and move omx include to vendor.
Patchset 3: Fix whitespace

Conflicts:

	include/media/stagefright/OMXCodec.h
	media/libstagefright/OMXCodec.cpp

Change-Id: I6586f3d29524ba031d8c814abdfbb47bb7e5bfda
Signed-off-by: default avatarEvan McClain <aeroevan@gmail.com>
parent ac58f33d
Loading
Loading
Loading
Loading
+30 −2
Original line number Diff line number Diff line
@@ -22,6 +22,11 @@ LOCAL_CFLAGS += -Wno-multichar

LOCAL_MODULE_TAGS := debug

ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
	LOCAL_C_INCLUDES += $(TOP)/vendor/qcom/opensource/omx/mm-core/omxcore/inc
	LOCAL_CFLAGS += -DQCOM_HARDWARE
endif

LOCAL_MODULE:= stagefright

include $(BUILD_EXECUTABLE)
@@ -46,6 +51,10 @@ LOCAL_CFLAGS += -Wno-multichar

LOCAL_MODULE_TAGS := debug

ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
	LOCAL_CFLAGS += -DQCOM_HARDWARE
endif

LOCAL_MODULE:= record

include $(BUILD_EXECUTABLE)
@@ -70,6 +79,11 @@ LOCAL_CFLAGS += -Wno-multichar

LOCAL_MODULE_TAGS := debug

ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
	LOCAL_C_INCLUDES += $(TOP)/vendor/qcom/opensource/omx/mm-core/omxcore/inc
	LOCAL_CFLAGS += -DQCOM_HARDWARE
endif

LOCAL_MODULE:= recordvideo

include $(BUILD_EXECUTABLE)
@@ -95,6 +109,10 @@ LOCAL_CFLAGS += -Wno-multichar

LOCAL_MODULE_TAGS := debug

ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
	LOCAL_CFLAGS += -DQCOM_HARDWARE
endif

LOCAL_MODULE:= audioloop

include $(BUILD_EXECUTABLE)
@@ -119,6 +137,11 @@ LOCAL_CFLAGS += -Wno-multichar

LOCAL_MODULE_TAGS := debug

ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
	LOCAL_C_INCLUDES += $(TOP)/vendor/qcom/opensource/omx/mm-core/omxcore/inc
	LOCAL_CFLAGS += -DQCOM_HARDWARE
endif

LOCAL_MODULE:= stream

include $(BUILD_EXECUTABLE)
@@ -143,6 +166,11 @@ LOCAL_CFLAGS += -Wno-multichar

LOCAL_MODULE_TAGS := debug

ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
	LOCAL_C_INCLUDES += $(TOP)/vendor/qcom/opensource/omx/mm-core/omxcore/inc
	LOCAL_CFLAGS += -DQCOM_HARDWARE
endif

LOCAL_MODULE:= sf2

include $(BUILD_EXECUTABLE)
+3 −0
Original line number Diff line number Diff line
@@ -26,6 +26,9 @@
#include <media/stagefright/OMXClient.h>
#include <media/stagefright/OMXCodec.h>
#include <media/MediaPlayerInterface.h>
#ifdef QCOM_HARDWARE
#include <OMX_QCOMExtns.h>
#endif

using namespace android;

+6 −0
Original line number Diff line number Diff line
@@ -146,6 +146,12 @@ enum {
#endif

    kKeyRequiresSecureBuffers = 'secu',  // bool (int32_t)

#ifdef QCOM_HARDWARE
    // 3D Video Flag
    kKey3D                = '3Dvf',  // bool (int32_t)
    kKeyHFR               = 'hfr ',  // int32_t
#endif
};

enum {
+19 −0
Original line number Diff line number Diff line
@@ -56,6 +56,10 @@ struct OMXCodec : public MediaSource,

        // Secure decoding mode
        kUseSecureInputBuffers = 256,

#ifdef QCOM_HARDWARE
        kEnableThumbnailMode = 512,
#endif
    };
    static sp<MediaSource> Create(
            const sp<IOMX> &omx,
@@ -140,6 +144,9 @@ private:
        kAvoidMemcopyInputRecordingFrames     = 2048,
        kRequiresLargerEncoderOutputBuffer    = 4096,
        kOutputBuffersAreUnreadable           = 8192,
#ifdef QCOM_HARDWARE
        kStoreMetaDataInInputVideoBuffers     = 16384,
#endif
    };

    enum BufferStatus {
@@ -193,6 +200,9 @@ private:
    ReadOptions::SeekMode mSeekMode;
    int64_t mTargetTimeUs;
    bool mOutputPortSettingsChangedPending;
#ifdef QCOM_HARDWARE
    bool mThumbnailMode;
#endif

    MediaBuffer *mLeftOverBuffer;

@@ -212,6 +222,12 @@ private:
    List<size_t> mFilledBuffers;
    Condition mBufferFilled;

#ifdef QCOM_HARDWARE
    bool mIsMetaDataStoredInVideoBuffers;
    bool mOnlySubmitOneBufferAtOneTime;
    bool mInterlaceFormatDetected;
#endif

    // Used to record the decoding time for an output picture from
    // a video encoder.
    List<int64_t> mDecodingTimeList;
@@ -339,6 +355,9 @@ private:
    status_t parseAVCCodecSpecificData(
            const void *data, size_t size,
            unsigned *profile, unsigned *level);
#ifdef QCOM_HARDWARE
    void parseFlags( uint32_t flags );
#endif

    OMXCodec(const OMXCodec &);
    OMXCodec &operator=(const OMXCodec &);
+2 −0
Original line number Diff line number Diff line
@@ -158,7 +158,9 @@ typedef enum OMX_COLOR_FORMATTYPE {
     * */
    OMX_COLOR_FormatAndroidOpaque = 0x7F000789,
    OMX_TI_COLOR_FormatYUV420PackedSemiPlanar = 0x7F000100,
#ifndef QCOM_HARDWARE
    OMX_QCOM_COLOR_FormatYVU420SemiPlanar = 0x7FA30C00,
#endif
    OMX_COLOR_FormatMax = 0x7FFFFFFF
} OMX_COLOR_FORMATTYPE;

Loading