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

Commit 6e075b43 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "Move MediaBufferXXX from foundation to libmediaextractor""

parents 5f07c65a 4b780702
Loading
Loading
Loading
Loading
+17 −1
Original line number Original line Diff line number Diff line
@@ -21,13 +21,15 @@
#include <media/MediaCodecBuffer.h>
#include <media/MediaCodecBuffer.h>
#include <media/stagefright/foundation/ABuffer.h>
#include <media/stagefright/foundation/ABuffer.h>
#include <media/stagefright/foundation/AMessage.h>
#include <media/stagefright/foundation/AMessage.h>
#include <media/stagefright/foundation/MediaBufferBase.h>


namespace android {
namespace android {


MediaCodecBuffer::MediaCodecBuffer(const sp<AMessage> &format, const sp<ABuffer> &buffer)
MediaCodecBuffer::MediaCodecBuffer(const sp<AMessage> &format, const sp<ABuffer> &buffer)
    : mMeta(new AMessage),
    : mMeta(new AMessage),
      mFormat(format),
      mFormat(format),
      mBuffer(buffer) {
      mBuffer(buffer),
      mMediaBufferBase(nullptr) {
}
}


// ABuffer-like interface
// ABuffer-like interface
@@ -56,6 +58,20 @@ status_t MediaCodecBuffer::setRange(size_t offset, size_t size) {
    return OK;
    return OK;
}
}


MediaBufferBase *MediaCodecBuffer::getMediaBufferBase() {
    if (mMediaBufferBase != NULL) {
        mMediaBufferBase->add_ref();
    }
    return mMediaBufferBase;
}

void MediaCodecBuffer::setMediaBufferBase(MediaBufferBase *mediaBuffer) {
    if (mMediaBufferBase != NULL) {
        mMediaBufferBase->release();
    }
    mMediaBufferBase = mediaBuffer;
}

sp<AMessage> MediaCodecBuffer::meta() {
sp<AMessage> MediaCodecBuffer::meta() {
    return mMeta;
    return mMeta;
}
}
+4 −0
Original line number Original line Diff line number Diff line
@@ -50,6 +50,9 @@ public:
    size_t offset() const;
    size_t offset() const;
    // Default implementation calls ABuffer::setRange() and returns OK.
    // Default implementation calls ABuffer::setRange() and returns OK.
    virtual status_t setRange(size_t offset, size_t size);
    virtual status_t setRange(size_t offset, size_t size);
    // TODO: These can be removed if we finish replacing all MediaBuffer's.
    MediaBufferBase *getMediaBufferBase();
    void setMediaBufferBase(MediaBufferBase *mediaBuffer);


    // TODO: Specify each field for meta/format.
    // TODO: Specify each field for meta/format.
    sp<AMessage> meta();
    sp<AMessage> meta();
@@ -63,6 +66,7 @@ private:
    const sp<AMessage> mMeta;
    const sp<AMessage> mMeta;
    sp<AMessage> mFormat;
    sp<AMessage> mFormat;
    const sp<ABuffer> mBuffer;
    const sp<ABuffer> mBuffer;
    MediaBufferBase *mMediaBufferBase;
};
};


}  // namespace android
}  // namespace android
+2 −2
Original line number Original line Diff line number Diff line
@@ -24,7 +24,6 @@
#include <binder/IServiceManager.h>
#include <binder/IServiceManager.h>
#include <cutils/properties.h>
#include <cutils/properties.h>
#include <media/DataSource.h>
#include <media/DataSource.h>
#include <media/MediaBufferHolder.h>
#include <media/IMediaExtractorService.h>
#include <media/IMediaExtractorService.h>
#include <media/MediaHTTPService.h>
#include <media/MediaHTTPService.h>
#include <media/MediaExtractor.h>
#include <media/MediaExtractor.h>
@@ -1168,7 +1167,8 @@ sp<ABuffer> NuPlayer2::GenericSource::mediaBufferToABuffer(


        // data is already provided in the buffer
        // data is already provided in the buffer
        ab = new ABuffer(NULL, mb->range_length());
        ab = new ABuffer(NULL, mb->range_length());
        ab->meta()->setObject("mediaBufferHolder", new MediaBufferHolder(mb));
        mb->add_ref();
        ab->setMediaBufferBase(mb);


        // Modular DRM: Required b/c of the above add_ref.
        // Modular DRM: Required b/c of the above add_ref.
        // If ref>0, there must be an observer, or it'll crash at release().
        // If ref>0, there must be an observer, or it'll crash at release().
+4 −6
Original line number Original line Diff line number Diff line
@@ -28,7 +28,6 @@
#include "NuPlayer2Source.h"
#include "NuPlayer2Source.h"


#include <cutils/properties.h>
#include <cutils/properties.h>
#include <media/MediaBufferHolder.h>
#include <media/MediaCodecBuffer.h>
#include <media/MediaCodecBuffer.h>
#include <media/NdkMediaCodec.h>
#include <media/NdkMediaCodec.h>
#include <media/NdkWrapper.h>
#include <media/NdkWrapper.h>
@@ -1082,17 +1081,16 @@ bool NuPlayer2::Decoder::onInputBufferFetched(const sp<AMessage> &msg) {
                memcpy(codecBuffer->data(), buffer->data(), buffer->size());
                memcpy(codecBuffer->data(), buffer->data(), buffer->size());
            } else { // No buffer->data()
            } else { // No buffer->data()
                //Modular DRM
                //Modular DRM
                sp<RefBase> holder;
                mediaBuf = (MediaBuffer*)buffer->getMediaBufferBase();
                if (buffer->meta()->findObject("mediaBufferHolder", &holder)) {
                    mediaBuf = (holder != nullptr) ?
                        static_cast<MediaBufferHolder*>(holder.get())->mediaBuffer() : nullptr;
                }
                if (mediaBuf != NULL) {
                if (mediaBuf != NULL) {
                    codecBuffer->setRange(0, mediaBuf->size());
                    codecBuffer->setRange(0, mediaBuf->size());
                    memcpy(codecBuffer->data(), mediaBuf->data(), mediaBuf->size());
                    memcpy(codecBuffer->data(), mediaBuf->data(), mediaBuf->size());


                    sp<MetaData> meta_data = mediaBuf->meta_data();
                    sp<MetaData> meta_data = mediaBuf->meta_data();
                    cryptInfo = AMediaCodecCryptoInfoWrapper::Create(meta_data);
                    cryptInfo = AMediaCodecCryptoInfoWrapper::Create(meta_data);

                    // since getMediaBuffer() has incremented the refCount
                    mediaBuf->release();
                } else { // No mediaBuf
                } else { // No mediaBuf
                    ALOGE("onInputBufferFetched: buffer->data()/mediaBuf are NULL for %p",
                    ALOGE("onInputBufferFetched: buffer->data()/mediaBuf are NULL for %p",
                            buffer.get());
                            buffer.get());
+0 −3
Original line number Original line Diff line number Diff line
@@ -15,7 +15,6 @@ cc_library {
    ],
    ],


    shared_libs: [
    shared_libs: [
        "libbinder",
        "libstagefright_foundation",
        "libstagefright_foundation",
        "libutils",
        "libutils",
        "libcutils",
        "libcutils",
@@ -24,8 +23,6 @@ cc_library {


    srcs: [
    srcs: [
        "DataSource.cpp",
        "DataSource.cpp",
        "MediaBuffer.cpp",
        "MediaBufferGroup.cpp",
        "MediaSource.cpp",
        "MediaSource.cpp",
        "MediaExtractor.cpp",
        "MediaExtractor.cpp",
    ],
    ],
Loading