Loading include/media/MediaProfiles.h +9 −0 Original line number Original line Diff line number Diff line Loading @@ -150,6 +150,12 @@ public: */ */ Vector<int> getImageEncodingQualityLevels(int cameraId) const; Vector<int> getImageEncodingQualityLevels(int cameraId) const; /** * Returns the start time offset (in ms) for the given camera Id. * If the given camera Id does not exist, -1 will be returned. */ int getStartTimeOffsetMs(int cameraId) const; private: private: enum { enum { // Camcorder profiles (high/low) and timelapse profiles (high/low) // Camcorder profiles (high/low) and timelapse profiles (high/low) Loading Loading @@ -332,6 +338,8 @@ private: static int getCameraId(const char **atts); static int getCameraId(const char **atts); void addStartTimeOffset(int cameraId, const char **atts); ImageEncodingQualityLevels* findImageEncodingQualityLevels(int cameraId) const; ImageEncodingQualityLevels* findImageEncodingQualityLevels(int cameraId) const; void addImageEncodingQualityLevel(int cameraId, const char** atts); void addImageEncodingQualityLevel(int cameraId, const char** atts); Loading Loading @@ -408,6 +416,7 @@ private: Vector<VideoDecoderCap*> mVideoDecoders; Vector<VideoDecoderCap*> mVideoDecoders; Vector<output_format> mEncoderOutputFileFormats; Vector<output_format> mEncoderOutputFileFormats; Vector<ImageEncodingQualityLevels *> mImageEncodingQualityLevels; Vector<ImageEncodingQualityLevels *> mImageEncodingQualityLevels; KeyedVector<int, int> mStartTimeOffsets; typedef struct { typedef struct { bool mHasRefProfile; // Refers to an existing profile bool mHasRefProfile; // Refers to an existing profile Loading media/libmedia/MediaProfiles.cpp +23 −0 Original line number Original line Diff line number Diff line Loading @@ -356,6 +356,18 @@ MediaProfiles::getCameraId(const char** atts) return atoi(atts[1]); return atoi(atts[1]); } } void MediaProfiles::addStartTimeOffset(int cameraId, const char** atts) { int offsetTimeMs = 700; if (atts[2]) { CHECK(!strcmp("startOffsetMs", atts[2])); offsetTimeMs = atoi(atts[3]); } LOGV("%s: cameraId=%d, offset=%d ms", __func__, cameraId, offsetTimeMs); mStartTimeOffsets.replaceValueFor(cameraId, offsetTimeMs); } /*static*/ void /*static*/ void MediaProfiles::startElementHandler(void *userData, const char *name, const char **atts) MediaProfiles::startElementHandler(void *userData, const char *name, const char **atts) { { Loading @@ -380,6 +392,7 @@ MediaProfiles::startElementHandler(void *userData, const char *name, const char profiles->mEncoderOutputFileFormats.add(createEncoderOutputFileFormat(atts)); profiles->mEncoderOutputFileFormats.add(createEncoderOutputFileFormat(atts)); } else if (strcmp("CamcorderProfiles", name) == 0) { } else if (strcmp("CamcorderProfiles", name) == 0) { profiles->mCurrentCameraId = getCameraId(atts); profiles->mCurrentCameraId = getCameraId(atts); profiles->addStartTimeOffset(profiles->mCurrentCameraId, atts); } else if (strcmp("EncoderProfile", name) == 0) { } else if (strcmp("EncoderProfile", name) == 0) { profiles->mCamcorderProfiles.add( profiles->mCamcorderProfiles.add( createCamcorderProfile(profiles->mCurrentCameraId, atts, profiles->mCameraIds)); createCamcorderProfile(profiles->mCurrentCameraId, atts, profiles->mCameraIds)); Loading Loading @@ -997,6 +1010,16 @@ Vector<int> MediaProfiles::getImageEncodingQualityLevels(int cameraId) const return result; return result; } } int MediaProfiles::getStartTimeOffsetMs(int cameraId) const { int offsetTimeMs = -1; ssize_t index = mStartTimeOffsets.indexOfKey(cameraId); if (index >= 0) { offsetTimeMs = mStartTimeOffsets.valueFor(cameraId); } LOGV("%s: offsetTime=%d ms and cameraId=%d", offsetTimeMs, cameraId); return offsetTimeMs; } MediaProfiles::~MediaProfiles() MediaProfiles::~MediaProfiles() { { CHECK("destructor should never be called" == 0); CHECK("destructor should never be called" == 0); Loading Loading
include/media/MediaProfiles.h +9 −0 Original line number Original line Diff line number Diff line Loading @@ -150,6 +150,12 @@ public: */ */ Vector<int> getImageEncodingQualityLevels(int cameraId) const; Vector<int> getImageEncodingQualityLevels(int cameraId) const; /** * Returns the start time offset (in ms) for the given camera Id. * If the given camera Id does not exist, -1 will be returned. */ int getStartTimeOffsetMs(int cameraId) const; private: private: enum { enum { // Camcorder profiles (high/low) and timelapse profiles (high/low) // Camcorder profiles (high/low) and timelapse profiles (high/low) Loading Loading @@ -332,6 +338,8 @@ private: static int getCameraId(const char **atts); static int getCameraId(const char **atts); void addStartTimeOffset(int cameraId, const char **atts); ImageEncodingQualityLevels* findImageEncodingQualityLevels(int cameraId) const; ImageEncodingQualityLevels* findImageEncodingQualityLevels(int cameraId) const; void addImageEncodingQualityLevel(int cameraId, const char** atts); void addImageEncodingQualityLevel(int cameraId, const char** atts); Loading Loading @@ -408,6 +416,7 @@ private: Vector<VideoDecoderCap*> mVideoDecoders; Vector<VideoDecoderCap*> mVideoDecoders; Vector<output_format> mEncoderOutputFileFormats; Vector<output_format> mEncoderOutputFileFormats; Vector<ImageEncodingQualityLevels *> mImageEncodingQualityLevels; Vector<ImageEncodingQualityLevels *> mImageEncodingQualityLevels; KeyedVector<int, int> mStartTimeOffsets; typedef struct { typedef struct { bool mHasRefProfile; // Refers to an existing profile bool mHasRefProfile; // Refers to an existing profile Loading
media/libmedia/MediaProfiles.cpp +23 −0 Original line number Original line Diff line number Diff line Loading @@ -356,6 +356,18 @@ MediaProfiles::getCameraId(const char** atts) return atoi(atts[1]); return atoi(atts[1]); } } void MediaProfiles::addStartTimeOffset(int cameraId, const char** atts) { int offsetTimeMs = 700; if (atts[2]) { CHECK(!strcmp("startOffsetMs", atts[2])); offsetTimeMs = atoi(atts[3]); } LOGV("%s: cameraId=%d, offset=%d ms", __func__, cameraId, offsetTimeMs); mStartTimeOffsets.replaceValueFor(cameraId, offsetTimeMs); } /*static*/ void /*static*/ void MediaProfiles::startElementHandler(void *userData, const char *name, const char **atts) MediaProfiles::startElementHandler(void *userData, const char *name, const char **atts) { { Loading @@ -380,6 +392,7 @@ MediaProfiles::startElementHandler(void *userData, const char *name, const char profiles->mEncoderOutputFileFormats.add(createEncoderOutputFileFormat(atts)); profiles->mEncoderOutputFileFormats.add(createEncoderOutputFileFormat(atts)); } else if (strcmp("CamcorderProfiles", name) == 0) { } else if (strcmp("CamcorderProfiles", name) == 0) { profiles->mCurrentCameraId = getCameraId(atts); profiles->mCurrentCameraId = getCameraId(atts); profiles->addStartTimeOffset(profiles->mCurrentCameraId, atts); } else if (strcmp("EncoderProfile", name) == 0) { } else if (strcmp("EncoderProfile", name) == 0) { profiles->mCamcorderProfiles.add( profiles->mCamcorderProfiles.add( createCamcorderProfile(profiles->mCurrentCameraId, atts, profiles->mCameraIds)); createCamcorderProfile(profiles->mCurrentCameraId, atts, profiles->mCameraIds)); Loading Loading @@ -997,6 +1010,16 @@ Vector<int> MediaProfiles::getImageEncodingQualityLevels(int cameraId) const return result; return result; } } int MediaProfiles::getStartTimeOffsetMs(int cameraId) const { int offsetTimeMs = -1; ssize_t index = mStartTimeOffsets.indexOfKey(cameraId); if (index >= 0) { offsetTimeMs = mStartTimeOffsets.valueFor(cameraId); } LOGV("%s: offsetTime=%d ms and cameraId=%d", offsetTimeMs, cameraId); return offsetTimeMs; } MediaProfiles::~MediaProfiles() MediaProfiles::~MediaProfiles() { { CHECK("destructor should never be called" == 0); CHECK("destructor should never be called" == 0); Loading