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

Commit d91dc5a0 authored by Dongwon Kang's avatar Dongwon Kang
Browse files

Remove libmedia and libstagefright dependency from extractors

- MediaSource, DataSource and MediaExtractor are moved to
  libmediaextractor so that they can be used by extractor
  implementations without depending on libmedia and libstagefright.
- XXXFactory classes has been added in order not to expose CreateXXX
  methods in libmediaextractor.
- avc_utils is moved to libstagefright_foundation since most of
  extractor implementations are relying on that.

Test: build + post submit media CTS tests
Bug: 65851881
Change-Id: I7d5cf18dd25abc10478ac3f6e7d1828ad023e3fb
parent 04ce1be8
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -8,8 +8,8 @@ LOCAL_SRC_FILES:= \
        SineSource.cpp

LOCAL_SHARED_LIBRARIES := \
        libstagefright libmedia libutils libbinder libstagefright_foundation \
        libjpeg libui libgui libcutils liblog \
        libstagefright libmedia libmediaextractor libutils libbinder \
        libstagefright_foundation libjpeg libui libgui libcutils liblog \
        libhidlmemory \
        android.hardware.media.omx@1.0 \

@@ -36,7 +36,8 @@ LOCAL_SRC_FILES:= \
        record.cpp

LOCAL_SHARED_LIBRARIES := \
        libstagefright libmedia liblog libutils libbinder libstagefright_foundation
        libstagefright libmedia libmediaextractor liblog libutils libbinder \
        libstagefright_foundation

LOCAL_C_INCLUDES:= \
        frameworks/av/media/libstagefright \
@@ -60,7 +61,8 @@ LOCAL_SRC_FILES:= \
        recordvideo.cpp

LOCAL_SHARED_LIBRARIES := \
        libstagefright libmedia liblog libutils libbinder libstagefright_foundation
        libstagefright libmedia libmediaextractor liblog libutils libbinder \
        libstagefright_foundation

LOCAL_C_INCLUDES:= \
        frameworks/av/media/libstagefright \
@@ -85,7 +87,8 @@ LOCAL_SRC_FILES:= \
        audioloop.cpp

LOCAL_SHARED_LIBRARIES := \
        libstagefright libmedia liblog libutils libbinder libstagefright_foundation
        libstagefright libmedia libmediaextractor liblog libutils libbinder \
        libstagefright_foundation

LOCAL_C_INCLUDES:= \
        frameworks/av/media/libstagefright \
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@

#define SINE_SOURCE_H_

#include <media/stagefright/MediaSource.h>
#include <media/MediaSource.h>
#include <utils/Compat.h>

namespace android {
+3 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#include "SineSource.h"

#include <binder/ProcessState.h>
#include <media/MediaExtractor.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/ALooper.h>
#include <media/stagefright/foundation/AMessage.h>
@@ -27,7 +28,7 @@
#include <media/stagefright/MediaDefs.h>
#include <media/stagefright/MediaCodecSource.h>
#include <media/stagefright/MetaData.h>
#include <media/stagefright/MediaExtractor.h>
#include <media/stagefright/MediaExtractorFactory.h>
#include <media/stagefright/MPEG4Writer.h>
#include <media/stagefright/SimpleDecodingSource.h>
#include <media/MediaPlayerInterface.h>
@@ -120,7 +121,7 @@ sp<MediaSource> createSource(const char *filename) {
    sp<MediaSource> source;

    sp<MediaExtractor> extractor =
        MediaExtractor::Create(new FileSource(filename));
        MediaExtractorFactory::Create(new FileSource(filename));
    if (extractor == NULL) {
        return NULL;
    }
+10 −7
Original line number Diff line number Diff line
@@ -31,6 +31,9 @@

#include <binder/IServiceManager.h>
#include <binder/ProcessState.h>
#include <media/DataSource.h>
#include <media/MediaExtractor.h>
#include <media/MediaSource.h>
#include <media/ICrypto.h>
#include <media/IMediaHTTPService.h>
#include <media/IMediaCodecService.h>
@@ -41,14 +44,14 @@
#include <media/stagefright/foundation/AUtils.h>
#include "include/NuCachedSource2.h"
#include <media/stagefright/AudioPlayer.h>
#include <media/stagefright/DataSource.h>
#include <media/stagefright/DataSourceFactory.h>
#include <media/stagefright/JPEGSource.h>
#include <media/stagefright/InterfaceUtils.h>
#include <media/stagefright/MediaCodec.h>
#include <media/stagefright/MediaCodecList.h>
#include <media/stagefright/MediaDefs.h>
#include <media/stagefright/MediaErrors.h>
#include <media/stagefright/MediaExtractor.h>
#include <media/stagefright/MediaSource.h>
#include <media/stagefright/MediaExtractorFactory.h>
#include <media/stagefright/MetaData.h>
#include <media/stagefright/SimpleDecodingSource.h>
#include <media/stagefright/Utils.h>
@@ -988,7 +991,7 @@ int main(int argc, char **argv) {
        const char *filename = argv[k];

        sp<DataSource> dataSource =
            DataSource::CreateFromURI(NULL /* httpService */, filename);
            DataSourceFactory::CreateFromURI(NULL /* httpService */, filename);

        if (strncasecmp(filename, "sine:", 5) && dataSource == NULL) {
            fprintf(stderr, "Unable to create data source.\n");
@@ -1022,7 +1025,7 @@ int main(int argc, char **argv) {
                mediaSources.push(mediaSource);
            }
        } else {
            sp<IMediaExtractor> extractor = MediaExtractor::Create(dataSource);
            sp<IMediaExtractor> extractor = MediaExtractorFactory::Create(dataSource);

            if (extractor == NULL) {
                fprintf(stderr, "could not create extractor.\n");
@@ -1049,7 +1052,7 @@ int main(int argc, char **argv) {
                bool haveAudio = false;
                bool haveVideo = false;
                for (size_t i = 0; i < numTracks; ++i) {
                    sp<MediaSource> source = MediaSource::CreateFromIMediaSource(
                    sp<MediaSource> source = CreateMediaSourceFromIMediaSource(
                            extractor->getTrack(i));
                    if (source == nullptr) {
                        fprintf(stderr, "skip NULL track %zu, track count %zu.\n", i, numTracks);
@@ -1116,7 +1119,7 @@ int main(int argc, char **argv) {
                           thumbTimeUs, thumbTimeUs / 1E6);
                }

                mediaSource = MediaSource::CreateFromIMediaSource(extractor->getTrack(i));
                mediaSource = CreateMediaSourceFromIMediaSource(extractor->getTrack(i));
                if (mediaSource == nullptr) {
                    fprintf(stderr, "skip NULL track %zu, total tracks %zu.\n", i, numTracks);
                    return -1;
+9 −6
Original line number Diff line number Diff line
@@ -21,15 +21,18 @@
#include <binder/ProcessState.h>
#include <cutils/properties.h> // for property_get

#include <media/DataSource.h>
#include <media/IMediaHTTPService.h>
#include <media/IStreamSource.h>
#include <media/MediaExtractor.h>
#include <media/mediaplayer.h>
#include <media/MediaSource.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/AMessage.h>
#include <media/stagefright/DataSource.h>
#include <media/stagefright/DataSourceFactory.h>
#include <media/stagefright/InterfaceUtils.h>
#include <media/stagefright/MPEG2TSWriter.h>
#include <media/stagefright/MediaExtractor.h>
#include <media/stagefright/MediaSource.h>
#include <media/stagefright/MediaExtractorFactory.h>
#include <media/stagefright/MetaData.h>

#include <binder/IServiceManager.h>
@@ -161,11 +164,11 @@ MyConvertingStreamSource::MyConvertingStreamSource(const char *filename)
    : mCurrentBufferIndex(-1),
      mCurrentBufferOffset(0) {
    sp<DataSource> dataSource =
        DataSource::CreateFromURI(NULL /* httpService */, filename);
        DataSourceFactory::CreateFromURI(NULL /* httpService */, filename);

    CHECK(dataSource != NULL);

    sp<IMediaExtractor> extractor = MediaExtractor::Create(dataSource);
    sp<IMediaExtractor> extractor = MediaExtractorFactory::Create(dataSource);
    CHECK(extractor != NULL);

    mWriter = new MPEG2TSWriter(
@@ -182,7 +185,7 @@ MyConvertingStreamSource::MyConvertingStreamSource(const char *filename)
            continue;
        }

        sp<MediaSource> track = MediaSource::CreateFromIMediaSource(extractor->getTrack(i));
        sp<MediaSource> track = CreateMediaSourceFromIMediaSource(extractor->getTrack(i));
        if (track == nullptr) {
            fprintf(stderr, "skip NULL track %zu, total tracks %zu\n", i, numTracks);
            continue;
Loading