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

Commit 88949a03 authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge bc328067 on remote branch

Change-Id: If739b1e8273f522f165a8f12bf53e4906a102b61
parents dec6c25f bc328067
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -481,6 +481,9 @@ protected:
    status_t setOperatingRate(float rateFloat, bool isVideo);
    status_t getIntraRefreshPeriod(uint32_t *intraRefreshPeriod);
    status_t setIntraRefreshPeriod(uint32_t intraRefreshPeriod, bool inConfigure);
    status_t configureTemporalLayers(
            uint32_t numLayers, uint32_t numBLayers, bool inConfigure,
            sp<AMessage> &outputFormat);

    status_t setMinBufferSize(OMX_U32 portIndex, size_t size);

+2 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ public:

    status_t setGeoData(int latitudex10000, int longitudex10000);
    status_t setCaptureRate(float captureFps);
    status_t setTemporalLayerCount(uint32_t layerCount);
    virtual void setStartTimeOffsetMs(int ms) { mStartTimeOffsetMs = ms; }
    virtual int32_t getStartTimeOffsetMs() const { return mStartTimeOffsetMs; }

@@ -196,6 +197,7 @@ private:
protected:
    static void StripStartcode(MediaBuffer *buffer);
    virtual off64_t addLengthPrefixedSample_l(MediaBuffer *buffer);
    off64_t addMultipleLengthPrefixedSamples_l(MediaBuffer *buffer);

private:
    bool exceedsFileSizeLimit();
+2 −0
Original line number Diff line number Diff line
@@ -204,6 +204,8 @@ enum {
                                   // transfer Function, value defined by ColorAspects.Transfer.
    kKeyColorMatrix      = 'cMtx', // int32_t,
                                   // color Matrix, value defined by ColorAspects.MatrixCoeffs.
    kKeyTemporalLayerId  = 'iLyr', // int32_t, temporal layer-id. 0-based (0 => base layer)
    kKeyTemporalLayerCount = 'cLyr', // int32_t, number of temporal layers encoded
};

enum {
+10 −0
Original line number Diff line number Diff line
@@ -371,11 +371,21 @@ status_t MediaRecorderClient::setListener(const sp<IMediaRecorderClient>& listen

    sp<IServiceManager> sm = defaultServiceManager();
    sp<IBinder> binder = sm->getService(String16("media.camera"));
    if (binder == NULL) {
        ALOGE("Unable to connect to camera service");
        return NO_INIT;
    }

    mCameraDeathListener = new ServiceDeathNotifier(binder, listener,
            MediaPlayerService::CAMERA_PROCESS_DEATH);
    binder->linkToDeath(mCameraDeathListener);

    binder = sm->getService(String16("media.codec"));
    if (binder == NULL) {
        ALOGE("Unable to connect to media codec service");
        return NO_INIT;
    }

    mCodecDeathListener = new ServiceDeathNotifier(binder, listener,
            MediaPlayerService::MEDIACODEC_PROCESS_DEATH);
    binder->linkToDeath(mCodecDeathListener);
+13 −2
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@
#include <sys/types.h>
#include <ctype.h>
#include <unistd.h>
#include <math.h>

#include <system/audio.h>

@@ -588,7 +589,7 @@ status_t StagefrightRecorder::setParamCaptureFpsEnable(int32_t captureFpsEnable)
status_t StagefrightRecorder::setParamCaptureFps(float fps) {
    ALOGV("setParamCaptureFps: %.2f", fps);

    int64_t timeUs = (int64_t) (1000000.0 / fps + 0.5f);
    int64_t timeUs = (int64_t) (1000000.0f / fps + 0.5f);

    // Not allowing time more than a day
    if (timeUs <= 0 || timeUs > 86400*1E6) {
@@ -1586,6 +1587,16 @@ status_t StagefrightRecorder::setupVideoEncoder(
    format->setInt32("priority", 0 /* realtime */);
    if (mCaptureFpsEnable) {
        format->setFloat("operating-rate", mCaptureFps);

        // Enable layers if capture-rate > 60
        // Number of layers will be based on the ratio wrt 30fps
        float speed = mCaptureFps / mFrameRate;
        if (mCaptureFps > 60.0 && speed > 2.0) {
            int32_t numLayers = (int32_t)log2f(speed) + 1;
            ALOGI("Enabling %d layers for capture-rate(%f) / fps(%u)",
                    numLayers, mCaptureFps, mFrameRate);
            format->setInt32("num-temporal-layers", numLayers);
        }
    }

    if (mMetaDataStoredInVideoBuffers != kMetadataBufferTypeInvalid) {
@@ -1663,7 +1674,7 @@ status_t StagefrightRecorder::setupMPEG4orWEBMRecording() {
    if (mOutputFormat == OUTPUT_FORMAT_WEBM) {
        writer = new WebmWriter(mOutputFd);
    } else {
        writer = mp4writer = AVFactory::get()->CreateMPEG4Writer(mOutputFd);
        writer = mp4writer = new MPEG4Writer(mOutputFd);
    }

    if (mVideoSource < VIDEO_SOURCE_LIST_END) {
Loading