Loading media/extractors/flac/FLACExtractor.cpp +24 −24 Original line number Diff line number Diff line Loading @@ -36,7 +36,6 @@ #include <media/stagefright/MediaErrors.h> #include <media/stagefright/MetaData.h> #include <media/stagefright/MetaDataUtils.h> #include <media/stagefright/MediaBufferBase.h> #include <private/android_filesystem_config.h> // for AID_MEDIA #include <system/audio.h> Loading @@ -53,7 +52,7 @@ static inline bool shouldExtractorOutputFloat(int bitsPerSample) class FLACParser; class FLACSource : public MediaTrackHelperV2 { class FLACSource : public MediaTrackHelperV3 { public: FLACSource( Loading @@ -66,7 +65,7 @@ public: virtual media_status_t getFormat(AMediaFormat *meta); virtual media_status_t read( MediaBufferBase **buffer, const ReadOptions *options = NULL); MediaBufferHelperV3 **buffer, const ReadOptions *options = NULL); protected: virtual ~FLACSource(); Loading Loading @@ -125,12 +124,12 @@ public: } // media buffers void allocateBuffers(); void allocateBuffers(MediaBufferGroupHelperV3 *group); void releaseBuffers(); MediaBufferBase *readBuffer() { MediaBufferHelperV3 *readBuffer() { return readBuffer(false, 0LL); } MediaBufferBase *readBuffer(FLAC__uint64 sample) { MediaBufferHelperV3 *readBuffer(FLAC__uint64 sample) { return readBuffer(true, sample); } Loading @@ -143,7 +142,7 @@ private: // media buffers size_t mMaxBufferSize; MediaBufferGroup *mGroup; MediaBufferGroupHelperV3 *mGroup; void (*mCopy)(int16_t *dst, const int * src[kMaxChannels], unsigned nSamples, unsigned nChannels); // handle to underlying libFLAC parser Loading @@ -167,7 +166,7 @@ private: FLAC__StreamDecoderErrorStatus mErrorStatus; status_t init(); MediaBufferBase *readBuffer(bool doSeek, FLAC__uint64 sample); MediaBufferHelperV3 *readBuffer(bool doSeek, FLAC__uint64 sample); // no copy constructor or assignment FLACParser(const FLACParser &); Loading Loading @@ -577,12 +576,12 @@ status_t FLACParser::init() return OK; } void FLACParser::allocateBuffers() void FLACParser::allocateBuffers(MediaBufferGroupHelperV3 *group) { CHECK(mGroup == NULL); mGroup = new MediaBufferGroup; mGroup = group; mMaxBufferSize = getMaxBlockSize() * getChannels() * getOutputSampleSize(); mGroup->add_buffer(MediaBufferBase::Create(mMaxBufferSize)); mGroup->add_buffer(mMaxBufferSize); } void FLACParser::releaseBuffers() Loading @@ -592,7 +591,7 @@ void FLACParser::releaseBuffers() mGroup = NULL; } MediaBufferBase *FLACParser::readBuffer(bool doSeek, FLAC__uint64 sample) MediaBufferHelperV3 *FLACParser::readBuffer(bool doSeek, FLAC__uint64 sample) { mWriteRequested = true; mWriteCompleted = false; Loading Loading @@ -629,7 +628,7 @@ MediaBufferBase *FLACParser::readBuffer(bool doSeek, FLAC__uint64 sample) } // acquire a media buffer CHECK(mGroup != NULL); MediaBufferBase *buffer; MediaBufferHelperV3 *buffer; status_t err = mGroup->acquire_buffer(&buffer); if (err != OK) { return NULL; Loading @@ -656,8 +655,9 @@ MediaBufferBase *FLACParser::readBuffer(bool doSeek, FLAC__uint64 sample) CHECK(mWriteHeader.number_type == FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER); FLAC__uint64 sampleNumber = mWriteHeader.number.sample_number; int64_t timeUs = (1000000LL * sampleNumber) / getSampleRate(); buffer->meta_data().setInt64(kKeyTime, timeUs); buffer->meta_data().setInt32(kKeyIsSyncFrame, 1); AMediaFormat *meta = buffer->meta_data(); AMediaFormat_setInt64(meta, AMEDIAFORMAT_KEY_TIME_US, timeUs); AMediaFormat_setInt32(meta, AMEDIAFORMAT_KEY_IS_SYNC_FRAME, 1); return buffer; } Loading Loading @@ -691,7 +691,7 @@ media_status_t FLACSource::start() ALOGV("FLACSource::start"); CHECK(!mStarted); mParser->allocateBuffers(); mParser->allocateBuffers(mBufferGroup); mStarted = true; return AMEDIA_OK; Loading Loading @@ -719,9 +719,9 @@ media_status_t FLACSource::getFormat(AMediaFormat *meta) } media_status_t FLACSource::read( MediaBufferBase **outBuffer, const ReadOptions *options) MediaBufferHelperV3 **outBuffer, const ReadOptions *options) { MediaBufferBase *buffer; MediaBufferHelperV3 *buffer; // process an optional seek request int64_t seekTimeUs; ReadOptions::SeekMode mode; Loading Loading @@ -775,7 +775,7 @@ size_t FLACExtractor::countTracks() return mInitCheck == OK ? 1 : 0; } MediaTrackHelperV2 *FLACExtractor::getTrack(size_t index) MediaTrackHelperV3 *FLACExtractor::getTrack(size_t index) { if (mInitCheck != OK || index > 0) { return NULL; Loading Loading @@ -831,22 +831,22 @@ extern "C" { __attribute__ ((visibility ("default"))) ExtractorDef GETEXTRACTORDEF() { return { EXTRACTORDEF_VERSION_CURRENT, EXTRACTORDEF_VERSION_CURRENT + 1, UUID("1364b048-cc45-4fda-9934-327d0ebf9829"), 1, "FLAC Extractor", { .v2 = []( .v3 = []( CDataSource *source, float *confidence, void **, FreeMetaFunc *) -> CreatorFuncV2 { FreeMetaFunc *) -> CreatorFuncV3 { DataSourceHelper helper(source); if (SniffFLAC(&helper, confidence)) { return []( CDataSource *source, void *) -> CMediaExtractorV2* { return wrapV2(new FLACExtractor(new DataSourceHelper(source)));}; void *) -> CMediaExtractorV3* { return wrapV3(new FLACExtractor(new DataSourceHelper(source)));}; } return NULL; } Loading media/extractors/flac/FLACExtractor.h +2 −2 Original line number Diff line number Diff line Loading @@ -27,13 +27,13 @@ namespace android { class FLACParser; class FLACExtractor : public MediaExtractorPluginHelperV2 { class FLACExtractor : public MediaExtractorPluginHelperV3 { public: explicit FLACExtractor(DataSourceHelper *source); virtual size_t countTracks(); virtual MediaTrackHelperV2 *getTrack(size_t index); virtual MediaTrackHelperV3 *getTrack(size_t index); virtual media_status_t getTrackMetaData(AMediaFormat *meta, size_t index, uint32_t flags); virtual media_status_t getMetaData(AMediaFormat *meta); Loading Loading
media/extractors/flac/FLACExtractor.cpp +24 −24 Original line number Diff line number Diff line Loading @@ -36,7 +36,6 @@ #include <media/stagefright/MediaErrors.h> #include <media/stagefright/MetaData.h> #include <media/stagefright/MetaDataUtils.h> #include <media/stagefright/MediaBufferBase.h> #include <private/android_filesystem_config.h> // for AID_MEDIA #include <system/audio.h> Loading @@ -53,7 +52,7 @@ static inline bool shouldExtractorOutputFloat(int bitsPerSample) class FLACParser; class FLACSource : public MediaTrackHelperV2 { class FLACSource : public MediaTrackHelperV3 { public: FLACSource( Loading @@ -66,7 +65,7 @@ public: virtual media_status_t getFormat(AMediaFormat *meta); virtual media_status_t read( MediaBufferBase **buffer, const ReadOptions *options = NULL); MediaBufferHelperV3 **buffer, const ReadOptions *options = NULL); protected: virtual ~FLACSource(); Loading Loading @@ -125,12 +124,12 @@ public: } // media buffers void allocateBuffers(); void allocateBuffers(MediaBufferGroupHelperV3 *group); void releaseBuffers(); MediaBufferBase *readBuffer() { MediaBufferHelperV3 *readBuffer() { return readBuffer(false, 0LL); } MediaBufferBase *readBuffer(FLAC__uint64 sample) { MediaBufferHelperV3 *readBuffer(FLAC__uint64 sample) { return readBuffer(true, sample); } Loading @@ -143,7 +142,7 @@ private: // media buffers size_t mMaxBufferSize; MediaBufferGroup *mGroup; MediaBufferGroupHelperV3 *mGroup; void (*mCopy)(int16_t *dst, const int * src[kMaxChannels], unsigned nSamples, unsigned nChannels); // handle to underlying libFLAC parser Loading @@ -167,7 +166,7 @@ private: FLAC__StreamDecoderErrorStatus mErrorStatus; status_t init(); MediaBufferBase *readBuffer(bool doSeek, FLAC__uint64 sample); MediaBufferHelperV3 *readBuffer(bool doSeek, FLAC__uint64 sample); // no copy constructor or assignment FLACParser(const FLACParser &); Loading Loading @@ -577,12 +576,12 @@ status_t FLACParser::init() return OK; } void FLACParser::allocateBuffers() void FLACParser::allocateBuffers(MediaBufferGroupHelperV3 *group) { CHECK(mGroup == NULL); mGroup = new MediaBufferGroup; mGroup = group; mMaxBufferSize = getMaxBlockSize() * getChannels() * getOutputSampleSize(); mGroup->add_buffer(MediaBufferBase::Create(mMaxBufferSize)); mGroup->add_buffer(mMaxBufferSize); } void FLACParser::releaseBuffers() Loading @@ -592,7 +591,7 @@ void FLACParser::releaseBuffers() mGroup = NULL; } MediaBufferBase *FLACParser::readBuffer(bool doSeek, FLAC__uint64 sample) MediaBufferHelperV3 *FLACParser::readBuffer(bool doSeek, FLAC__uint64 sample) { mWriteRequested = true; mWriteCompleted = false; Loading Loading @@ -629,7 +628,7 @@ MediaBufferBase *FLACParser::readBuffer(bool doSeek, FLAC__uint64 sample) } // acquire a media buffer CHECK(mGroup != NULL); MediaBufferBase *buffer; MediaBufferHelperV3 *buffer; status_t err = mGroup->acquire_buffer(&buffer); if (err != OK) { return NULL; Loading @@ -656,8 +655,9 @@ MediaBufferBase *FLACParser::readBuffer(bool doSeek, FLAC__uint64 sample) CHECK(mWriteHeader.number_type == FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER); FLAC__uint64 sampleNumber = mWriteHeader.number.sample_number; int64_t timeUs = (1000000LL * sampleNumber) / getSampleRate(); buffer->meta_data().setInt64(kKeyTime, timeUs); buffer->meta_data().setInt32(kKeyIsSyncFrame, 1); AMediaFormat *meta = buffer->meta_data(); AMediaFormat_setInt64(meta, AMEDIAFORMAT_KEY_TIME_US, timeUs); AMediaFormat_setInt32(meta, AMEDIAFORMAT_KEY_IS_SYNC_FRAME, 1); return buffer; } Loading Loading @@ -691,7 +691,7 @@ media_status_t FLACSource::start() ALOGV("FLACSource::start"); CHECK(!mStarted); mParser->allocateBuffers(); mParser->allocateBuffers(mBufferGroup); mStarted = true; return AMEDIA_OK; Loading Loading @@ -719,9 +719,9 @@ media_status_t FLACSource::getFormat(AMediaFormat *meta) } media_status_t FLACSource::read( MediaBufferBase **outBuffer, const ReadOptions *options) MediaBufferHelperV3 **outBuffer, const ReadOptions *options) { MediaBufferBase *buffer; MediaBufferHelperV3 *buffer; // process an optional seek request int64_t seekTimeUs; ReadOptions::SeekMode mode; Loading Loading @@ -775,7 +775,7 @@ size_t FLACExtractor::countTracks() return mInitCheck == OK ? 1 : 0; } MediaTrackHelperV2 *FLACExtractor::getTrack(size_t index) MediaTrackHelperV3 *FLACExtractor::getTrack(size_t index) { if (mInitCheck != OK || index > 0) { return NULL; Loading Loading @@ -831,22 +831,22 @@ extern "C" { __attribute__ ((visibility ("default"))) ExtractorDef GETEXTRACTORDEF() { return { EXTRACTORDEF_VERSION_CURRENT, EXTRACTORDEF_VERSION_CURRENT + 1, UUID("1364b048-cc45-4fda-9934-327d0ebf9829"), 1, "FLAC Extractor", { .v2 = []( .v3 = []( CDataSource *source, float *confidence, void **, FreeMetaFunc *) -> CreatorFuncV2 { FreeMetaFunc *) -> CreatorFuncV3 { DataSourceHelper helper(source); if (SniffFLAC(&helper, confidence)) { return []( CDataSource *source, void *) -> CMediaExtractorV2* { return wrapV2(new FLACExtractor(new DataSourceHelper(source)));}; void *) -> CMediaExtractorV3* { return wrapV3(new FLACExtractor(new DataSourceHelper(source)));}; } return NULL; } Loading
media/extractors/flac/FLACExtractor.h +2 −2 Original line number Diff line number Diff line Loading @@ -27,13 +27,13 @@ namespace android { class FLACParser; class FLACExtractor : public MediaExtractorPluginHelperV2 { class FLACExtractor : public MediaExtractorPluginHelperV3 { public: explicit FLACExtractor(DataSourceHelper *source); virtual size_t countTracks(); virtual MediaTrackHelperV2 *getTrack(size_t index); virtual MediaTrackHelperV3 *getTrack(size_t index); virtual media_status_t getTrackMetaData(AMediaFormat *meta, size_t index, uint32_t flags); virtual media_status_t getMetaData(AMediaFormat *meta); Loading