Loading media/extractors/aac/AACExtractor.cpp +17 −7 Original line number Diff line number Diff line Loading @@ -333,13 +333,20 @@ status_t AACSource::read( static MediaExtractor* CreateExtractor( DataSourceBase *source, const sp<AMessage>& meta) { return new AACExtractor(source, meta); void *meta) { sp<AMessage> metaData = static_cast<AMessage *>(meta); return new AACExtractor(source, metaData); } static void FreeMeta(void *meta) { if (meta != nullptr) { static_cast<AMessage *>(meta)->decStrong(nullptr); } } static MediaExtractor::CreatorFunc Sniff( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *meta) { DataSourceBase *source, float *confidence, void **meta, MediaExtractor::FreeMetaFunc *freeMeta) { off64_t pos = 0; for (;;) { Loading Loading @@ -377,11 +384,14 @@ static MediaExtractor::CreatorFunc Sniff( // ADTS syncword if ((header[0] == 0xff) && ((header[1] & 0xf6) == 0xf0)) { *mimeType = MEDIA_MIMETYPE_AUDIO_AAC_ADTS; *confidence = 0.2; *meta = new AMessage; (*meta)->setInt64("offset", pos); AMessage *msg = new AMessage; msg->setInt64("offset", pos); *meta = msg; *freeMeta = &FreeMeta; // ref count will be decreased in FreeMeta. msg->incStrong(nullptr); return CreateExtractor; } Loading media/extractors/amr/AMRExtractor.cpp +12 −9 Original line number Diff line number Diff line Loading @@ -122,7 +122,7 @@ AMRExtractor::AMRExtractor(DataSourceBase *source) mOffsetTableLength(0) { String8 mimeType; float confidence; if (!SniffAMR(mDataSource, &mimeType, &confidence, NULL)) { if (!SniffAMR(mDataSource, &mimeType, &confidence)) { return; } Loading Loading @@ -339,8 +339,7 @@ status_t AMRSource::read( //////////////////////////////////////////////////////////////////////////////// bool SniffAMR( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *) { DataSourceBase *source, String8 *mimeType, float *confidence) { char header[9]; if (source->readAt(0, header, sizeof(header)) != sizeof(header)) { Loading @@ -348,12 +347,16 @@ bool SniffAMR( } if (!memcmp(header, "#!AMR\n", 6)) { if (mimeType != nullptr) { *mimeType = MEDIA_MIMETYPE_AUDIO_AMR_NB; } *confidence = 0.5; return true; } else if (!memcmp(header, "#!AMR-WB\n", 9)) { if (mimeType != nullptr) { *mimeType = MEDIA_MIMETYPE_AUDIO_AMR_WB; } *confidence = 0.5; return true; Loading @@ -373,13 +376,13 @@ MediaExtractor::ExtractorDef GETEXTRACTORDEF() { "AMR Extractor", []( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *meta __unused) -> MediaExtractor::CreatorFunc { if (SniffAMR(source, mimeType, confidence, meta)) { void **, MediaExtractor::FreeMetaFunc *) -> MediaExtractor::CreatorFunc { if (SniffAMR(source, nullptr, confidence)) { return []( DataSourceBase *source, const sp<AMessage>& meta __unused) -> MediaExtractor* { void *) -> MediaExtractor* { return new AMRExtractor(source);}; } return NULL; Loading media/extractors/amr/AMRExtractor.h +1 −2 Original line number Diff line number Diff line Loading @@ -55,8 +55,7 @@ private: }; bool SniffAMR( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *); DataSourceBase *source, String8 *mimeType, float *confidence); } // namespace android Loading media/extractors/flac/FLACExtractor.cpp +5 −8 Original line number Diff line number Diff line Loading @@ -968,9 +968,7 @@ sp<MetaData> FLACExtractor::getMetaData() // Sniffer bool SniffFLAC( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *) bool SniffFLAC(DataSourceBase *source, float *confidence) { // first 4 is the signature word // second 4 is the sizeof STREAMINFO Loading @@ -983,7 +981,6 @@ bool SniffFLAC( return false; } *mimeType = MEDIA_MIMETYPE_AUDIO_FLAC; *confidence = 0.5; return true; Loading @@ -1001,13 +998,13 @@ MediaExtractor::ExtractorDef GETEXTRACTORDEF() { "FLAC Extractor", []( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *meta __unused) -> MediaExtractor::CreatorFunc { if (SniffFLAC(source, mimeType, confidence, meta)) { void **, MediaExtractor::FreeMetaFunc *) -> MediaExtractor::CreatorFunc { if (SniffFLAC(source, confidence)) { return []( DataSourceBase *source, const sp<AMessage>& meta __unused) -> MediaExtractor* { void *) -> MediaExtractor* { return new FLACExtractor(source);}; } return NULL; Loading media/extractors/flac/FLACExtractor.h +1 −2 Original line number Diff line number Diff line Loading @@ -56,8 +56,7 @@ private: }; bool SniffFLAC(DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *); bool SniffFLAC(DataSourceBase *source, float *confidence); } // namespace android Loading Loading
media/extractors/aac/AACExtractor.cpp +17 −7 Original line number Diff line number Diff line Loading @@ -333,13 +333,20 @@ status_t AACSource::read( static MediaExtractor* CreateExtractor( DataSourceBase *source, const sp<AMessage>& meta) { return new AACExtractor(source, meta); void *meta) { sp<AMessage> metaData = static_cast<AMessage *>(meta); return new AACExtractor(source, metaData); } static void FreeMeta(void *meta) { if (meta != nullptr) { static_cast<AMessage *>(meta)->decStrong(nullptr); } } static MediaExtractor::CreatorFunc Sniff( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *meta) { DataSourceBase *source, float *confidence, void **meta, MediaExtractor::FreeMetaFunc *freeMeta) { off64_t pos = 0; for (;;) { Loading Loading @@ -377,11 +384,14 @@ static MediaExtractor::CreatorFunc Sniff( // ADTS syncword if ((header[0] == 0xff) && ((header[1] & 0xf6) == 0xf0)) { *mimeType = MEDIA_MIMETYPE_AUDIO_AAC_ADTS; *confidence = 0.2; *meta = new AMessage; (*meta)->setInt64("offset", pos); AMessage *msg = new AMessage; msg->setInt64("offset", pos); *meta = msg; *freeMeta = &FreeMeta; // ref count will be decreased in FreeMeta. msg->incStrong(nullptr); return CreateExtractor; } Loading
media/extractors/amr/AMRExtractor.cpp +12 −9 Original line number Diff line number Diff line Loading @@ -122,7 +122,7 @@ AMRExtractor::AMRExtractor(DataSourceBase *source) mOffsetTableLength(0) { String8 mimeType; float confidence; if (!SniffAMR(mDataSource, &mimeType, &confidence, NULL)) { if (!SniffAMR(mDataSource, &mimeType, &confidence)) { return; } Loading Loading @@ -339,8 +339,7 @@ status_t AMRSource::read( //////////////////////////////////////////////////////////////////////////////// bool SniffAMR( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *) { DataSourceBase *source, String8 *mimeType, float *confidence) { char header[9]; if (source->readAt(0, header, sizeof(header)) != sizeof(header)) { Loading @@ -348,12 +347,16 @@ bool SniffAMR( } if (!memcmp(header, "#!AMR\n", 6)) { if (mimeType != nullptr) { *mimeType = MEDIA_MIMETYPE_AUDIO_AMR_NB; } *confidence = 0.5; return true; } else if (!memcmp(header, "#!AMR-WB\n", 9)) { if (mimeType != nullptr) { *mimeType = MEDIA_MIMETYPE_AUDIO_AMR_WB; } *confidence = 0.5; return true; Loading @@ -373,13 +376,13 @@ MediaExtractor::ExtractorDef GETEXTRACTORDEF() { "AMR Extractor", []( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *meta __unused) -> MediaExtractor::CreatorFunc { if (SniffAMR(source, mimeType, confidence, meta)) { void **, MediaExtractor::FreeMetaFunc *) -> MediaExtractor::CreatorFunc { if (SniffAMR(source, nullptr, confidence)) { return []( DataSourceBase *source, const sp<AMessage>& meta __unused) -> MediaExtractor* { void *) -> MediaExtractor* { return new AMRExtractor(source);}; } return NULL; Loading
media/extractors/amr/AMRExtractor.h +1 −2 Original line number Diff line number Diff line Loading @@ -55,8 +55,7 @@ private: }; bool SniffAMR( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *); DataSourceBase *source, String8 *mimeType, float *confidence); } // namespace android Loading
media/extractors/flac/FLACExtractor.cpp +5 −8 Original line number Diff line number Diff line Loading @@ -968,9 +968,7 @@ sp<MetaData> FLACExtractor::getMetaData() // Sniffer bool SniffFLAC( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *) bool SniffFLAC(DataSourceBase *source, float *confidence) { // first 4 is the signature word // second 4 is the sizeof STREAMINFO Loading @@ -983,7 +981,6 @@ bool SniffFLAC( return false; } *mimeType = MEDIA_MIMETYPE_AUDIO_FLAC; *confidence = 0.5; return true; Loading @@ -1001,13 +998,13 @@ MediaExtractor::ExtractorDef GETEXTRACTORDEF() { "FLAC Extractor", []( DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *meta __unused) -> MediaExtractor::CreatorFunc { if (SniffFLAC(source, mimeType, confidence, meta)) { void **, MediaExtractor::FreeMetaFunc *) -> MediaExtractor::CreatorFunc { if (SniffFLAC(source, confidence)) { return []( DataSourceBase *source, const sp<AMessage>& meta __unused) -> MediaExtractor* { void *) -> MediaExtractor* { return new FLACExtractor(source);}; } return NULL; Loading
media/extractors/flac/FLACExtractor.h +1 −2 Original line number Diff line number Diff line Loading @@ -56,8 +56,7 @@ private: }; bool SniffFLAC(DataSourceBase *source, String8 *mimeType, float *confidence, sp<AMessage> *); bool SniffFLAC(DataSourceBase *source, float *confidence); } // namespace android Loading