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

Commit 8ffd5b96 authored by Kevin Bruckert's avatar Kevin Bruckert Committed by Ricardo Cerqueira
Browse files

Add camera parameters for htc evo 3D. (1/2)

Use BOARD_HTC_3D_SUPPORT to enable.

Change-Id: I28fa3f1586071bcc78b8e887bbbf699d338a0ceb
parent db860895
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -70,6 +70,7 @@ const char CameraParameters::PANORAMA_MODE_INPROGRESS[] = "in-progress";
const char CameraParameters::KEY_PICTURE_SIZE[] = "picture-size";
const char CameraParameters::KEY_PICTURE_SIZE[] = "picture-size";
const char CameraParameters::KEY_SUPPORTED_PICTURE_SIZES[] = "picture-size-values";
const char CameraParameters::KEY_SUPPORTED_PICTURE_SIZES[] = "picture-size-values";
const char CameraParameters::KEY_PICTURE_FORMAT[] = "picture-format";
const char CameraParameters::KEY_PICTURE_FORMAT[] = "picture-format";
const char CameraParameters::KEY_SUPPORTED_3D_FILE_FORMAT[] = "3d-file-format";
const char CameraParameters::KEY_SUPPORTED_PICTURE_FORMATS[] = "picture-format-values";
const char CameraParameters::KEY_SUPPORTED_PICTURE_FORMATS[] = "picture-format-values";
const char CameraParameters::KEY_JPEG_THUMBNAIL_WIDTH[] = "jpeg-thumbnail-width";
const char CameraParameters::KEY_JPEG_THUMBNAIL_WIDTH[] = "jpeg-thumbnail-width";
const char CameraParameters::KEY_JPEG_THUMBNAIL_HEIGHT[] = "jpeg-thumbnail-height";
const char CameraParameters::KEY_JPEG_THUMBNAIL_HEIGHT[] = "jpeg-thumbnail-height";
@@ -457,6 +458,9 @@ const char CameraParameters::SELECTABLE_ZONE_AF_FRAME_AVERAGE[] = "frame-average
const char CameraParameters::FACE_DETECTION_OFF[] = "off";
const char CameraParameters::FACE_DETECTION_OFF[] = "off";
const char CameraParameters::FACE_DETECTION_ON[] = "on";
const char CameraParameters::FACE_DETECTION_ON[] = "on";


const char CameraParameters::FILE_FORMAT_MPO[] = "mpo";
const char CameraParameters::FILE_FORMAT_JPS[] = "jps";

// Values for MCE settings.
// Values for MCE settings.
const char CameraParameters::MCE_ENABLE[] = "enable";
const char CameraParameters::MCE_ENABLE[] = "enable";
const char CameraParameters::MCE_DISABLE[] = "disable";
const char CameraParameters::MCE_DISABLE[] = "disable";
@@ -875,6 +879,11 @@ void CameraParameters::getSupportedPictureSizes(Vector<Size> &sizes) const
    parseSizesList(pictureSizesStr, sizes);
    parseSizesList(pictureSizesStr, sizes);
}
}


void CameraParameters::set3DFileFormat(const char *format)
{
    set(KEY_SUPPORTED_3D_FILE_FORMAT, format);
}

void CameraParameters::setPictureFormat(const char *format)
void CameraParameters::setPictureFormat(const char *format)
{
{
    set(KEY_PICTURE_FORMAT, format);
    set(KEY_PICTURE_FORMAT, format);
+7 −0
Original line number Original line Diff line number Diff line
@@ -117,6 +117,7 @@ public:
    void setPictureSize(int width, int height);
    void setPictureSize(int width, int height);
    void getPictureSize(int *width, int *height) const;
    void getPictureSize(int *width, int *height) const;
    void getSupportedPictureSizes(Vector<Size> &sizes) const;
    void getSupportedPictureSizes(Vector<Size> &sizes) const;
    void set3DFileFormat(const char* buffer);
    void setPictureFormat(const char *format);
    void setPictureFormat(const char *format);
    const char *getPictureFormat() const;
    const char *getPictureFormat() const;
#ifdef QCOM_HARDWARE
#ifdef QCOM_HARDWARE
@@ -203,6 +204,8 @@ public:
    // Supported dimensions for captured pictures in pixels.
    // Supported dimensions for captured pictures in pixels.
    // Example value: "2048x1536,1024x768". Read only.
    // Example value: "2048x1536,1024x768". Read only.
    static const char KEY_SUPPORTED_PICTURE_SIZES[];
    static const char KEY_SUPPORTED_PICTURE_SIZES[];
    //HTC 3D color format
    static const char KEY_SUPPORTED_3D_FILE_FORMAT[];
    // The image format for captured pictures. See CAMERA_MSG_COMPRESSED_IMAGE
    // The image format for captured pictures. See CAMERA_MSG_COMPRESSED_IMAGE
    // in frameworks/base/include/camera/Camera.h.
    // in frameworks/base/include/camera/Camera.h.
    // Example value: "jpeg" or PIXEL_FORMAT_XXX constants. Read/write.
    // Example value: "jpeg" or PIXEL_FORMAT_XXX constants. Read/write.
@@ -1003,6 +1006,10 @@ public:
    static const char FACE_DETECTION_OFF[];
    static const char FACE_DETECTION_OFF[];
    static const char FACE_DETECTION_ON[];
    static const char FACE_DETECTION_ON[];


    // Values for HTC 3D image settings.
    static const char FILE_FORMAT_MPO[];
    static const char FILE_FORMAT_JPS[];

    // Values for MCE settings.
    // Values for MCE settings.
    static const char MCE_ENABLE[];
    static const char MCE_ENABLE[];
    static const char MCE_DISABLE[];
    static const char MCE_DISABLE[];
+4 −0
Original line number Original line Diff line number Diff line
@@ -3,6 +3,10 @@ include $(CLEAR_VARS)


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


ifeq ($(BOARD_HTC_3D_SUPPORT),true)
   LOCAL_CFLAGS += -DHTC_3D_SUPPORT
endif

LOCAL_SRC_FILES:=                         \
LOCAL_SRC_FILES:=                         \
        ACodec.cpp                        \
        ACodec.cpp                        \
        AACExtractor.cpp                  \
        AACExtractor.cpp                  \
+4 −0
Original line number Original line Diff line number Diff line
@@ -349,11 +349,13 @@ status_t CameraSource::configureCamera(
        ALOGV("Supported frame rates: %s", supportedFrameRates);
        ALOGV("Supported frame rates: %s", supportedFrameRates);
        char buf[4];
        char buf[4];
        snprintf(buf, 4, "%d", frameRate);
        snprintf(buf, 4, "%d", frameRate);
#ifndef HTC_3D_SUPPORT  // HTC uses invalid frame rates intentionally on the 3D camera
        if (strstr(supportedFrameRates, buf) == NULL) {
        if (strstr(supportedFrameRates, buf) == NULL) {
            ALOGE("Requested frame rate (%d) is not supported: %s",
            ALOGE("Requested frame rate (%d) is not supported: %s",
                frameRate, supportedFrameRates);
                frameRate, supportedFrameRates);
            return BAD_VALUE;
            return BAD_VALUE;
        }
        }
#endif


        // The frame rate is supported, set the camera to the requested value.
        // The frame rate is supported, set the camera to the requested value.
        params->setPreviewFrameRate(frameRate);
        params->setPreviewFrameRate(frameRate);
@@ -451,11 +453,13 @@ status_t CameraSource::checkFrameRate(


    // Check the actual video frame rate against the target/requested
    // Check the actual video frame rate against the target/requested
    // video frame rate.
    // video frame rate.
#ifndef HTC_3D_SUPPORT  // HTC uses invalid frame rates intentionally on the 3D camera
    if (frameRate != -1 && (frameRateActual - frameRate) != 0) {
    if (frameRate != -1 && (frameRateActual - frameRate) != 0) {
        ALOGE("Failed to set preview frame rate to %d fps. The actual "
        ALOGE("Failed to set preview frame rate to %d fps. The actual "
                "frame rate is %d", frameRate, frameRateActual);
                "frame rate is %d", frameRate, frameRateActual);
        return UNKNOWN_ERROR;
        return UNKNOWN_ERROR;
    }
    }
#endif


    // Good now.
    // Good now.
    mVideoFrameRate = frameRateActual;
    mVideoFrameRate = frameRateActual;
+17 −0
Original line number Original line Diff line number Diff line
@@ -273,6 +273,23 @@ void OMXCodec::findMatchingCodecs(
uint32_t OMXCodec::getComponentQuirks(
uint32_t OMXCodec::getComponentQuirks(
        const MediaCodecList *list, size_t index) {
        const MediaCodecList *list, size_t index) {
    uint32_t quirks = 0;
    uint32_t quirks = 0;

    if (list->codecHasQuirk(
                index, "needs-flush-before-disable")) {
        quirks |= kNeedsFlushBeforeDisable;
    }
    if (list->codecHasQuirk(
                index, "requires-flush-complete-emulation")) {
        quirks |= kRequiresFlushCompleteEmulation;
    }
    if (list->codecHasQuirk(
                index, "supports-multiple-frames-per-input-buffer")) {
        quirks |= kSupportsMultipleFramesPerInputBuffer;
    }
    if (list->codecHasQuirk(
                index, "requires-larger-encoder-output-buffer")) {
        quirks |= kRequiresLargerEncoderOutputBuffer;
    }
    if (list->codecHasQuirk(
    if (list->codecHasQuirk(
                index, "requires-allocate-on-input-ports")) {
                index, "requires-allocate-on-input-ports")) {
        quirks |= kRequiresAllocateBufferOnInputPorts;
        quirks |= kRequiresAllocateBufferOnInputPorts;
Loading