return mInitCheck == OK ? mTracks.size() : 0;
}
-sp<MediaSource> FFmpegExtractor::getTrack(size_t index) {
+sp<IMediaSource> FFmpegExtractor::getTrack(size_t index) {
ALOGV("FFmpegExtractor::getTrack[%zu]", index);
if (mInitCheck != OK) {
int32_t bits = avctx->bits_per_raw_sample > 0 ?
avctx->bits_per_raw_sample :
av_get_bytes_per_sample(avctx->sample_fmt) * 8;
- meta->setInt32(kKeyBitsPerSample, bits > 0 ? bits : 16);
+ meta->setInt32(kKeyBitsPerRawSample, bits);
meta->setInt32(kKeySampleRate, avctx->sample_rate);
meta->setInt32(kKeyBlockAlign, avctx->block_align);
meta->setInt32(kKeySampleFormat, avctx->sample_fmt);
- meta->setInt32('pfmt', to_android_audio_format(avctx->sample_fmt));
- meta->setCString('ffmt', findMatchingContainer(mFormatCtx->iformat->name));
+ meta->setInt32(kKeyPcmEncoding, sampleFormatToEncoding(avctx->sample_fmt));
+ meta->setCString(kKeyFileFormat, findMatchingContainer(mFormatCtx->iformat->name));
setDurationMetaData(stream, meta);
}
return ret;
}
+extern "C" {
+
bool SniffFFMPEG(
const sp<DataSource> &source, String8 *mimeType, float *confidence,
sp<AMessage> *meta) {
return true;
}
-MediaExtractor *CreateFFmpegExtractor(const sp<DataSource> &source, const char *mime, const sp<AMessage> &meta) {
+MediaExtractor *CreateFFMPEGExtractor(const sp<DataSource> &source, const char *mime, const sp<AMessage> &meta) {
MediaExtractor *ret = NULL;
AString notuse;
if (meta.get() && meta->findString("extended-extractor", ¬use) && (
return ret;
}
-} // namespace android
-
-extern "C" void getExtractorPlugin(android::MediaExtractor::Plugin *plugin)
-{
- plugin->sniff = android::SniffFFMPEG;
- plugin->create = android::CreateFFmpegExtractor;
}
+
+}; // namespace android