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

Commit 88f489d7 authored by Haynes Mathew George's avatar Haynes Mathew George Committed by Ricardo Cerqueira
Browse files

libstagefright: Enable metadata mode recording

- Metada mode video recording is enabled by default.
- use setprop debug.camcorder.disablemeta 1 to disable metadata mode recording.

Change-Id: If994c468c3e24ae03b14462f2311504c3d957426

Conflicts:

	media/libmediaplayerservice/StagefrightRecorder.cpp
	media/libstagefright/OMXCodec.cpp
parent 9ab8b5d2
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -1368,10 +1368,19 @@ status_t StagefrightRecorder::setupCameraSource(
                mTimeBetweenTimeLapseFrameCaptureUs);
        *cameraSource = mCameraSourceTimeLapse;
    } else {

#ifdef QCOM_HARDWARE
        bool useMeta = true;
        char value[PROPERTY_VALUE_MAX];
        if (property_get("debug.camcorder.disablemeta", value, NULL) &&
            atoi(value)) {
            useMeta = false;
        }
#endif
        *cameraSource = CameraSource::CreateFromCamera(
                mCamera, mCameraProxy, mCameraId, videoSize, mFrameRate,
#ifdef QCOM_HARDWARE
                mPreviewSurface, false);
                mPreviewSurface, useMeta);
#else
                mPreviewSurface, true /*storeMetaDataInVideoBuffers*/);
#endif
@@ -1546,6 +1555,7 @@ status_t StagefrightRecorder::setupVideoEncoder(

    uint32_t encoder_flags = 0;
    if (mIsMetaDataStoredInVideoBuffers) {
        LOGW("Camera source supports metadata mode, create OMXCodec for metadata");
        encoder_flags |= OMXCodec::kHardwareCodecsOnly;
        encoder_flags |= OMXCodec::kStoreMetaDataInVideoBuffers;
    }
+2 −1
Original line number Diff line number Diff line
@@ -2153,6 +2153,7 @@ status_t OMXCodec::allocateBuffersOnPort(OMX_U32 portIndex) {
    status_t err = OK;
    if ((mFlags & kStoreMetaDataInVideoBuffers)
            && portIndex == kPortIndexInput) {
        LOGW("Trying to enable metadata mode on encoder");
        err = mOMX->storeMetaDataInBuffers(mNode, kPortIndexInput, OMX_TRUE);
        if (err != OK) {
            LOGE("Storing meta data in video buffers is not supported");
@@ -3695,7 +3696,7 @@ void OMXCodec::drainInputBuffers() {
            }

#ifdef QCOM_HARDWARE
            if(mIsEncoder && (mQuirks & kAvoidMemcopyInputRecordingFrames) && (i == CAMERA_BUFFERS))
            if(mIsEncoder && (i == CAMERA_BUFFERS))
                break;
#endif