Remove start() parameter from extractors

Bug: 111407253
Test: CTS
Change-Id: I570374f936e434b214e9cd55e2a72f12ebeafad2
gugelfrei
Marco Nelissen 6 years ago
parent 32fddecebd
commit 3db2dccc3a

@ -51,7 +51,7 @@ struct CMediaTrack {
void *data; void *data;
void (*free)(void *data); void (*free)(void *data);
status_t (*start)(void *data, MetaDataBase *params); status_t (*start)(void *data);
status_t (*stop)(void *data); status_t (*stop)(void *data);
status_t (*getFormat)(void *data, MetaDataBase &format); status_t (*getFormat)(void *data, MetaDataBase &format);
status_t (*read)(void *data, MediaBufferBase **buffer, uint32_t options, int64_t seekPosUs); status_t (*read)(void *data, MediaBufferBase **buffer, uint32_t options, int64_t seekPosUs);
@ -62,7 +62,7 @@ struct CMediaTrackV2 {
void *data; void *data;
void (*free)(void *data); void (*free)(void *data);
status_t (*start)(void *data, AMediaFormat *params); status_t (*start)(void *data);
status_t (*stop)(void *data); status_t (*stop)(void *data);
status_t (*getFormat)(void *data, AMediaFormat *format); status_t (*getFormat)(void *data, AMediaFormat *format);
status_t (*read)(void *data, MediaBufferBase **buffer, uint32_t options, int64_t seekPosUs); status_t (*read)(void *data, MediaBufferBase **buffer, uint32_t options, int64_t seekPosUs);

@ -37,7 +37,7 @@ struct MediaTrack;
class MediaTrackHelper { class MediaTrackHelper {
public: public:
virtual ~MediaTrackHelper() {}; virtual ~MediaTrackHelper() {};
virtual status_t start(MetaDataBase *params = NULL) = 0; virtual status_t start() = 0;
virtual status_t stop() = 0; virtual status_t stop() = 0;
virtual status_t getFormat(MetaDataBase& format) = 0; virtual status_t getFormat(MetaDataBase& format) = 0;
@ -82,8 +82,8 @@ inline CMediaTrack *wrap(MediaTrackHelper *track) {
wrapper->free = [](void *data) -> void { wrapper->free = [](void *data) -> void {
delete (MediaTrackHelper*)(data); delete (MediaTrackHelper*)(data);
}; };
wrapper->start = [](void *data, MetaDataBase *params) -> status_t { wrapper->start = [](void *data) -> status_t {
return ((MediaTrackHelper*)data)->start(params); return ((MediaTrackHelper*)data)->start();
}; };
wrapper->stop = [](void *data) -> status_t { wrapper->stop = [](void *data) -> status_t {
return ((MediaTrackHelper*)data)->stop(); return ((MediaTrackHelper*)data)->stop();
@ -106,7 +106,7 @@ inline CMediaTrack *wrap(MediaTrackHelper *track) {
class MediaTrackHelperV2 { class MediaTrackHelperV2 {
public: public:
virtual ~MediaTrackHelperV2() {}; virtual ~MediaTrackHelperV2() {};
virtual status_t start(AMediaFormat *params = NULL) = 0; virtual status_t start() = 0;
virtual status_t stop() = 0; virtual status_t stop() = 0;
virtual status_t getFormat(AMediaFormat *format) = 0; virtual status_t getFormat(AMediaFormat *format) = 0;
@ -151,8 +151,8 @@ inline CMediaTrackV2 *wrapV2(MediaTrackHelperV2 *track) {
wrapper->free = [](void *data) -> void { wrapper->free = [](void *data) -> void {
delete (MediaTrackHelperV2*)(data); delete (MediaTrackHelperV2*)(data);
}; };
wrapper->start = [](void *data, AMediaFormat *params) -> status_t { wrapper->start = [](void *data) -> status_t {
return ((MediaTrackHelperV2*)data)->start(params); return ((MediaTrackHelperV2*)data)->start();
}; };
wrapper->stop = [](void *data) -> status_t { wrapper->stop = [](void *data) -> status_t {
return ((MediaTrackHelperV2*)data)->stop(); return ((MediaTrackHelperV2*)data)->stop();

@ -52,7 +52,7 @@ struct MediaTrack
// To be called before any other methods on this object, except // To be called before any other methods on this object, except
// getFormat(). // getFormat().
virtual status_t start(MetaDataBase *params = NULL) = 0; virtual status_t start() = 0;
// Any blocking read call returns immediately with a result of NO_INIT. // Any blocking read call returns immediately with a result of NO_INIT.
// It is an error to call any methods other than start after this call // It is an error to call any methods other than start after this call
@ -143,7 +143,7 @@ class MediaTrackCUnwrapper : public MediaTrack {
public: public:
explicit MediaTrackCUnwrapper(CMediaTrack *wrapper); explicit MediaTrackCUnwrapper(CMediaTrack *wrapper);
virtual status_t start(MetaDataBase *params = NULL); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase& format); virtual status_t getFormat(MetaDataBase& format);
virtual status_t read(MediaBufferBase **buffer, const ReadOptions *options = NULL); virtual status_t read(MediaBufferBase **buffer, const ReadOptions *options = NULL);
@ -161,7 +161,7 @@ class MediaTrackCUnwrapperV2 : public MediaTrack {
public: public:
explicit MediaTrackCUnwrapperV2(CMediaTrackV2 *wrapper); explicit MediaTrackCUnwrapperV2(CMediaTrackV2 *wrapper);
virtual status_t start(MetaDataBase *params = NULL); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase& format); virtual status_t getFormat(MetaDataBase& format);
virtual status_t read(MediaBufferBase **buffer, const ReadOptions *options = NULL); virtual status_t read(MediaBufferBase **buffer, const ReadOptions *options = NULL);

@ -40,7 +40,7 @@ public:
const Vector<uint64_t> &offset_vector, const Vector<uint64_t> &offset_vector,
int64_t frame_duration_us); int64_t frame_duration_us);
virtual status_t start(MetaDataBase *params = NULL); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase&); virtual status_t getFormat(MetaDataBase&);
@ -238,7 +238,7 @@ AACSource::~AACSource() {
} }
} }
status_t AACSource::start(MetaDataBase * /* params */) { status_t AACSource::start() {
CHECK(!mStarted); CHECK(!mStarted);
if (mOffsetVector.empty()) { if (mOffsetVector.empty()) {

@ -38,7 +38,7 @@ public:
const off64_t *offset_table, const off64_t *offset_table,
size_t offset_table_length); size_t offset_table_length);
virtual status_t start(MetaDataBase *params = NULL); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase &); virtual status_t getFormat(MetaDataBase &);
@ -249,7 +249,7 @@ AMRSource::~AMRSource() {
} }
} }
status_t AMRSource::start(MetaDataBase * /* params */) { status_t AMRSource::start() {
CHECK(!mStarted); CHECK(!mStarted);
mOffset = mIsWide ? 9 : 6; mOffset = mIsWide ? 9 : 6;

@ -46,7 +46,7 @@ public:
DataSourceHelper *dataSource, DataSourceHelper *dataSource,
MetaDataBase &meta); MetaDataBase &meta);
virtual status_t start(MetaDataBase *params); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase &meta); virtual status_t getFormat(MetaDataBase &meta);
@ -731,7 +731,7 @@ FLACSource::~FLACSource()
delete mParser; delete mParser;
} }
status_t FLACSource::start(MetaDataBase * /* params */) status_t FLACSource::start()
{ {
ALOGV("FLACSource::start"); ALOGV("FLACSource::start");

@ -40,7 +40,7 @@ public:
MidiEngine &engine, MidiEngine &engine,
AMediaFormat *trackMetadata); AMediaFormat *trackMetadata);
virtual status_t start(AMediaFormat *params); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(AMediaFormat *); virtual status_t getFormat(AMediaFormat *);
@ -87,7 +87,7 @@ MidiSource::~MidiSource()
} }
} }
status_t MidiSource::start(AMediaFormat * /* params */) status_t MidiSource::start()
{ {
ALOGV("MidiSource::start"); ALOGV("MidiSource::start");

@ -126,7 +126,7 @@ private:
struct MatroskaSource : public MediaTrackHelper { struct MatroskaSource : public MediaTrackHelper {
MatroskaSource(MatroskaExtractor *extractor, size_t index); MatroskaSource(MatroskaExtractor *extractor, size_t index);
virtual status_t start(MetaDataBase *params); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase &); virtual status_t getFormat(MetaDataBase &);
@ -268,7 +268,7 @@ MatroskaSource::~MatroskaSource() {
clearPendingFrames(); clearPendingFrames();
} }
status_t MatroskaSource::start(MetaDataBase * /* params */) { status_t MatroskaSource::start() {
if (mType == AVC && mNALSizeLen < 0) { if (mType == AVC && mNALSizeLen < 0) {
return ERROR_MALFORMED; return ERROR_MALFORMED;
} }

@ -214,7 +214,7 @@ public:
off64_t first_frame_pos, uint32_t fixed_header, off64_t first_frame_pos, uint32_t fixed_header,
MP3Seeker *seeker); MP3Seeker *seeker);
virtual status_t start(MetaDataBase *params = NULL); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase &meta); virtual status_t getFormat(MetaDataBase &meta);
@ -462,7 +462,7 @@ MP3Source::~MP3Source() {
} }
} }
status_t MP3Source::start(MetaDataBase *) { status_t MP3Source::start() {
CHECK(!mStarted); CHECK(!mStarted);
mGroup = new MediaBufferGroup; mGroup = new MediaBufferGroup;

@ -81,7 +81,7 @@ public:
const sp<ItemTable> &itemTable); const sp<ItemTable> &itemTable);
virtual status_t init(); virtual status_t init();
virtual status_t start(MetaDataBase *params = NULL); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase &); virtual status_t getFormat(MetaDataBase &);
@ -137,8 +137,6 @@ private:
MediaBufferBase *mBuffer; MediaBufferBase *mBuffer;
bool mWantsNALFragments;
uint8_t *mSrcBuffer; uint8_t *mSrcBuffer;
bool mIsHeif; bool mIsHeif;
@ -4122,7 +4120,6 @@ MPEG4Source::MPEG4Source(
mStarted(false), mStarted(false),
mGroup(NULL), mGroup(NULL),
mBuffer(NULL), mBuffer(NULL),
mWantsNALFragments(false),
mSrcBuffer(NULL), mSrcBuffer(NULL),
mIsHeif(itemTable != NULL), mIsHeif(itemTable != NULL),
mItemTable(itemTable) { mItemTable(itemTable) {
@ -4221,19 +4218,11 @@ MPEG4Source::~MPEG4Source() {
free(mCurrentSampleInfoOffsets); free(mCurrentSampleInfoOffsets);
} }
status_t MPEG4Source::start(MetaDataBase *params) { status_t MPEG4Source::start() {
Mutex::Autolock autoLock(mLock); Mutex::Autolock autoLock(mLock);
CHECK(!mStarted); CHECK(!mStarted);
int32_t val;
if (params && params->findInt32(kKeyWantsNALFragments, &val)
&& val != 0) {
mWantsNALFragments = true;
} else {
mWantsNALFragments = false;
}
int32_t tmp; int32_t tmp;
CHECK(mFormat.findInt32(kKeyMaxInputSize, &tmp)); CHECK(mFormat.findInt32(kKeyMaxInputSize, &tmp));
size_t max_size = tmp; size_t max_size = tmp;
@ -5113,7 +5102,7 @@ status_t MPEG4Source::read(
} }
} }
if ((!mIsAVC && !mIsHEVC && !mIsAC4) || mWantsNALFragments) { if ((!mIsAVC && !mIsHEVC && !mIsAC4)) {
if (newBuffer) { if (newBuffer) {
if (mIsPcm) { if (mIsPcm) {
// The twos' PCM block reader assumes that all samples has the same size. // The twos' PCM block reader assumes that all samples has the same size.
@ -5541,7 +5530,7 @@ status_t MPEG4Source::fragmentedRead(
} }
if ((!mIsAVC && !mIsHEVC)|| mWantsNALFragments) { if ((!mIsAVC && !mIsHEVC)) {
if (newBuffer) { if (newBuffer) {
if (!isInRange((size_t)0u, mBuffer->size(), size)) { if (!isInRange((size_t)0u, mBuffer->size(), size)) {
mBuffer->release(); mBuffer->release();

@ -43,7 +43,7 @@ struct MPEG2PSExtractor::Track : public MediaTrackHelper, public RefBase {
Track(MPEG2PSExtractor *extractor, Track(MPEG2PSExtractor *extractor,
unsigned stream_id, unsigned stream_type); unsigned stream_id, unsigned stream_type);
virtual status_t start(MetaDataBase *params); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase &); virtual status_t getFormat(MetaDataBase &);
@ -74,7 +74,7 @@ private:
struct MPEG2PSExtractor::WrappedTrack : public MediaTrackHelper { struct MPEG2PSExtractor::WrappedTrack : public MediaTrackHelper {
WrappedTrack(MPEG2PSExtractor *extractor, const sp<Track> &track); WrappedTrack(MPEG2PSExtractor *extractor, const sp<Track> &track);
virtual status_t start(MetaDataBase *params); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase &); virtual status_t getFormat(MetaDataBase &);
@ -635,7 +635,7 @@ MPEG2PSExtractor::Track::~Track() {
mQueue = NULL; mQueue = NULL;
} }
status_t MPEG2PSExtractor::Track::start(MetaDataBase *) { status_t MPEG2PSExtractor::Track::start() {
if (mSource == NULL) { if (mSource == NULL) {
return NO_INIT; return NO_INIT;
} }
@ -734,8 +734,8 @@ MPEG2PSExtractor::WrappedTrack::WrappedTrack(
MPEG2PSExtractor::WrappedTrack::~WrappedTrack() { MPEG2PSExtractor::WrappedTrack::~WrappedTrack() {
} }
status_t MPEG2PSExtractor::WrappedTrack::start(MetaDataBase *params) { status_t MPEG2PSExtractor::WrappedTrack::start() {
return mTrack->start(params); return mTrack->start();
} }
status_t MPEG2PSExtractor::WrappedTrack::stop() { status_t MPEG2PSExtractor::WrappedTrack::stop() {

@ -57,7 +57,7 @@ struct MPEG2TSSource : public MediaTrackHelper {
bool doesSeek); bool doesSeek);
virtual ~MPEG2TSSource(); virtual ~MPEG2TSSource();
virtual status_t start(MetaDataBase *params = NULL); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(MetaDataBase &); virtual status_t getFormat(MetaDataBase &);
@ -87,7 +87,7 @@ MPEG2TSSource::MPEG2TSSource(
MPEG2TSSource::~MPEG2TSSource() { MPEG2TSSource::~MPEG2TSSource() {
} }
status_t MPEG2TSSource::start(MetaDataBase *) { status_t MPEG2TSSource::start() {
return mImpl->start(NULL); // AnotherPacketSource::start() doesn't use its argument return mImpl->start(NULL); // AnotherPacketSource::start() doesn't use its argument
} }

@ -52,7 +52,7 @@ struct OggSource : public MediaTrackHelper {
virtual status_t getFormat(MetaDataBase &); virtual status_t getFormat(MetaDataBase &);
virtual status_t start(MetaDataBase *params = NULL); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t read( virtual status_t read(
@ -241,7 +241,7 @@ status_t OggSource::getFormat(MetaDataBase &meta) {
return mExtractor->mImpl->getFormat(meta); return mExtractor->mImpl->getFormat(meta);
} }
status_t OggSource::start(MetaDataBase * /* params */) { status_t OggSource::start() {
if (mStarted) { if (mStarted) {
return INVALID_OPERATION; return INVALID_OPERATION;
} }

@ -62,7 +62,7 @@ struct WAVSource : public MediaTrackHelperV2 {
int32_t bitsPerSample, int32_t bitsPerSample,
off64_t offset, size_t size); off64_t offset, size_t size);
virtual status_t start(AMediaFormat *params = NULL); virtual status_t start();
virtual status_t stop(); virtual status_t stop();
virtual status_t getFormat(AMediaFormat *meta); virtual status_t getFormat(AMediaFormat *meta);
@ -377,7 +377,7 @@ WAVSource::~WAVSource() {
} }
} }
status_t WAVSource::start(AMediaFormat * /* params */) { status_t WAVSource::start() {
ALOGV("WAVSource::start"); ALOGV("WAVSource::start");
CHECK(!mStarted); CHECK(!mStarted);

@ -68,7 +68,6 @@ enum {
kKeyOpusSeekPreRoll = 'ospr', // uint64_t (seek preroll in ns) kKeyOpusSeekPreRoll = 'ospr', // uint64_t (seek preroll in ns)
kKeyFlacMetadata = 'flMd', // raw data kKeyFlacMetadata = 'flMd', // raw data
kKeyVp9CodecPrivate = 'vp9p', // raw data (vp9 csd information) kKeyVp9CodecPrivate = 'vp9p', // raw data (vp9 csd information)
kKeyWantsNALFragments = 'NALf',
kKeyIsSyncFrame = 'sync', // int32_t (bool) kKeyIsSyncFrame = 'sync', // int32_t (bool)
kKeyIsCodecConfig = 'conf', // int32_t (bool) kKeyIsCodecConfig = 'conf', // int32_t (bool)
kKeyIsMuxerData = 'muxd', // int32_t (bool) kKeyIsMuxerData = 'muxd', // int32_t (bool)

@ -67,8 +67,8 @@ MediaTrackCUnwrapper::~MediaTrackCUnwrapper() {
free(wrapper); free(wrapper);
} }
status_t MediaTrackCUnwrapper::start(MetaDataBase *params) { status_t MediaTrackCUnwrapper::start() {
return wrapper->start(wrapper->data, params); return wrapper->start(wrapper->data);
} }
status_t MediaTrackCUnwrapper::stop() { status_t MediaTrackCUnwrapper::stop() {
@ -111,13 +111,8 @@ MediaTrackCUnwrapperV2::MediaTrackCUnwrapperV2(CMediaTrackV2 *cmediatrack2) {
MediaTrackCUnwrapperV2::~MediaTrackCUnwrapperV2() { MediaTrackCUnwrapperV2::~MediaTrackCUnwrapperV2() {
} }
status_t MediaTrackCUnwrapperV2::start(MetaDataBase *meta) { status_t MediaTrackCUnwrapperV2::start() {
sp<AMessage> msg; return wrapper->start(wrapper->data);
convertMetaDataToMessage(meta, &msg);
AMediaFormat *format = AMediaFormat_fromMsg(&msg);
status_t ret = wrapper->start(wrapper->data, format);
delete format;
return ret;
} }
status_t MediaTrackCUnwrapperV2::stop() { status_t MediaTrackCUnwrapperV2::stop() {

@ -25,25 +25,29 @@ RemoteMediaSource::RemoteMediaSource(
MediaTrack *source, MediaTrack *source,
const sp<RefBase> &plugin) const sp<RefBase> &plugin)
: mExtractor(extractor), : mExtractor(extractor),
mSource(source), mTrack(source),
mExtractorPlugin(plugin) {} mExtractorPlugin(plugin) {}
RemoteMediaSource::~RemoteMediaSource() { RemoteMediaSource::~RemoteMediaSource() {
delete mSource; delete mTrack;
mExtractorPlugin = nullptr; mExtractorPlugin = nullptr;
} }
status_t RemoteMediaSource::start(MetaData *params) { status_t RemoteMediaSource::start(MetaData *params) {
return mSource->start(params); if (params) {
ALOGW("dropping start parameters:");
params->dumpToLog();
}
return mTrack->start();
} }
status_t RemoteMediaSource::stop() { status_t RemoteMediaSource::stop() {
return mSource->stop(); return mTrack->stop();
} }
sp<MetaData> RemoteMediaSource::getFormat() { sp<MetaData> RemoteMediaSource::getFormat() {
sp<MetaData> meta = new MetaData(); sp<MetaData> meta = new MetaData();
if (mSource->getFormat(*meta.get()) == OK) { if (mTrack->getFormat(*meta.get()) == OK) {
return meta; return meta;
} }
return nullptr; return nullptr;
@ -51,11 +55,11 @@ sp<MetaData> RemoteMediaSource::getFormat() {
status_t RemoteMediaSource::read( status_t RemoteMediaSource::read(
MediaBufferBase **buffer, const MediaSource::ReadOptions *options) { MediaBufferBase **buffer, const MediaSource::ReadOptions *options) {
return mSource->read(buffer, reinterpret_cast<const MediaSource::ReadOptions*>(options)); return mTrack->read(buffer, reinterpret_cast<const MediaSource::ReadOptions*>(options));
} }
bool RemoteMediaSource::supportNonblockingRead() { bool RemoteMediaSource::supportNonblockingRead() {
return mSource->supportNonblockingRead(); return mTrack->supportNonblockingRead();
} }
status_t RemoteMediaSource::pause() { status_t RemoteMediaSource::pause() {

@ -43,7 +43,7 @@ public:
private: private:
sp<RemoteMediaExtractor> mExtractor; sp<RemoteMediaExtractor> mExtractor;
MediaTrack *mSource; MediaTrack *mTrack;
sp<RefBase> mExtractorPlugin; sp<RefBase> mExtractorPlugin;
explicit RemoteMediaSource( explicit RemoteMediaSource(

Loading…
Cancel
Save