Use bufferpool@2.0

Use bufferpool2.0 instead of bufferpool 1.0 from CCodec

Change-Id: I842b6723e83eb537f2b2eea0f30a1f36f2b17fa9
gugelfrei
Sungtak Lee 6 years ago
parent 7f6f0fd000
commit d331808406

@ -282,7 +282,7 @@ std::atomic<std::uint32_t> Accessor::Impl::BufferPool::Invalidation::sInvSeqId(0
Accessor::Impl::Impl::BufferPool::~BufferPool() { Accessor::Impl::Impl::BufferPool::~BufferPool() {
std::lock_guard<std::mutex> lock(mMutex); std::lock_guard<std::mutex> lock(mMutex);
ALOGD("Destruction - bufferpool %p " ALOGD("Destruction - bufferpool2 %p "
"cached: %zu/%zuM, %zu/%d%% in use; " "cached: %zu/%zuM, %zu/%d%% in use; "
"allocs: %zu, %d%% recycled; " "allocs: %zu, %d%% recycled; "
"transfers: %zu, %d%% unfetced", "transfers: %zu, %d%% unfetced",
@ -353,12 +353,12 @@ void Accessor::Impl::BufferPool::Invalidation::onInvalidationRequest(
msgId = ++mInvalidationId; msgId = ++mInvalidationId;
} }
} }
ALOGV("bufferpool invalidation requested and queued"); ALOGV("bufferpool2 invalidation requested and queued");
if (left == 0) { if (left == 0) {
channel.postInvalidation(msgId, from, to); channel.postInvalidation(msgId, from, to);
} else { } else {
// TODO: sending hint message? // TODO: sending hint message?
ALOGV("bufferpool invalidation requested and pending"); ALOGV("bufferpoo2 invalidation requested and pending");
Pending pending(needsAck, from, to, left, impl); Pending pending(needsAck, from, to, left, impl);
mPendings.push_back(pending); mPendings.push_back(pending);
} }
@ -380,7 +380,7 @@ void Accessor::Impl::BufferPool::Invalidation::onHandleAck() {
// lost. // lost.
it->second = mInvalidationId; it->second = mInvalidationId;
} else { } else {
ALOGV("bufferpool observer died %lld", (long long)it->first); ALOGV("bufferpool2 observer died %lld", (long long)it->first);
deads.insert(it->first); deads.insert(it->first);
} }
} }
@ -682,7 +682,7 @@ void Accessor::Impl::BufferPool::cleanUp(bool clearCache) {
mLastCleanUpUs = mTimestampUs; mLastCleanUpUs = mTimestampUs;
if (mTimestampUs > mLastLogUs + kLogDurationUs) { if (mTimestampUs > mLastLogUs + kLogDurationUs) {
mLastLogUs = mTimestampUs; mLastLogUs = mTimestampUs;
ALOGD("bufferpool %p : %zu(%zu size) total buffers - " ALOGD("bufferpool2 %p : %zu(%zu size) total buffers - "
"%zu(%zu size) used buffers - %zu/%zu (recycle/alloc) - " "%zu(%zu size) used buffers - %zu/%zu (recycle/alloc) - "
"%zu/%zu (fetch/transfer)", "%zu/%zu (fetch/transfer)",
this, mStats.mBuffersCached, mStats.mSizeCached, this, mStats.mBuffersCached, mStats.mSizeCached,
@ -703,7 +703,7 @@ void Accessor::Impl::BufferPool::cleanUp(bool clearCache) {
freeIt = mFreeBuffers.erase(freeIt); freeIt = mFreeBuffers.erase(freeIt);
} else { } else {
++freeIt; ++freeIt;
ALOGW("bufferpool inconsistent!"); ALOGW("bufferpool2 inconsistent!");
} }
} }
} }
@ -722,7 +722,7 @@ void Accessor::Impl::BufferPool::invalidate(
freeIt = mFreeBuffers.erase(freeIt); freeIt = mFreeBuffers.erase(freeIt);
continue; continue;
} else { } else {
ALOGW("bufferpool inconsistent!"); ALOGW("bufferpool2 inconsistent!");
} }
} }
++freeIt; ++freeIt;

@ -811,7 +811,7 @@ ResultStatus BufferPoolClient::getAccessor(sp<IAccessor> *accessor) {
} }
void BufferPoolClient::receiveInvalidation(uint32_t msgId) { void BufferPoolClient::receiveInvalidation(uint32_t msgId) {
ALOGV("bufferpool client recv inv %u", msgId); ALOGV("bufferpool2 client recv inv %u", msgId);
if (isValid()) { if (isValid()) {
mImpl->receiveInvalidation(msgId); mImpl->receiveInvalidation(msgId);
} }

@ -24,7 +24,7 @@ cc_library {
"android.hardware.graphics.bufferqueue@1.0", "android.hardware.graphics.bufferqueue@1.0",
"android.hardware.graphics.common@1.0", "android.hardware.graphics.common@1.0",
"android.hardware.media@1.0", "android.hardware.media@1.0",
"android.hardware.media.bufferpool@1.0", "android.hardware.media.bufferpool@2.0",
"android.hardware.media.c2@1.0", "android.hardware.media.c2@1.0",
"android.hardware.media.omx@1.0", "android.hardware.media.omx@1.0",
"libbase", "libbase",
@ -35,7 +35,7 @@ cc_library {
"libhidltransport", "libhidltransport",
"libhwbinder", "libhwbinder",
"liblog", "liblog",
"libstagefright_bufferpool@1.0", "libstagefright_bufferpool@2.0",
"libstagefright_bufferqueue_helper", "libstagefright_bufferqueue_helper",
"libui", "libui",
"libutils", "libutils",
@ -49,7 +49,7 @@ cc_library {
"android.hardware.media.c2@1.0", "android.hardware.media.c2@1.0",
"libcodec2", "libcodec2",
"libhidlbase", "libhidlbase",
"libstagefright_bufferpool@1.0", "libstagefright_bufferpool@2.0",
"libstagefright_bufferqueue_helper", "libstagefright_bufferqueue_helper",
"libui", "libui",
], ],

@ -410,7 +410,7 @@ Component::Component(
const std::shared_ptr<C2Component>& component, const std::shared_ptr<C2Component>& component,
const sp<IComponentListener>& listener, const sp<IComponentListener>& listener,
const sp<ComponentStore>& store, const sp<ComponentStore>& store,
const sp<::android::hardware::media::bufferpool::V1_0:: const sp<::android::hardware::media::bufferpool::V2_0::
IClientManager>& clientPoolManager) : IClientManager>& clientPoolManager) :
Configurable(new CachedConfigurable( Configurable(new CachedConfigurable(
std::make_unique<CompIntf>(component->intf()))), std::make_unique<CompIntf>(component->intf()))),

@ -57,7 +57,7 @@ namespace utils {
using namespace ::android; using namespace ::android;
using ::android::GraphicBufferSource; using ::android::GraphicBufferSource;
using namespace ::android::hardware::media::bufferpool::V1_0::implementation; using namespace ::android::hardware::media::bufferpool::V2_0::implementation;
namespace /* unnamed */ { namespace /* unnamed */ {

@ -20,7 +20,7 @@
#include <codec2/hidl/1.0/Configurable.h> #include <codec2/hidl/1.0/Configurable.h>
#include <codec2/hidl/1.0/types.h> #include <codec2/hidl/1.0/types.h>
#include <android/hardware/media/bufferpool/1.0/IClientManager.h> #include <android/hardware/media/bufferpool/2.0/IClientManager.h>
#include <android/hardware/media/c2/1.0/IComponentListener.h> #include <android/hardware/media/c2/1.0/IComponentListener.h>
#include <android/hardware/media/c2/1.0/IComponentStore.h> #include <android/hardware/media/c2/1.0/IComponentStore.h>
#include <android/hardware/media/c2/1.0/IComponent.h> #include <android/hardware/media/c2/1.0/IComponent.h>
@ -71,7 +71,7 @@ struct Component : public Configurable<IComponent> {
const std::shared_ptr<C2Component>&, const std::shared_ptr<C2Component>&,
const sp<IComponentListener>& listener, const sp<IComponentListener>& listener,
const sp<ComponentStore>& store, const sp<ComponentStore>& store,
const sp<::android::hardware::media::bufferpool::V1_0:: const sp<::android::hardware::media::bufferpool::V2_0::
IClientManager>& clientPoolManager); IClientManager>& clientPoolManager);
c2_status_t status() const; c2_status_t status() const;

@ -20,7 +20,7 @@
#include <codec2/hidl/1.0/Component.h> #include <codec2/hidl/1.0/Component.h>
#include <codec2/hidl/1.0/Configurable.h> #include <codec2/hidl/1.0/Configurable.h>
#include <android/hardware/media/c2/1.0/IComponentStore.h> #include <android/hardware/media/c2/1.0/IComponentStore.h>
#include <android/hardware/media/bufferpool/1.0/IClientManager.h> #include <android/hardware/media/bufferpool/2.0/IClientManager.h>
#include <hidl/Status.h> #include <hidl/Status.h>
#include <C2Component.h> #include <C2Component.h>
@ -40,7 +40,7 @@ namespace c2 {
namespace V1_0 { namespace V1_0 {
namespace utils { namespace utils {
using ::android::hardware::media::bufferpool::V1_0::IClientManager; using ::android::hardware::media::bufferpool::V2_0::IClientManager;
using ::android::hardware::hidl_array; using ::android::hardware::hidl_array;
using ::android::hardware::hidl_handle; using ::android::hardware::hidl_handle;

@ -20,8 +20,8 @@
#include <chrono> #include <chrono>
#include <bufferpool/ClientManager.h> #include <bufferpool/ClientManager.h>
#include <android/hardware/media/bufferpool/1.0/IClientManager.h> #include <android/hardware/media/bufferpool/2.0/IClientManager.h>
#include <android/hardware/media/bufferpool/1.0/types.h> #include <android/hardware/media/bufferpool/2.0/types.h>
#include <android/hardware/media/c2/1.0/IComponentStore.h> #include <android/hardware/media/c2/1.0/IComponentStore.h>
#include <android/hardware/media/c2/1.0/types.h> #include <android/hardware/media/c2/1.0/types.h>
#include <gui/IGraphicBufferProducer.h> #include <gui/IGraphicBufferProducer.h>
@ -46,7 +46,7 @@ using ::android::hardware::hidl_string;
using ::android::hardware::hidl_vec; using ::android::hardware::hidl_vec;
using ::android::status_t; using ::android::status_t;
using ::android::sp; using ::android::sp;
using ::android::hardware::media::bufferpool::V1_0::implementation:: using ::android::hardware::media::bufferpool::V2_0::implementation::
ConnectionId; ConnectionId;
using ::android::IGraphicBufferProducer; using ::android::IGraphicBufferProducer;
@ -131,9 +131,9 @@ c2_status_t objcpy(
// Abstract class to be used in // Abstract class to be used in
// objcpy(std::list<std::unique_ptr<C2Work>> -> WorkBundle). // objcpy(std::list<std::unique_ptr<C2Work>> -> WorkBundle).
struct BufferPoolSender { struct BufferPoolSender {
typedef ::android::hardware::media::bufferpool::V1_0:: typedef ::android::hardware::media::bufferpool::V2_0::
ResultStatus ResultStatus; ResultStatus ResultStatus;
typedef ::android::hardware::media::bufferpool::V1_0:: typedef ::android::hardware::media::bufferpool::V2_0::
BufferStatusMessage BufferStatusMessage; BufferStatusMessage BufferStatusMessage;
typedef ::android::hardware::media::bufferpool:: typedef ::android::hardware::media::bufferpool::
BufferPoolData BufferPoolData; BufferPoolData BufferPoolData;
@ -151,7 +151,7 @@ struct BufferPoolSender {
* other means so it can call receive() properly. * other means so it can call receive() properly.
* \return ResultStatus value that determines the success of the operation. * \return ResultStatus value that determines the success of the operation.
* (See the possible values of ResultStatus in * (See the possible values of ResultStatus in
* hardware/interfaces/media/bufferpool/1.0/types.hal.) * hardware/interfaces/media/bufferpool/2.0/types.hal.)
*/ */
virtual ResultStatus send( virtual ResultStatus send(
const std::shared_ptr<BufferPoolData>& bpData, const std::shared_ptr<BufferPoolData>& bpData,
@ -168,9 +168,9 @@ struct BufferPoolSender {
// IClientManager::registerSender() to establish the bufferpool connection when // IClientManager::registerSender() to establish the bufferpool connection when
// send() is called. // send() is called.
struct DefaultBufferPoolSender : BufferPoolSender { struct DefaultBufferPoolSender : BufferPoolSender {
typedef ::android::hardware::media::bufferpool::V1_0::implementation:: typedef ::android::hardware::media::bufferpool::V2_0::implementation::
ClientManager ClientManager; ClientManager ClientManager;
typedef ::android::hardware::media::bufferpool::V1_0:: typedef ::android::hardware::media::bufferpool::V2_0::
IClientManager IClientManager; IClientManager IClientManager;
// Set the IClientManager instance of the receiving process and the refresh // Set the IClientManager instance of the receiving process and the refresh
@ -278,7 +278,7 @@ c2_status_t updateParamsFromBlob(
* \param BufferPool status * \param BufferPool status
* \return Corresponding c2_status_t * \return Corresponding c2_status_t
*/ */
c2_status_t toC2Status(::android::hardware::media::bufferpool::V1_0:: c2_status_t toC2Status(::android::hardware::media::bufferpool::V2_0::
ResultStatus rs); ResultStatus rs);
// BufferQueue-Based Block Operations // BufferQueue-Based Block Operations

@ -49,11 +49,11 @@ namespace utils {
using namespace ::android; using namespace ::android;
using ::android::hardware::Return; using ::android::hardware::Return;
using ::android::hardware::media::bufferpool::BufferPoolData; using ::android::hardware::media::bufferpool::BufferPoolData;
using ::android::hardware::media::bufferpool::V1_0::BufferStatusMessage; using ::android::hardware::media::bufferpool::V2_0::BufferStatusMessage;
using ::android::hardware::media::bufferpool::V1_0::ResultStatus; using ::android::hardware::media::bufferpool::V2_0::ResultStatus;
using ::android::hardware::media::bufferpool::V1_0::implementation:: using ::android::hardware::media::bufferpool::V2_0::implementation::
ClientManager; ClientManager;
using ::android::hardware::media::bufferpool::V1_0::implementation:: using ::android::hardware::media::bufferpool::V2_0::implementation::
TransactionId; TransactionId;
using ::android::TWGraphicBufferProducer; using ::android::TWGraphicBufferProducer;

@ -7,7 +7,7 @@ cc_library {
shared_libs: [ shared_libs: [
"android.hardware.graphics.bufferqueue@1.0", "android.hardware.graphics.bufferqueue@1.0",
"android.hardware.media.bufferpool@1.0", "android.hardware.media.bufferpool@2.0",
"android.hardware.media.c2@1.0", "android.hardware.media.c2@1.0",
"libbase", "libbase",
"libbinder", "libbinder",
@ -19,7 +19,7 @@ cc_library {
"libhidlbase", "libhidlbase",
"libhidltransport", "libhidltransport",
"liblog", "liblog",
"libstagefright_bufferpool@1.0", "libstagefright_bufferpool@2.0",
"libstagefright_bufferqueue_helper", "libstagefright_bufferqueue_helper",
"libui", "libui",
"libutils", "libutils",

@ -34,7 +34,7 @@
#include <media/stagefright/bqhelper/WGraphicBufferProducer.h> #include <media/stagefright/bqhelper/WGraphicBufferProducer.h>
#undef LOG #undef LOG
#include <android/hardware/media/bufferpool/1.0/IClientManager.h> #include <android/hardware/media/bufferpool/2.0/IClientManager.h>
#include <android/hardware/media/c2/1.0/IComponent.h> #include <android/hardware/media/c2/1.0/IComponent.h>
#include <android/hardware/media/c2/1.0/IComponentInterface.h> #include <android/hardware/media/c2/1.0/IComponentInterface.h>
#include <android/hardware/media/c2/1.0/IComponentListener.h> #include <android/hardware/media/c2/1.0/IComponentListener.h>
@ -55,8 +55,8 @@ using ::android::TWGraphicBufferProducer;
using namespace ::android::hardware::media::c2::V1_0; using namespace ::android::hardware::media::c2::V1_0;
using namespace ::android::hardware::media::c2::V1_0::utils; using namespace ::android::hardware::media::c2::V1_0::utils;
using namespace ::android::hardware::media::bufferpool::V1_0; using namespace ::android::hardware::media::bufferpool::V2_0;
using namespace ::android::hardware::media::bufferpool::V1_0::implementation; using namespace ::android::hardware::media::bufferpool::V2_0::implementation;
namespace /* unnamed */ { namespace /* unnamed */ {

@ -85,9 +85,9 @@ namespace android {
namespace hardware { namespace hardware {
namespace media { namespace media {
namespace bufferpool { namespace bufferpool {
namespace V1_0 { namespace V2_0 {
struct IClientManager; struct IClientManager;
} // namespace V1_0 } // namespace V2_0
} // namespace bufferpool } // namespace bufferpool
} // namespace media } // namespace media
} // namespace hardware } // namespace hardware
@ -237,7 +237,7 @@ protected:
mutable std::vector<std::unique_ptr<std::vector<std::string>>> mutable std::vector<std::unique_ptr<std::vector<std::string>>>
mAliasesBuffer; mAliasesBuffer;
sp<::android::hardware::media::bufferpool::V1_0::IClientManager> sp<::android::hardware::media::bufferpool::V2_0::IClientManager>
mHostPoolManager; mHostPoolManager;
}; };

@ -35,7 +35,7 @@ cc_library_shared {
export_shared_lib_headers: [ export_shared_lib_headers: [
"libbase", "libbase",
"android.hardware.media.bufferpool@1.0", "android.hardware.media.bufferpool@2.0",
], ],
local_include_dirs: [ local_include_dirs: [
@ -51,7 +51,7 @@ cc_library_shared {
"android.hardware.graphics.allocator@2.0", "android.hardware.graphics.allocator@2.0",
"android.hardware.graphics.bufferqueue@1.0", "android.hardware.graphics.bufferqueue@1.0",
"android.hardware.graphics.mapper@2.0", "android.hardware.graphics.mapper@2.0",
"android.hardware.media.bufferpool@1.0", "android.hardware.media.bufferpool@2.0",
"libbase", "libbase",
"libbinder", "libbinder",
"libcutils", "libcutils",
@ -63,7 +63,7 @@ cc_library_shared {
"liblog", "liblog",
"libstagefright_bufferqueue_helper", "libstagefright_bufferqueue_helper",
"libstagefright_foundation", "libstagefright_foundation",
"libstagefright_bufferpool@1.0", "libstagefright_bufferpool@2.0",
"libui", "libui",
"libutils", "libutils",
], ],

@ -33,12 +33,12 @@ namespace {
using android::C2AllocatorGralloc; using android::C2AllocatorGralloc;
using android::C2AllocatorIon; using android::C2AllocatorIon;
using android::hardware::media::bufferpool::BufferPoolData; using android::hardware::media::bufferpool::BufferPoolData;
using android::hardware::media::bufferpool::V1_0::ResultStatus; using android::hardware::media::bufferpool::V2_0::ResultStatus;
using android::hardware::media::bufferpool::V1_0::implementation::BufferPoolAllocation; using android::hardware::media::bufferpool::V2_0::implementation::BufferPoolAllocation;
using android::hardware::media::bufferpool::V1_0::implementation::BufferPoolAllocator; using android::hardware::media::bufferpool::V2_0::implementation::BufferPoolAllocator;
using android::hardware::media::bufferpool::V1_0::implementation::ClientManager; using android::hardware::media::bufferpool::V2_0::implementation::ClientManager;
using android::hardware::media::bufferpool::V1_0::implementation::ConnectionId; using android::hardware::media::bufferpool::V2_0::implementation::ConnectionId;
using android::hardware::media::bufferpool::V1_0::implementation::INVALID_CONNECTIONID; using android::hardware::media::bufferpool::V2_0::implementation::INVALID_CONNECTIONID;
// This anonymous namespace contains the helper classes that allow our implementation to create // This anonymous namespace contains the helper classes that allow our implementation to create
// block/buffer objects. // block/buffer objects.

@ -20,7 +20,7 @@
#include <functional> #include <functional>
#include <C2Buffer.h> #include <C2Buffer.h>
#include <android/hardware/media/bufferpool/1.0/IAccessor.h> #include <android/hardware/media/bufferpool/2.0/IAccessor.h>
class C2BasicLinearBlockPool : public C2BlockPool { class C2BasicLinearBlockPool : public C2BlockPool {
public: public:
@ -112,7 +112,7 @@ public:
* \return true IAcessor is writen successfully. * \return true IAcessor is writen successfully.
* \return false IAccessor is not written. * \return false IAccessor is not written.
*/ */
bool getAccessor(android::sp<android::hardware::media::bufferpool::V1_0::IAccessor> *accessor); bool getAccessor(android::sp<android::hardware::media::bufferpool::V2_0::IAccessor> *accessor);
private: private:
const std::shared_ptr<C2Allocator> mAllocator; const std::shared_ptr<C2Allocator> mAllocator;

Loading…
Cancel
Save