Loading cmds/screenrecord/screenrecord.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ #include <media/stagefright/MediaErrors.h> #include <media/stagefright/MediaMuxer.h> #include <media/ICrypto.h> #include <media/MediaCodecBuffer.h> #include "screenrecord.h" #include "Overlay.h" Loading Loading @@ -328,7 +329,7 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, assert((rawFp == NULL && muxer != NULL) || (rawFp != NULL && muxer == NULL)); Vector<sp<ABuffer> > buffers; Vector<sp<MediaCodecBuffer> > buffers; err = encoder->getOutputBuffers(&buffers); if (err != NO_ERROR) { fprintf(stderr, "Unable to get output buffers (err=%d)\n", err); Loading Loading @@ -411,7 +412,10 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, // want to queue these up and do them on a different thread. ATRACE_NAME("write sample"); assert(trackIdx != -1); err = muxer->writeSampleData(buffers[bufIndex], trackIdx, // TODO sp<ABuffer> buffer = new ABuffer( buffers[bufIndex]->data(), buffers[bufIndex]->size()); err = muxer->writeSampleData(buffer, trackIdx, ptsUsec, flags); if (err != NO_ERROR) { fprintf(stderr, Loading cmds/stagefright/SimplePlayer.cpp +8 −5 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <media/AudioTrack.h> #include <media/ICrypto.h> #include <media/IMediaHTTPService.h> #include <media/MediaCodecBuffer.h> #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> Loading Loading @@ -355,7 +356,7 @@ status_t SimplePlayer::onPrepare() { err = state->mCodec->dequeueInputBuffer(&index, -1ll); CHECK_EQ(err, (status_t)OK); const sp<ABuffer> &dstBuffer = state->mBuffers[0].itemAt(index); const sp<MediaCodecBuffer> &dstBuffer = state->mBuffers[0].itemAt(index); CHECK_LE(srcBuffer->size(), dstBuffer->capacity()); dstBuffer->setRange(0, srcBuffer->size()); Loading Loading @@ -482,11 +483,13 @@ status_t SimplePlayer::onDoMoreStuff() { state->mAvailInputBufferIndices.erase( state->mAvailInputBufferIndices.begin()); const sp<ABuffer> &dstBuffer = const sp<MediaCodecBuffer> &dstBuffer = state->mBuffers[0].itemAt(index); sp<ABuffer> abuffer = new ABuffer(dstBuffer->base(), dstBuffer->capacity()); err = mExtractor->readSampleData(dstBuffer); err = mExtractor->readSampleData(abuffer); CHECK_EQ(err, (status_t)OK); dstBuffer->setRange(abuffer->offset(), abuffer->size()); int64_t timeUs; CHECK_EQ(mExtractor->getSampleTime(&timeUs), (status_t)OK); Loading Loading @@ -530,7 +533,7 @@ status_t SimplePlayer::onDoMoreStuff() { state->mCodec->releaseOutputBuffer(info->mIndex); } else { if (state->mAudioTrack != NULL) { const sp<ABuffer> &srcBuffer = const sp<MediaCodecBuffer> &srcBuffer = state->mBuffers[1].itemAt(info->mIndex); renderAudio(state, info, srcBuffer); Loading Loading @@ -597,7 +600,7 @@ status_t SimplePlayer::onOutputFormatChanged( } void SimplePlayer::renderAudio( CodecState *state, BufferInfo *info, const sp<ABuffer> &buffer) { CodecState *state, BufferInfo *info, const sp<MediaCodecBuffer> &buffer) { CHECK(state->mAudioTrack != NULL); if (state->mAudioTrack->stopped()) { Loading cmds/stagefright/SimplePlayer.h +3 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ struct ALooper; struct AudioTrack; class IGraphicBufferProducer; struct MediaCodec; class MediaCodecBuffer; struct NuMediaExtractor; class Surface; Loading Loading @@ -73,7 +74,7 @@ private: { sp<MediaCodec> mCodec; Vector<sp<ABuffer> > mCSD; Vector<sp<ABuffer> > mBuffers[2]; Vector<sp<MediaCodecBuffer> > mBuffers[2]; List<size_t> mAvailInputBufferIndices; List<BufferInfo> mAvailOutputBufferInfos; Loading Loading @@ -101,7 +102,7 @@ private: status_t onOutputFormatChanged(size_t trackIndex, CodecState *state); void renderAudio( CodecState *state, BufferInfo *info, const sp<ABuffer> &buffer); CodecState *state, BufferInfo *info, const sp<MediaCodecBuffer> &buffer); DISALLOW_EVIL_CONSTRUCTORS(SimplePlayer); }; Loading cmds/stagefright/codec.cpp +7 −4 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include <media/ICrypto.h> #include <media/IMediaHTTPService.h> #include <media/IMediaPlayerService.h> #include <media/MediaCodecBuffer.h> #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/ALooper.h> Loading Loading @@ -56,8 +57,8 @@ namespace android { struct CodecState { sp<MediaCodec> mCodec; Vector<sp<ABuffer> > mInBuffers; Vector<sp<ABuffer> > mOutBuffers; Vector<sp<MediaCodecBuffer> > mInBuffers; Vector<sp<MediaCodecBuffer> > mOutBuffers; bool mSignalledInputEOS; bool mSawOutputEOS; int64_t mNumBuffersDecoded; Loading Loading @@ -174,10 +175,12 @@ static int decode( if (err == OK) { ALOGV("filling input buffer %zu", index); const sp<ABuffer> &buffer = state->mInBuffers.itemAt(index); const sp<MediaCodecBuffer> &buffer = state->mInBuffers.itemAt(index); sp<ABuffer> abuffer = new ABuffer(buffer->base(), buffer->capacity()); err = extractor->readSampleData(buffer); err = extractor->readSampleData(abuffer); CHECK_EQ(err, (status_t)OK); buffer->setRange(abuffer->offset(), abuffer->size()); int64_t timeUs; err = extractor->getSampleTime(&timeUs); Loading cmds/stagefright/mediafilter.cpp +9 −6 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include <gui/Surface.h> #include <media/ICrypto.h> #include <media/IMediaHTTPService.h> #include <media/MediaCodecBuffer.h> #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> Loading Loading @@ -131,8 +132,8 @@ private: struct CodecState { sp<MediaCodec> mCodec; Vector<sp<ABuffer> > mInBuffers; Vector<sp<ABuffer> > mOutBuffers; Vector<sp<MediaCodecBuffer> > mInBuffers; Vector<sp<MediaCodecBuffer> > mOutBuffers; bool mSignalledInputEOS; bool mSawOutputEOS; int64_t mNumBuffersDecoded; Loading Loading @@ -183,9 +184,9 @@ void tryCopyDecodedBuffer( } size_t outIndex = frame.index; const sp<ABuffer> &srcBuffer = const sp<MediaCodecBuffer> &srcBuffer = vidState->mOutBuffers.itemAt(outIndex); const sp<ABuffer> &destBuffer = const sp<MediaCodecBuffer> &destBuffer = filterState->mInBuffers.itemAt(filterIndex); sp<AMessage> srcFormat, destFormat; Loading Loading @@ -532,10 +533,12 @@ static int decode( if (err == OK) { ALOGV("filling input buffer %zu", index); const sp<ABuffer> &buffer = state->mInBuffers.itemAt(index); const sp<MediaCodecBuffer> &buffer = state->mInBuffers.itemAt(index); sp<ABuffer> abuffer = new ABuffer(buffer->base(), buffer->capacity()); err = extractor->readSampleData(buffer); err = extractor->readSampleData(abuffer); CHECK(err == OK); buffer->setRange(abuffer->offset(), abuffer->size()); int64_t timeUs; err = extractor->getSampleTime(&timeUs); Loading Loading
cmds/screenrecord/screenrecord.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ #include <media/stagefright/MediaErrors.h> #include <media/stagefright/MediaMuxer.h> #include <media/ICrypto.h> #include <media/MediaCodecBuffer.h> #include "screenrecord.h" #include "Overlay.h" Loading Loading @@ -328,7 +329,7 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, assert((rawFp == NULL && muxer != NULL) || (rawFp != NULL && muxer == NULL)); Vector<sp<ABuffer> > buffers; Vector<sp<MediaCodecBuffer> > buffers; err = encoder->getOutputBuffers(&buffers); if (err != NO_ERROR) { fprintf(stderr, "Unable to get output buffers (err=%d)\n", err); Loading Loading @@ -411,7 +412,10 @@ static status_t runEncoder(const sp<MediaCodec>& encoder, // want to queue these up and do them on a different thread. ATRACE_NAME("write sample"); assert(trackIdx != -1); err = muxer->writeSampleData(buffers[bufIndex], trackIdx, // TODO sp<ABuffer> buffer = new ABuffer( buffers[bufIndex]->data(), buffers[bufIndex]->size()); err = muxer->writeSampleData(buffer, trackIdx, ptsUsec, flags); if (err != NO_ERROR) { fprintf(stderr, Loading
cmds/stagefright/SimplePlayer.cpp +8 −5 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <media/AudioTrack.h> #include <media/ICrypto.h> #include <media/IMediaHTTPService.h> #include <media/MediaCodecBuffer.h> #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> Loading Loading @@ -355,7 +356,7 @@ status_t SimplePlayer::onPrepare() { err = state->mCodec->dequeueInputBuffer(&index, -1ll); CHECK_EQ(err, (status_t)OK); const sp<ABuffer> &dstBuffer = state->mBuffers[0].itemAt(index); const sp<MediaCodecBuffer> &dstBuffer = state->mBuffers[0].itemAt(index); CHECK_LE(srcBuffer->size(), dstBuffer->capacity()); dstBuffer->setRange(0, srcBuffer->size()); Loading Loading @@ -482,11 +483,13 @@ status_t SimplePlayer::onDoMoreStuff() { state->mAvailInputBufferIndices.erase( state->mAvailInputBufferIndices.begin()); const sp<ABuffer> &dstBuffer = const sp<MediaCodecBuffer> &dstBuffer = state->mBuffers[0].itemAt(index); sp<ABuffer> abuffer = new ABuffer(dstBuffer->base(), dstBuffer->capacity()); err = mExtractor->readSampleData(dstBuffer); err = mExtractor->readSampleData(abuffer); CHECK_EQ(err, (status_t)OK); dstBuffer->setRange(abuffer->offset(), abuffer->size()); int64_t timeUs; CHECK_EQ(mExtractor->getSampleTime(&timeUs), (status_t)OK); Loading Loading @@ -530,7 +533,7 @@ status_t SimplePlayer::onDoMoreStuff() { state->mCodec->releaseOutputBuffer(info->mIndex); } else { if (state->mAudioTrack != NULL) { const sp<ABuffer> &srcBuffer = const sp<MediaCodecBuffer> &srcBuffer = state->mBuffers[1].itemAt(info->mIndex); renderAudio(state, info, srcBuffer); Loading Loading @@ -597,7 +600,7 @@ status_t SimplePlayer::onOutputFormatChanged( } void SimplePlayer::renderAudio( CodecState *state, BufferInfo *info, const sp<ABuffer> &buffer) { CodecState *state, BufferInfo *info, const sp<MediaCodecBuffer> &buffer) { CHECK(state->mAudioTrack != NULL); if (state->mAudioTrack->stopped()) { Loading
cmds/stagefright/SimplePlayer.h +3 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ struct ALooper; struct AudioTrack; class IGraphicBufferProducer; struct MediaCodec; class MediaCodecBuffer; struct NuMediaExtractor; class Surface; Loading Loading @@ -73,7 +74,7 @@ private: { sp<MediaCodec> mCodec; Vector<sp<ABuffer> > mCSD; Vector<sp<ABuffer> > mBuffers[2]; Vector<sp<MediaCodecBuffer> > mBuffers[2]; List<size_t> mAvailInputBufferIndices; List<BufferInfo> mAvailOutputBufferInfos; Loading Loading @@ -101,7 +102,7 @@ private: status_t onOutputFormatChanged(size_t trackIndex, CodecState *state); void renderAudio( CodecState *state, BufferInfo *info, const sp<ABuffer> &buffer); CodecState *state, BufferInfo *info, const sp<MediaCodecBuffer> &buffer); DISALLOW_EVIL_CONSTRUCTORS(SimplePlayer); }; Loading
cmds/stagefright/codec.cpp +7 −4 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include <media/ICrypto.h> #include <media/IMediaHTTPService.h> #include <media/IMediaPlayerService.h> #include <media/MediaCodecBuffer.h> #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/ALooper.h> Loading Loading @@ -56,8 +57,8 @@ namespace android { struct CodecState { sp<MediaCodec> mCodec; Vector<sp<ABuffer> > mInBuffers; Vector<sp<ABuffer> > mOutBuffers; Vector<sp<MediaCodecBuffer> > mInBuffers; Vector<sp<MediaCodecBuffer> > mOutBuffers; bool mSignalledInputEOS; bool mSawOutputEOS; int64_t mNumBuffersDecoded; Loading Loading @@ -174,10 +175,12 @@ static int decode( if (err == OK) { ALOGV("filling input buffer %zu", index); const sp<ABuffer> &buffer = state->mInBuffers.itemAt(index); const sp<MediaCodecBuffer> &buffer = state->mInBuffers.itemAt(index); sp<ABuffer> abuffer = new ABuffer(buffer->base(), buffer->capacity()); err = extractor->readSampleData(buffer); err = extractor->readSampleData(abuffer); CHECK_EQ(err, (status_t)OK); buffer->setRange(abuffer->offset(), abuffer->size()); int64_t timeUs; err = extractor->getSampleTime(&timeUs); Loading
cmds/stagefright/mediafilter.cpp +9 −6 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include <gui/Surface.h> #include <media/ICrypto.h> #include <media/IMediaHTTPService.h> #include <media/MediaCodecBuffer.h> #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> Loading Loading @@ -131,8 +132,8 @@ private: struct CodecState { sp<MediaCodec> mCodec; Vector<sp<ABuffer> > mInBuffers; Vector<sp<ABuffer> > mOutBuffers; Vector<sp<MediaCodecBuffer> > mInBuffers; Vector<sp<MediaCodecBuffer> > mOutBuffers; bool mSignalledInputEOS; bool mSawOutputEOS; int64_t mNumBuffersDecoded; Loading Loading @@ -183,9 +184,9 @@ void tryCopyDecodedBuffer( } size_t outIndex = frame.index; const sp<ABuffer> &srcBuffer = const sp<MediaCodecBuffer> &srcBuffer = vidState->mOutBuffers.itemAt(outIndex); const sp<ABuffer> &destBuffer = const sp<MediaCodecBuffer> &destBuffer = filterState->mInBuffers.itemAt(filterIndex); sp<AMessage> srcFormat, destFormat; Loading Loading @@ -532,10 +533,12 @@ static int decode( if (err == OK) { ALOGV("filling input buffer %zu", index); const sp<ABuffer> &buffer = state->mInBuffers.itemAt(index); const sp<MediaCodecBuffer> &buffer = state->mInBuffers.itemAt(index); sp<ABuffer> abuffer = new ABuffer(buffer->base(), buffer->capacity()); err = extractor->readSampleData(buffer); err = extractor->readSampleData(abuffer); CHECK(err == OK); buffer->setRange(abuffer->offset(), abuffer->size()); int64_t timeUs; err = extractor->getSampleTime(&timeUs); Loading