Loading include/media/MediaCodecInfo.h +1 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ private: status_t initializeCapabilities(const CodecCapabilities &caps); void addDetail(const AString &key, const AString &value); void addFeature(const AString &key, int32_t value); void addFeature(const AString &key, const char *value); void removeMime(const char *mime); void complete(); Loading media/libmedia/MediaCodecInfo.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -257,4 +257,10 @@ void MediaCodecInfo::addFeature(const AString &key, int32_t value) { mCurrentCaps->mDetails->setInt32(tag.c_str(), value); } void MediaCodecInfo::addFeature(const AString &key, const char *value) { AString tag = "feature-"; tag.append(key); mCurrentCaps->mDetails->setString(tag.c_str(), value); } } // namespace android media/libstagefright/MediaCodecList.cpp +14 −1 Original line number Diff line number Diff line Loading @@ -783,6 +783,7 @@ status_t MediaCodecList::addFeature(const char **attrs) { const char *name = NULL; int32_t optional = -1; int32_t required = -1; const char *value = NULL; while (attrs[i] != NULL) { if (attrs[i + 1] == NULL) { Loading @@ -801,6 +802,9 @@ status_t MediaCodecList::addFeature(const char **attrs) { required = value; } ++i; } else if (!strcmp(attrs[i], "value")) { value = attrs[i + 1]; ++i; } else { return -EINVAL; } Loading @@ -816,7 +820,16 @@ status_t MediaCodecList::addFeature(const char **attrs) { return -EINVAL; } if ((optional != -1 || required != -1) && (value != NULL)) { ALOGE("feature '%s' has both a value and optional/required attribute", name); return -EINVAL; } if (value != NULL) { mCurrentInfo->addFeature(name, value); } else { mCurrentInfo->addFeature(name, (required == 1) || (optional == 0)); } return OK; } Loading Loading
include/media/MediaCodecInfo.h +1 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ private: status_t initializeCapabilities(const CodecCapabilities &caps); void addDetail(const AString &key, const AString &value); void addFeature(const AString &key, int32_t value); void addFeature(const AString &key, const char *value); void removeMime(const char *mime); void complete(); Loading
media/libmedia/MediaCodecInfo.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -257,4 +257,10 @@ void MediaCodecInfo::addFeature(const AString &key, int32_t value) { mCurrentCaps->mDetails->setInt32(tag.c_str(), value); } void MediaCodecInfo::addFeature(const AString &key, const char *value) { AString tag = "feature-"; tag.append(key); mCurrentCaps->mDetails->setString(tag.c_str(), value); } } // namespace android
media/libstagefright/MediaCodecList.cpp +14 −1 Original line number Diff line number Diff line Loading @@ -783,6 +783,7 @@ status_t MediaCodecList::addFeature(const char **attrs) { const char *name = NULL; int32_t optional = -1; int32_t required = -1; const char *value = NULL; while (attrs[i] != NULL) { if (attrs[i + 1] == NULL) { Loading @@ -801,6 +802,9 @@ status_t MediaCodecList::addFeature(const char **attrs) { required = value; } ++i; } else if (!strcmp(attrs[i], "value")) { value = attrs[i + 1]; ++i; } else { return -EINVAL; } Loading @@ -816,7 +820,16 @@ status_t MediaCodecList::addFeature(const char **attrs) { return -EINVAL; } if ((optional != -1 || required != -1) && (value != NULL)) { ALOGE("feature '%s' has both a value and optional/required attribute", name); return -EINVAL; } if (value != NULL) { mCurrentInfo->addFeature(name, value); } else { mCurrentInfo->addFeature(name, (required == 1) || (optional == 0)); } return OK; } Loading