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

Commit 814bc366 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6450912 from e066d7c8 to mainline-release

Change-Id: If71679e80d740a55cadf7fbe71498e40f2b0a48f
parents 184de6ad e066d7c8
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -143,6 +143,11 @@ status_t BnCameraClient::onTransact(
            if (data.dataAvail() > 0) {
                metadata = new camera_frame_metadata_t;
                metadata->number_of_faces = data.readInt32();
                if (metadata->number_of_faces <= 0 ||
                        metadata->number_of_faces > (int32_t)(INT32_MAX / sizeof(camera_face_t))) {
                    ALOGE("%s: Too large face count: %d", __FUNCTION__, metadata->number_of_faces);
                    return BAD_VALUE;
                }
                metadata->faces = (camera_face_t *) data.readInplace(
                        sizeof(camera_face_t) * metadata->number_of_faces);
            }

media/TEST_MAPPING

0 → 100644
+32 −0
Original line number Diff line number Diff line
{
  "presubmit": [
    {
      "name": "GtsMediaTestCases",
      "options" : [
        {
          "include-annotation": "android.platform.test.annotations.Presubmit"
        },
        {
          "include-filter": "com.google.android.media.gts.WidevineGenericOpsTests"
        }
      ]
    },
    {
      "name": "GtsExoPlayerTestCases",
      "options" : [
        {
          "include-annotation": "android.platform.test.annotations.SocPresubmit"
        },
        {
          "include-filter": "com.google.android.exoplayer.gts.DashTest#testWidevine23FpsH264Fixed"
        }
      ]
    }
  ],
  "imports": [
    {
      "path": "frameworks/av/drm/mediadrm/plugins"
    }
  ]
}
+1 −1
Original line number Diff line number Diff line
@@ -330,7 +330,7 @@ class Codec2ComponentInputTests
TEST_P(Codec2ComponentInputTests, InputBufferTest) {
    description("Tests for different inputs");

    uint32_t flags = std::stol(std::get<2>(GetParam()));
    uint32_t flags = std::stoul(std::get<2>(GetParam()));
    bool isNullBuffer = !std::get<3>(GetParam()).compare("true");
    if (isNullBuffer)
        ALOGD("Testing for null input buffer with flag : %u", flags);
+3 −2
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@
#include <media/stagefright/MediaCodecConstants.h>
#include <media/stagefright/SkipCutBuffer.h>
#include <media/MediaCodecBuffer.h>
#include <mediadrm/ICrypto.h>
#include <system/window.h>

#include "CCodecBufferChannel.h"
@@ -1084,7 +1085,7 @@ status_t CCodecBufferChannel::start(
                // TODO: handle this without going into array mode
                forceArrayMode = true;
            } else {
                input->buffers.reset(new GraphicInputBuffers(numInputSlots, mName));
                input->buffers.reset(new GraphicInputBuffers(mName));
            }
        } else {
            if (hasCryptoOrDescrambler()) {
@@ -1252,7 +1253,7 @@ status_t CCodecBufferChannel::start(
            if (outputSurface || !buffersBoundToCodec) {
                output->buffers.reset(new GraphicOutputBuffers(mName));
            } else {
                output->buffers.reset(new RawGraphicOutputBuffers(numOutputSlots, mName));
                output->buffers.reset(new RawGraphicOutputBuffers(mName));
            }
        } else {
            output->buffers.reset(new LinearOutputBuffers(mName));
+21 −9
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/MediaCodecConstants.h>
#include <media/stagefright/SkipCutBuffer.h>
#include <mediadrm/ICrypto.h>

#include "CCodecBuffers.h"

@@ -121,6 +122,11 @@ sp<Codec2Buffer> InputBuffers::cloneAndReleaseBuffer(const sp<MediaCodecBuffer>

// OutputBuffers

OutputBuffers::OutputBuffers(const char *componentName, const char *name)
    : CCodecBuffers(componentName, name) { }

OutputBuffers::~OutputBuffers() = default;

void OutputBuffers::initSkipCutBuffer(
        int32_t delay, int32_t padding, int32_t sampleRate, int32_t channelCount) {
    CHECK(mSkipCutBuffer == nullptr);
@@ -171,8 +177,11 @@ void OutputBuffers::setSkipCutBuffer(int32_t skip, int32_t cut) {

// LocalBufferPool

std::shared_ptr<LocalBufferPool> LocalBufferPool::Create(size_t poolCapacity) {
    return std::shared_ptr<LocalBufferPool>(new LocalBufferPool(poolCapacity));
constexpr size_t kInitialPoolCapacity = kMaxLinearBufferSize;
constexpr size_t kMaxPoolCapacity = kMaxLinearBufferSize * 32;

std::shared_ptr<LocalBufferPool> LocalBufferPool::Create() {
    return std::shared_ptr<LocalBufferPool>(new LocalBufferPool(kInitialPoolCapacity));
}

sp<ABuffer> LocalBufferPool::newBuffer(size_t capacity) {
@@ -192,6 +201,11 @@ sp<ABuffer> LocalBufferPool::newBuffer(size_t capacity) {
            mUsedSize -= mPool.back().capacity();
            mPool.pop_back();
        }
        while (mUsedSize + capacity > mPoolCapacity && mPoolCapacity * 2 <= kMaxPoolCapacity) {
            ALOGD("Increasing local buffer pool capacity from %zu to %zu",
                  mPoolCapacity, mPoolCapacity * 2);
            mPoolCapacity *= 2;
        }
        if (mUsedSize + capacity > mPoolCapacity) {
            ALOGD("mUsedSize = %zu, capacity = %zu, mPoolCapacity = %zu",
                    mUsedSize, capacity, mPoolCapacity);
@@ -777,11 +791,10 @@ sp<Codec2Buffer> GraphicMetadataInputBuffers::createNewBuffer() {
// GraphicInputBuffers

GraphicInputBuffers::GraphicInputBuffers(
        size_t numInputSlots, const char *componentName, const char *name)
        const char *componentName, const char *name)
    : InputBuffers(componentName, name),
      mImpl(mName),
      mLocalBufferPool(LocalBufferPool::Create(
              kMaxLinearBufferSize * numInputSlots)) { }
      mLocalBufferPool(LocalBufferPool::Create()) { }

bool GraphicInputBuffers::requestNewBuffer(size_t *index, sp<MediaCodecBuffer> *buffer) {
    sp<Codec2Buffer> newBuffer = createNewBuffer();
@@ -942,7 +955,7 @@ void OutputBuffersArray::realloc(const std::shared_ptr<C2Buffer> &c2buffer) {
        case C2BufferData::GRAPHIC: {
            // This is only called for RawGraphicOutputBuffers.
            mAlloc = [format = mFormat,
                      lbp = LocalBufferPool::Create(kMaxLinearBufferSize * mImpl.arraySize())] {
                      lbp = LocalBufferPool::Create()] {
                return ConstGraphicBlockBuffer::AllocateEmpty(
                        format,
                        [lbp](size_t capacity) {
@@ -1079,10 +1092,9 @@ std::function<sp<Codec2Buffer>()> GraphicOutputBuffers::getAlloc() {
// RawGraphicOutputBuffers

RawGraphicOutputBuffers::RawGraphicOutputBuffers(
        size_t numOutputSlots, const char *componentName, const char *name)
        const char *componentName, const char *name)
    : FlexOutputBuffers(componentName, name),
      mLocalBufferPool(LocalBufferPool::Create(
              kMaxLinearBufferSize * numOutputSlots)) { }
      mLocalBufferPool(LocalBufferPool::Create()) { }

sp<Codec2Buffer> RawGraphicOutputBuffers::wrap(const std::shared_ptr<C2Buffer> &buffer) {
    if (buffer == nullptr) {
Loading