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

Commit e7cf4ee4 authored by Hong Teng's avatar Hong Teng Committed by Android Git Automerger
Browse files

am 481ffa50: Merge "Fix for issue 5309336 -add videoeditor maximum prefetch...

am 481ffa50: Merge "Fix for issue  5309336 -add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage." into ics-mr1

* commit '481ffa505bb1d8f5089ea98e3b5960d409b6819c':
  Fix for issue  5309336 -add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage.
parents 41ff7857 9621addc
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -51,12 +51,18 @@ enum camcorder_quality {
 * Set CIF as default maximum import and export resolution of video editor.
 * The maximum import and export resolutions are platform specific,
 * which should be defined in media_profiles.xml.
 * Set default maximum prefetch YUV frames to 6, which means video editor can
 * queue up to 6 YUV frames in the video encoder source.
 * This value is used to limit the amount of memory used by video editor
 * engine when the encoder consumes YUV frames at a lower speed
 * than video editor engine produces.
 */
enum videoeditor_capability {
    VIDEOEDITOR_DEFAULT_MAX_INPUT_FRAME_WIDTH = 352,
    VIDEOEDITOR_DEFUALT_MAX_INPUT_FRAME_HEIGHT = 288,
    VIDEOEDITOR_DEFAULT_MAX_OUTPUT_FRAME_WIDTH = 352,
    VIDEOEDITOR_DEFUALT_MAX_OUTPUT_FRAME_HEIGHT = 288,
    VIDEOEDITOR_DEFAULT_MAX_PREFETCH_YUV_FRAMES = 6
};

enum video_decoder {
@@ -138,6 +144,8 @@ public:
     * videoeditor.input.height.max - max input video frame height
     * videoeditor.output.width.max - max output video frame width
     * videoeditor.output.height.max - max output video frame height
     * maxPrefetchYUVFrames - max prefetch YUV frames in video editor engine. This value is used
     * to limit the memory consumption.
     */
    int getVideoEditorCapParamByName(const char *name) const;

@@ -357,11 +365,12 @@ private:
    };
    struct VideoEditorCap {
        VideoEditorCap(int inFrameWidth, int inFrameHeight,
            int outFrameWidth, int outFrameHeight)
            int outFrameWidth, int outFrameHeight, int frames)
            : mMaxInputFrameWidth(inFrameWidth),
              mMaxInputFrameHeight(inFrameHeight),
              mMaxOutputFrameWidth(outFrameWidth),
              mMaxOutputFrameHeight(outFrameHeight) {}
              mMaxOutputFrameHeight(outFrameHeight),
              mMaxPrefetchYUVFrames(frames) {}

        ~VideoEditorCap() {}

@@ -369,6 +378,7 @@ private:
        int mMaxInputFrameHeight;
        int mMaxOutputFrameWidth;
        int mMaxOutputFrameHeight;
        int mMaxPrefetchYUVFrames;
    };

    int getCamcorderProfileIndex(int cameraId, camcorder_quality quality) const;
+7 −3
Original line number Diff line number Diff line
@@ -404,11 +404,12 @@ MediaProfiles::createVideoEditorCap(const char **atts, MediaProfiles *profiles)
    CHECK(!strcmp("maxInputFrameWidth", atts[0]) &&
          !strcmp("maxInputFrameHeight", atts[2])  &&
          !strcmp("maxOutputFrameWidth", atts[4]) &&
          !strcmp("maxOutputFrameHeight", atts[6]));
          !strcmp("maxOutputFrameHeight", atts[6]) &&
          !strcmp("maxPrefetchYUVFrames", atts[8]));

    MediaProfiles::VideoEditorCap *pVideoEditorCap =
        new MediaProfiles::VideoEditorCap(atoi(atts[1]), atoi(atts[3]),
                atoi(atts[5]), atoi(atts[7]));
                atoi(atts[5]), atoi(atts[7]), atoi(atts[9]));

    logVideoEditorCap(*pVideoEditorCap);
    profiles->mVideoEditorCap = pVideoEditorCap;
@@ -850,7 +851,8 @@ MediaProfiles::createDefaultVideoEditorCap(MediaProfiles *profiles)
                VIDEOEDITOR_DEFAULT_MAX_INPUT_FRAME_WIDTH,
                VIDEOEDITOR_DEFUALT_MAX_INPUT_FRAME_HEIGHT,
                VIDEOEDITOR_DEFAULT_MAX_OUTPUT_FRAME_WIDTH,
                VIDEOEDITOR_DEFUALT_MAX_OUTPUT_FRAME_HEIGHT);
                VIDEOEDITOR_DEFUALT_MAX_OUTPUT_FRAME_HEIGHT,
                VIDEOEDITOR_DEFAULT_MAX_PREFETCH_YUV_FRAMES);
}
/*static*/ void
MediaProfiles::createDefaultExportVideoProfiles(MediaProfiles *profiles)
@@ -1019,6 +1021,8 @@ int MediaProfiles::getVideoEditorCapParamByName(const char *name) const
        return mVideoEditorCap->mMaxOutputFrameWidth;
    if (!strcmp("videoeditor.output.height.max", name))
        return mVideoEditorCap->mMaxOutputFrameHeight;
    if (!strcmp("maxPrefetchYUVFrames", name))
        return mVideoEditorCap->mMaxPrefetchYUVFrames;

    LOGE("The given video editor param name %s is not found", name);
    return -1;