mirror of
https://github.com/Evolution-X-Devices/device_xiaomi_sdm710-common
synced 2026-02-01 07:57:25 +00:00
Commit 992496bd2e ("Allow creating child surfaces from
BlastBufferQueue") added 3rd parameter to Surface::Surface
constructor that causes an unresolved symbol in existing blobs.
Provide a shim library with implementation of older Surface
constructor for lib-imsvidcodec.so that references the mentioned
symbol. Class constructor is a function with thiscall calling
convention so to preserve ABI we have to provide a C-function with
pointer as first parameter (that is hidden in C++) and return that
pointer from the function.
Resolves:
E ims_media_jni: Error loading library lib-imsvt.so: dlopen failed: cannot locate symbol "_ZN7android7SurfaceC1ERKNS_2spINS_22IGraphicBufferProducerEEEb" referenced by "/system/system_ext/lib64/lib-imsvideocodec.so"
Signed-off-by: Ivan Vecera <ivan@cera.cz>
Change-Id: I91abeabb07cac8553ee548e507a949e929590995
21 lines
712 B
C++
21 lines
712 B
C++
#include <gui/IGraphicBufferProducer.h>
|
|
|
|
using namespace android;
|
|
|
|
extern "C" {
|
|
|
|
// Surface::Surface(sp<const IGraphicBufferProducer>&, bool, const sp<IBinder>&)
|
|
void* _ZN7android7SurfaceC1ERKNS_2spINS_22IGraphicBufferProducerEEEbRKNS1_INS_7IBinderEEE(
|
|
void*, const sp<IGraphicBufferProducer>&, bool, const sp<IBinder>&);
|
|
|
|
// Surface::Surface(const sp<IGraphicBufferProducer>&, bool)
|
|
void* _ZN7android7SurfaceC1ERKNS_2spINS_22IGraphicBufferProducerEEEb(
|
|
void* _this, const sp<IGraphicBufferProducer>& bufferProducer,
|
|
bool controlledByApp)
|
|
{
|
|
return _ZN7android7SurfaceC1ERKNS_2spINS_22IGraphicBufferProducerEEEbRKNS1_INS_7IBinderEEE(
|
|
_this, bufferProducer, controlledByApp, nullptr);
|
|
}
|
|
|
|
}
|