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

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

Merge "MediaCodec refactoring part 1-a: buffers become separate class"

parents e540c9a1 4273dd03
Loading
Loading
Loading
Loading
+7 −5
Original line number Original line Diff line number Diff line
@@ -32,6 +32,7 @@
#include <gui/Surface.h>
#include <gui/Surface.h>


#include <media/ICrypto.h>
#include <media/ICrypto.h>
#include <media/MediaCodecBuffer.h>
#include <media/stagefright/MediaCodec.h>
#include <media/stagefright/MediaCodec.h>
#include <media/stagefright/foundation/ABuffer.h>
#include <media/stagefright/foundation/ABuffer.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/ADebug.h>
@@ -407,7 +408,7 @@ status_t JMediaCodec::getOutputFormat(JNIEnv *env, size_t index, jobject *format


status_t JMediaCodec::getBuffers(
status_t JMediaCodec::getBuffers(
        JNIEnv *env, bool input, jobjectArray *bufArray) const {
        JNIEnv *env, bool input, jobjectArray *bufArray) const {
    Vector<sp<ABuffer> > buffers;
    Vector<sp<MediaCodecBuffer> > buffers;


    status_t err =
    status_t err =
        input
        input
@@ -425,7 +426,7 @@ status_t JMediaCodec::getBuffers(
    }
    }


    for (size_t i = 0; i < buffers.size(); ++i) {
    for (size_t i = 0; i < buffers.size(); ++i) {
        const sp<ABuffer> &buffer = buffers.itemAt(i);
        const sp<MediaCodecBuffer> &buffer = buffers.itemAt(i);


        jobject byteBuffer = NULL;
        jobject byteBuffer = NULL;
        err = createByteBufferFromABuffer(
        err = createByteBufferFromABuffer(
@@ -446,8 +447,9 @@ status_t JMediaCodec::getBuffers(
}
}


// static
// static
template <typename T>
status_t JMediaCodec::createByteBufferFromABuffer(
status_t JMediaCodec::createByteBufferFromABuffer(
        JNIEnv *env, bool readOnly, bool clearBuffer, const sp<ABuffer> &buffer,
        JNIEnv *env, bool readOnly, bool clearBuffer, const sp<T> &buffer,
        jobject *buf) const {
        jobject *buf) const {
    // if this is an ABuffer that doesn't actually hold any accessible memory,
    // if this is an ABuffer that doesn't actually hold any accessible memory,
    // use a null ByteBuffer
    // use a null ByteBuffer
@@ -492,7 +494,7 @@ status_t JMediaCodec::createByteBufferFromABuffer(


status_t JMediaCodec::getBuffer(
status_t JMediaCodec::getBuffer(
        JNIEnv *env, bool input, size_t index, jobject *buf) const {
        JNIEnv *env, bool input, size_t index, jobject *buf) const {
    sp<ABuffer> buffer;
    sp<MediaCodecBuffer> buffer;


    status_t err =
    status_t err =
        input
        input
@@ -509,7 +511,7 @@ status_t JMediaCodec::getBuffer(


status_t JMediaCodec::getImage(
status_t JMediaCodec::getImage(
        JNIEnv *env, bool input, size_t index, jobject *buf) const {
        JNIEnv *env, bool input, size_t index, jobject *buf) const {
    sp<ABuffer> buffer;
    sp<MediaCodecBuffer> buffer;


    status_t err =
    status_t err =
        input
        input
+2 −1
Original line number Original line Diff line number Diff line
@@ -146,8 +146,9 @@ private:


    status_t mInitStatus;
    status_t mInitStatus;


    template <typename T>
    status_t createByteBufferFromABuffer(
    status_t createByteBufferFromABuffer(
            JNIEnv *env, bool readOnly, bool clearBuffer, const sp<ABuffer> &buffer,
            JNIEnv *env, bool readOnly, bool clearBuffer, const sp<T> &buffer,
            jobject *buf) const;
            jobject *buf) const;


    void cacheJavaObjects(JNIEnv *env);
    void cacheJavaObjects(JNIEnv *env);