Loading media/libstagefright/MediaCodec.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -2256,7 +2256,10 @@ static const char enableMediaFormatShapingProperty[] = "debug.stagefright.enable static void mapFormat(AString componentName, const sp<AMessage> &format, const char *kind, bool reverse); mediametrics_handle_t MediaCodec::createMediaMetrics(const sp<AMessage>& format, uint32_t flags) { mediametrics_handle_t MediaCodec::createMediaMetrics(const sp<AMessage>& format, uint32_t flags, status_t* err) { *err = OK; mediametrics_handle_t nextMetricsHandle = mediametrics_create(kCodecKeyName); bool isEncoder = (flags & CONFIGURE_FLAG_ENCODE); Loading Loading @@ -2336,7 +2339,9 @@ mediametrics_handle_t MediaCodec::createMediaMetrics(const sp<AMessage>& format, mErrorLog.log(LOG_TAG, base::StringPrintf( "Invalid size(s), width=%d, height=%d", mWidth, mHeight)); mediametrics_delete(nextMetricsHandle); return BAD_VALUE; // Set the error code and return null handle. *err = BAD_VALUE; return 0; } } else { Loading Loading @@ -2419,7 +2424,11 @@ status_t MediaCodec::configure( updateCodecImportance(format); // Create and set up metrics for this codec. mediametrics_handle_t nextMetricsHandle = createMediaMetrics(format, flags); status_t err = OK; mediametrics_handle_t nextMetricsHandle = createMediaMetrics(format, flags, &err); if (err != OK) { return err; } sp<AMessage> msg = new AMessage(kWhatConfigure, this); msg->setMessage("format", format); Loading Loading @@ -2454,7 +2463,6 @@ status_t MediaCodec::configure( sp<AMessage> callback = mCallback; status_t err; std::vector<MediaResourceParcel> resources; resources.push_back(MediaResource::CodecResource(mFlags & kFlagIsSecure, toMediaResourceSubType(mIsHardware, mDomain))); Loading media/libstagefright/include/media/stagefright/MediaCodec.h +4 −1 Original line number Diff line number Diff line Loading @@ -331,7 +331,10 @@ private: friend struct ResourceManagerClient; // to create the metrics associated with this codec. mediametrics_handle_t createMediaMetrics(const sp<AMessage>& format, uint32_t flags); // Any error in this function will be captured by the output argument err. mediametrics_handle_t createMediaMetrics(const sp<AMessage>& format, uint32_t flags, status_t* err); private: enum State { Loading Loading
media/libstagefright/MediaCodec.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -2256,7 +2256,10 @@ static const char enableMediaFormatShapingProperty[] = "debug.stagefright.enable static void mapFormat(AString componentName, const sp<AMessage> &format, const char *kind, bool reverse); mediametrics_handle_t MediaCodec::createMediaMetrics(const sp<AMessage>& format, uint32_t flags) { mediametrics_handle_t MediaCodec::createMediaMetrics(const sp<AMessage>& format, uint32_t flags, status_t* err) { *err = OK; mediametrics_handle_t nextMetricsHandle = mediametrics_create(kCodecKeyName); bool isEncoder = (flags & CONFIGURE_FLAG_ENCODE); Loading Loading @@ -2336,7 +2339,9 @@ mediametrics_handle_t MediaCodec::createMediaMetrics(const sp<AMessage>& format, mErrorLog.log(LOG_TAG, base::StringPrintf( "Invalid size(s), width=%d, height=%d", mWidth, mHeight)); mediametrics_delete(nextMetricsHandle); return BAD_VALUE; // Set the error code and return null handle. *err = BAD_VALUE; return 0; } } else { Loading Loading @@ -2419,7 +2424,11 @@ status_t MediaCodec::configure( updateCodecImportance(format); // Create and set up metrics for this codec. mediametrics_handle_t nextMetricsHandle = createMediaMetrics(format, flags); status_t err = OK; mediametrics_handle_t nextMetricsHandle = createMediaMetrics(format, flags, &err); if (err != OK) { return err; } sp<AMessage> msg = new AMessage(kWhatConfigure, this); msg->setMessage("format", format); Loading Loading @@ -2454,7 +2463,6 @@ status_t MediaCodec::configure( sp<AMessage> callback = mCallback; status_t err; std::vector<MediaResourceParcel> resources; resources.push_back(MediaResource::CodecResource(mFlags & kFlagIsSecure, toMediaResourceSubType(mIsHardware, mDomain))); Loading
media/libstagefright/include/media/stagefright/MediaCodec.h +4 −1 Original line number Diff line number Diff line Loading @@ -331,7 +331,10 @@ private: friend struct ResourceManagerClient; // to create the metrics associated with this codec. mediametrics_handle_t createMediaMetrics(const sp<AMessage>& format, uint32_t flags); // Any error in this function will be captured by the output argument err. mediametrics_handle_t createMediaMetrics(const sp<AMessage>& format, uint32_t flags, status_t* err); private: enum State { Loading