Loading media/libstagefright/writer_fuzzers/WriterFuzzerBase.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -192,7 +192,9 @@ void WriterFuzzerBase::addWriterSource(int32_t trackIndex) { sp<MetaData> trackMeta = new MetaData; convertMessageToMetaData(format, trackMeta); mCurrentTrack[trackIndex] = new MediaAdapter(trackMeta); mWriter->addSource(mCurrentTrack[trackIndex]); if (mWriter->addSource(mCurrentTrack[trackIndex]) != OK) { mCurrentTrack[trackIndex] = nullptr; } } void WriterFuzzerBase::start() { Loading @@ -202,13 +204,14 @@ void WriterFuzzerBase::start() { void WriterFuzzerBase::sendBuffersToWriter(sp<MediaAdapter> ¤tTrack, int32_t trackIndex, int32_t startFrameIndex, int32_t endFrameIndex) { if (!mCurrentTrack[trackIndex]) { return; } vector<FrameData> bufferInfo = mBufferSource->getFrameList(trackIndex); for (int idx = startFrameIndex; idx < endFrameIndex; ++idx) { sp<ABuffer> buffer = new ABuffer((void *)bufferInfo[idx].buf, bufferInfo[idx].size); MediaBuffer *mediaBuffer = new MediaBuffer(buffer); // Released in MediaAdapter::signalBufferReturned(). mediaBuffer->add_ref(); mediaBuffer->set_range(buffer->offset(), buffer->size()); MetaDataBase &sampleMetaData = mediaBuffer->meta_data(); sampleMetaData.setInt64(kKeyTime, bufferInfo[idx].timeUs); Loading @@ -219,8 +222,13 @@ void WriterFuzzerBase::sendBuffersToWriter(sp<MediaAdapter> ¤tTrack, int32 sampleMetaData.setInt32(kKeyIsSyncFrame, true); } // Released in MediaAdapter::signalBufferReturned(). mediaBuffer->add_ref(); // This pushBuffer will wait until the mediaBuffer is consumed. currentTrack->pushBuffer(mediaBuffer); if (currentTrack->pushBuffer(mediaBuffer) != OK) { mediaBuffer->release(); } } } Loading Loading
media/libstagefright/writer_fuzzers/WriterFuzzerBase.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -192,7 +192,9 @@ void WriterFuzzerBase::addWriterSource(int32_t trackIndex) { sp<MetaData> trackMeta = new MetaData; convertMessageToMetaData(format, trackMeta); mCurrentTrack[trackIndex] = new MediaAdapter(trackMeta); mWriter->addSource(mCurrentTrack[trackIndex]); if (mWriter->addSource(mCurrentTrack[trackIndex]) != OK) { mCurrentTrack[trackIndex] = nullptr; } } void WriterFuzzerBase::start() { Loading @@ -202,13 +204,14 @@ void WriterFuzzerBase::start() { void WriterFuzzerBase::sendBuffersToWriter(sp<MediaAdapter> ¤tTrack, int32_t trackIndex, int32_t startFrameIndex, int32_t endFrameIndex) { if (!mCurrentTrack[trackIndex]) { return; } vector<FrameData> bufferInfo = mBufferSource->getFrameList(trackIndex); for (int idx = startFrameIndex; idx < endFrameIndex; ++idx) { sp<ABuffer> buffer = new ABuffer((void *)bufferInfo[idx].buf, bufferInfo[idx].size); MediaBuffer *mediaBuffer = new MediaBuffer(buffer); // Released in MediaAdapter::signalBufferReturned(). mediaBuffer->add_ref(); mediaBuffer->set_range(buffer->offset(), buffer->size()); MetaDataBase &sampleMetaData = mediaBuffer->meta_data(); sampleMetaData.setInt64(kKeyTime, bufferInfo[idx].timeUs); Loading @@ -219,8 +222,13 @@ void WriterFuzzerBase::sendBuffersToWriter(sp<MediaAdapter> ¤tTrack, int32 sampleMetaData.setInt32(kKeyIsSyncFrame, true); } // Released in MediaAdapter::signalBufferReturned(). mediaBuffer->add_ref(); // This pushBuffer will wait until the mediaBuffer is consumed. currentTrack->pushBuffer(mediaBuffer); if (currentTrack->pushBuffer(mediaBuffer) != OK) { mediaBuffer->release(); } } } Loading