Loading media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -396,6 +396,10 @@ void VideoTrackTranscoder::enqueueInputSample(int32_t bufferIndex) { mStatus = status; return; } if (mSampleInfo.size) { ++mInputFrameCount; } } else { LOG(DEBUG) << "EOS from source."; mEosFromSource = true; Loading Loading @@ -445,6 +449,9 @@ void VideoTrackTranscoder::dequeueOutputSample(int32_t bufferIndex, sample->info.flags = bufferInfo.flags; sample->info.presentationTimeUs = bufferInfo.presentationTimeUs; if (bufferInfo.size > 0 && (bufferInfo.flags & SAMPLE_FLAG_CODEC_CONFIG) == 0) { ++mOutputFrameCount; } onOutputSampleAvailable(sample); mLastSampleWasSync = sample->info.flags & SAMPLE_FLAG_SYNC_SAMPLE; Loading @@ -456,6 +463,15 @@ void VideoTrackTranscoder::dequeueOutputSample(int32_t bufferIndex, if (bufferInfo.flags & AMEDIACODEC_BUFFER_FLAG_END_OF_STREAM) { LOG(DEBUG) << "EOS from encoder."; mEosFromEncoder = true; if (mInputFrameCount != mOutputFrameCount) { LOG(WARNING) << "Input / Output frame count mismatch: " << mInputFrameCount << " vs " << mOutputFrameCount; if (mInputFrameCount > 0 && mOutputFrameCount == 0) { LOG(ERROR) << "Encoder did not produce any output frames."; mStatus = AMEDIA_ERROR_UNKNOWN; } } } } Loading media/libmediatranscoding/transcoder/benchmark/MediaTranscoderBenchmark.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include <binder/ProcessState.h> #include <fcntl.h> #include <media/MediaTranscoder.h> #include <iostream> using namespace android; Loading media/libmediatranscoding/transcoder/include/media/VideoTrackTranscoder.h +2 −0 Original line number Diff line number Diff line Loading @@ -99,6 +99,8 @@ private: std::shared_ptr<AMediaFormat> mActualOutputFormat; pid_t mPid; uid_t mUid; uint64_t mInputFrameCount = 0; uint64_t mOutputFrameCount = 0; }; } // namespace android Loading Loading
media/libmediatranscoding/transcoder/VideoTrackTranscoder.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -396,6 +396,10 @@ void VideoTrackTranscoder::enqueueInputSample(int32_t bufferIndex) { mStatus = status; return; } if (mSampleInfo.size) { ++mInputFrameCount; } } else { LOG(DEBUG) << "EOS from source."; mEosFromSource = true; Loading Loading @@ -445,6 +449,9 @@ void VideoTrackTranscoder::dequeueOutputSample(int32_t bufferIndex, sample->info.flags = bufferInfo.flags; sample->info.presentationTimeUs = bufferInfo.presentationTimeUs; if (bufferInfo.size > 0 && (bufferInfo.flags & SAMPLE_FLAG_CODEC_CONFIG) == 0) { ++mOutputFrameCount; } onOutputSampleAvailable(sample); mLastSampleWasSync = sample->info.flags & SAMPLE_FLAG_SYNC_SAMPLE; Loading @@ -456,6 +463,15 @@ void VideoTrackTranscoder::dequeueOutputSample(int32_t bufferIndex, if (bufferInfo.flags & AMEDIACODEC_BUFFER_FLAG_END_OF_STREAM) { LOG(DEBUG) << "EOS from encoder."; mEosFromEncoder = true; if (mInputFrameCount != mOutputFrameCount) { LOG(WARNING) << "Input / Output frame count mismatch: " << mInputFrameCount << " vs " << mOutputFrameCount; if (mInputFrameCount > 0 && mOutputFrameCount == 0) { LOG(ERROR) << "Encoder did not produce any output frames."; mStatus = AMEDIA_ERROR_UNKNOWN; } } } } Loading
media/libmediatranscoding/transcoder/benchmark/MediaTranscoderBenchmark.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include <binder/ProcessState.h> #include <fcntl.h> #include <media/MediaTranscoder.h> #include <iostream> using namespace android; Loading
media/libmediatranscoding/transcoder/include/media/VideoTrackTranscoder.h +2 −0 Original line number Diff line number Diff line Loading @@ -99,6 +99,8 @@ private: std::shared_ptr<AMediaFormat> mActualOutputFormat; pid_t mPid; uid_t mUid; uint64_t mInputFrameCount = 0; uint64_t mOutputFrameCount = 0; }; } // namespace android Loading