Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43ef48c3 authored by Wei Jia's avatar Wei Jia Committed by android-build-merger
Browse files

Merge \"MediaExtractor: move DRMExtractor to mediaserver process.\" into nyc-dev

am: 59180b30

Change-Id: I1de4c34ffeeaf04f9052ba6e38424a719b0efeea
parents 2d46f597 59180b30
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -151,10 +151,6 @@ sp<IMediaExtractor> MediaExtractor::Create(
        ALOGW("creating media extractor in calling process");
        return CreateFromService(source, mime);
    } else {
        // remote extractor
        ALOGV("get service manager");
        sp<IBinder> binder = defaultServiceManager()->getService(String16("media.extractor"));

        // Check if it's WVM, since WVMExtractor needs to be created in the media server process,
        // not the extractor process.
        String8 mime8;
@@ -165,6 +161,21 @@ sp<IMediaExtractor> MediaExtractor::Create(
            return new WVMExtractor(source);
        }

        // Check if it's es-based DRM, since DRMExtractor needs to be created in the media server
        // process, not the extractor process.
        if (SniffDRM(source, &mime8, &confidence, &meta)) {
            const char *drmMime = mime8.string();
            ALOGV("Detected media content as '%s' with confidence %.2f", drmMime, confidence);
            if (!strncmp(drmMime, "drm+es_based+", 13)) {
                // DRMExtractor sets container metadata kKeyIsDRM to 1
                return new DRMExtractor(source, drmMime + 14);
            }
        }

        // remote extractor
        ALOGV("get service manager");
        sp<IBinder> binder = defaultServiceManager()->getService(String16("media.extractor"));

        if (binder != 0) {
            sp<IMediaExtractorService> mediaExService(interface_cast<IMediaExtractorService>(binder));
            sp<IMediaExtractor> ex = mediaExService->makeExtractor(RemoteDataSource::wrap(source), mime);