Tencent / libpag

The official rendering library for PAG (Portable Animated Graphics) files that renders After Effects animations natively across multiple platforms.
https://pag.io
Other
5.02k stars 457 forks source link

pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) #2077

Closed Cuizhangqiang closed 9 months ago

Cuizhangqiang commented 10 months ago

libpag version 4.3.45 之前版本在iOS17上有crash,是这个: Fatal Exception: NSInternalInconsistencyException Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread. 升级了之后出现了以下的crash,但不是在iOS17上,当前看到的是iOS16,不确定和系统有没有关系哈,因为刚出现,数据还不是很多 Crashed: Thread 0 libsystem_platform.dylib 0x12a0 _platform_memset + 128 1 AppleMetalGLRenderer 0x3910 gldCreateContext 2 GLEngine 0x1998 gliCreateContextWithShared 3 OpenGLES 0x6534 -[EAGLContext commonInitWithAPI:properties:] + 324 4 OpenGLES 0x6254 -[EAGLContext initWithAPI:sharegroup:] + 84 5 CoreVideo 0x203ac CVOpenGLESContext::initWithContext(void) + 160 6 CoreVideo 0x2b5e8 CVOpenGLESTextureCache::initWithContext(void, CFDictionary const*, CFDictionary const) + 104 7 CoreVideo 0x2ca1c CVOpenGLESTextureCacheCreate + 156 8 libpag 0x11b5a0 pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 258016 9 libpag 0x11bb34 pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 259444 10 libpag 0x11b98c pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 259020 11 libpag 0xe8808 pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 49736 12 libpag 0xf4730 pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 98672 13 libpag 0xfb75c pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 127388 14 libpag 0xee794 pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 74196 15 libpag 0xfa778 pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 123320 16 libpag 0x7b710 pag::PAGSurface::draw(pag::RenderCache, std::__1::shared_ptr, pag::BackendSemaphore, bool) + 648 17 libpag 0x79440 pag::PAGPlayer::flushInternal(pag::BackendSemaphore) + 148 18 libpag 0x79368 pag::PAGPlayer::flush() + 140 19 libpag 0x5ec78 pag::FileAttributes::FileAttributes(pag::FileAttributes const&) + 188284 20 libpag 0x7391c pag::PAG::SDKVersion() + 4060 21 libpag 0x74580 pag::PAG::SDKVersion() + 7232 22 libpag 0x12eb70 pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 337328 23 libpag 0x12ef04 pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 338244 24 libpag 0x12f920 pag::PAGVideoDecoder::SetMaxHardwareDecoderCount(int) + 340832 25 libsystem_pthread.dylib 0x30ec _pthread_start + 116 26 libsystem_pthread.dylib 0x172c thread_start + 8

希望能协助排查,感谢🙏!

domchen commented 9 months ago

堆栈是错的,那几个函数之间并没有调用关系,检查一下是否来自免费版的Bugly,或者用于还原堆栈的符号版本错了。没有正确的堆栈看不出任何有效问题。这个先关闭了,还原出正确的堆栈信息可以重新开一个issue。