Loading include/media/MediaCodecInfo.h +2 −2 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ namespace android { struct AMessage; class Parcel; struct CodecCapabilities; typedef KeyedVector<AString, AString> CodecSettings; Loading Loading @@ -127,7 +126,8 @@ private: void addQuirk(const char *name); status_t addMime(const char *mime); status_t updateMime(const char *mime); status_t initializeCapabilities(const CodecCapabilities &caps); status_t initializeCapabilities(const sp<Capabilities> &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); Loading media/libmedia/MediaCodecInfo.cpp +8 −21 Original line number Diff line number Diff line Loading @@ -26,8 +26,6 @@ #include <media/stagefright/foundation/AMessage.h> #include <binder/Parcel.h> #include <media/stagefright/OMXCodec.h> namespace android { void MediaCodecInfo::Capabilities::getSupportedProfileLevels( Loading Loading @@ -240,26 +238,15 @@ void MediaCodecInfo::removeMime(const char *mime) { } } status_t MediaCodecInfo::initializeCapabilities(const CodecCapabilities &caps) { mCurrentCaps->mProfileLevels.clear(); status_t MediaCodecInfo::initializeCapabilities(const sp<Capabilities> &caps) { // TRICKY: copy data to mCurrentCaps as it is a reference to // an element of the capabilites map. mCurrentCaps->mColorFormats.clear(); for (size_t i = 0; i < caps.mProfileLevels.size(); ++i) { const CodecProfileLevel &src = caps.mProfileLevels.itemAt(i); ProfileLevel profileLevel; profileLevel.mProfile = src.mProfile; profileLevel.mLevel = src.mLevel; mCurrentCaps->mProfileLevels.push_back(profileLevel); } for (size_t i = 0; i < caps.mColorFormats.size(); ++i) { mCurrentCaps->mColorFormats.push_back(caps.mColorFormats.itemAt(i)); } mCurrentCaps->mFlags = caps.mFlags; mCurrentCaps->mDetails = new AMessage; mCurrentCaps->mColorFormats.appendVector(caps->mColorFormats); mCurrentCaps->mProfileLevels.clear(); mCurrentCaps->mProfileLevels.appendVector(caps->mProfileLevels); mCurrentCaps->mFlags = caps->mFlags; mCurrentCaps->mDetails = caps->mDetails; return OK; } Loading media/libstagefright/MediaCodecList.cpp +9 −5 Original line number Diff line number Diff line Loading @@ -31,10 +31,10 @@ #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> #include <media/stagefright/ACodec.h> #include <media/stagefright/MediaCodec.h> #include <media/stagefright/MediaCodecList.h> #include <media/stagefright/MediaErrors.h> #include <media/stagefright/OMXClient.h> #include <media/stagefright/OMXCodec.h> #include <sys/stat.h> #include <utils/threads.h> Loading Loading @@ -752,15 +752,19 @@ status_t MediaCodecList::initializeCapabilities(const char *type) { ALOGV("initializeCapabilities %s:%s", mCurrentInfo->mName.c_str(), type); CodecCapabilities caps; status_t err = QueryCodec( mOMX, mCurrentInfo->mName.c_str(), sp<MediaCodecInfo::Capabilities> caps; status_t err = MediaCodec::QueryCapabilities( mCurrentInfo->mName, type, mCurrentInfo->mIsEncoder, &caps); if (err != OK) { return err; } else if (caps == NULL) { ALOGE("MediaCodec::QueryCapabilities returned OK but no capabilities for '%s':'%s':'%s'", mCurrentInfo->mName.c_str(), type, mCurrentInfo->mIsEncoder ? "encoder" : "decoder"); return UNKNOWN_ERROR; } return mCurrentInfo->initializeCapabilities(caps); Loading Loading
include/media/MediaCodecInfo.h +2 −2 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ namespace android { struct AMessage; class Parcel; struct CodecCapabilities; typedef KeyedVector<AString, AString> CodecSettings; Loading Loading @@ -127,7 +126,8 @@ private: void addQuirk(const char *name); status_t addMime(const char *mime); status_t updateMime(const char *mime); status_t initializeCapabilities(const CodecCapabilities &caps); status_t initializeCapabilities(const sp<Capabilities> &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); Loading
media/libmedia/MediaCodecInfo.cpp +8 −21 Original line number Diff line number Diff line Loading @@ -26,8 +26,6 @@ #include <media/stagefright/foundation/AMessage.h> #include <binder/Parcel.h> #include <media/stagefright/OMXCodec.h> namespace android { void MediaCodecInfo::Capabilities::getSupportedProfileLevels( Loading Loading @@ -240,26 +238,15 @@ void MediaCodecInfo::removeMime(const char *mime) { } } status_t MediaCodecInfo::initializeCapabilities(const CodecCapabilities &caps) { mCurrentCaps->mProfileLevels.clear(); status_t MediaCodecInfo::initializeCapabilities(const sp<Capabilities> &caps) { // TRICKY: copy data to mCurrentCaps as it is a reference to // an element of the capabilites map. mCurrentCaps->mColorFormats.clear(); for (size_t i = 0; i < caps.mProfileLevels.size(); ++i) { const CodecProfileLevel &src = caps.mProfileLevels.itemAt(i); ProfileLevel profileLevel; profileLevel.mProfile = src.mProfile; profileLevel.mLevel = src.mLevel; mCurrentCaps->mProfileLevels.push_back(profileLevel); } for (size_t i = 0; i < caps.mColorFormats.size(); ++i) { mCurrentCaps->mColorFormats.push_back(caps.mColorFormats.itemAt(i)); } mCurrentCaps->mFlags = caps.mFlags; mCurrentCaps->mDetails = new AMessage; mCurrentCaps->mColorFormats.appendVector(caps->mColorFormats); mCurrentCaps->mProfileLevels.clear(); mCurrentCaps->mProfileLevels.appendVector(caps->mProfileLevels); mCurrentCaps->mFlags = caps->mFlags; mCurrentCaps->mDetails = caps->mDetails; return OK; } Loading
media/libstagefright/MediaCodecList.cpp +9 −5 Original line number Diff line number Diff line Loading @@ -31,10 +31,10 @@ #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> #include <media/stagefright/ACodec.h> #include <media/stagefright/MediaCodec.h> #include <media/stagefright/MediaCodecList.h> #include <media/stagefright/MediaErrors.h> #include <media/stagefright/OMXClient.h> #include <media/stagefright/OMXCodec.h> #include <sys/stat.h> #include <utils/threads.h> Loading Loading @@ -752,15 +752,19 @@ status_t MediaCodecList::initializeCapabilities(const char *type) { ALOGV("initializeCapabilities %s:%s", mCurrentInfo->mName.c_str(), type); CodecCapabilities caps; status_t err = QueryCodec( mOMX, mCurrentInfo->mName.c_str(), sp<MediaCodecInfo::Capabilities> caps; status_t err = MediaCodec::QueryCapabilities( mCurrentInfo->mName, type, mCurrentInfo->mIsEncoder, &caps); if (err != OK) { return err; } else if (caps == NULL) { ALOGE("MediaCodec::QueryCapabilities returned OK but no capabilities for '%s':'%s':'%s'", mCurrentInfo->mName.c_str(), type, mCurrentInfo->mIsEncoder ? "encoder" : "decoder"); return UNKNOWN_ERROR; } return mCurrentInfo->initializeCapabilities(caps); Loading