when i use pixelBuffer in decoder callback, will happen crash sometimes
iOS16 CVPixelBufferLockBaseAddress crash
CVBufferRef pixel_buffer = CVBufferRetain(frame->opaque);
if (CVPixelBufferLockBaseAddress(pixel_buffer, kCVPixelBufferLock_ReadOnly) != kCVReturnSuccess) {
return -1;
}
overlay->pixels[0] = CVPixelBufferGetBaseAddressOfPlane(pixel_buffer, 0);
overlay->pixels[1] = CVPixelBufferGetBaseAddressOfPlane(pixel_buffer, 1);
overlay->pitches[0] = CVPixelBufferGetWidthOfPlane(pixel_buffer, 0);
overlay->pitches[1] = CVPixelBufferGetWidthOfPlane(pixel_buffer, 1);
overlay->bytesPerRow[0] = CVPixelBufferGetBytesPerRowOfPlane(pixel_buffer, 0);
overlay->bytesPerRow[1] = CVPixelBufferGetBytesPerRowOfPlane(pixel_buffer, 1);
CVPixelBufferUnlockBaseAddress(pixel_buffer, kCVPixelBufferLock_ReadOnly);
CoreVideo`CVPixelBufferLockBaseAddress:
0x1dc4bbc4c <+0>: pacibsp
0x1dc4bbc50 <+4>: stp x20, x19, [sp, #-0x20]!
0x1dc4bbc54 <+8>: stp x29, x30, [sp, #0x10]
0x1dc4bbc58 <+12>: add x29, sp, #0x10
0x1dc4bbc5c <+16>: mov x20, x1
0x1dc4bbc60 <+20>: mov x19, x0
0x1dc4bbc64 <+24>: bl 0x1dc4a706c ; _getCVPixelBuffer(__CVBuffer*)
0x1dc4bbc68 <+28>: cbz x0, 0x1dc4bbcc8 ; <+124>
0x1dc4bbc6c <+32>: ldr x0, [x0, #0x80]
-> 0x1dc4bbc70 <+36>: ldr x16, [x0] // EXC_BAD_ACCESS (code=1, address=0x0)
0x1dc4bbc74 <+40>: mov x17, x0
0x1dc4bbc78 <+44>: movk x17, #0x42ce, lsl #48
0x1dc4bbc7c <+48>: autda x16, x17
0x1dc4bbc80 <+52>: mov x17, #0x198
0x1dc4bbc84 <+56>: add x16, x16, x17
0x1dc4bbc88 <+60>: ldr x8, [x16]
0x1dc4bbc8c <+64>: mov x9, x16
0x1dc4bbc90 <+68>: mov x1, x20
0x1dc4bbc94 <+72>: mov x17, x9
0x1dc4bbc98 <+76>: movk x17, #0xe7dc, lsl #48
0x1dc4bbc9c <+80>: blraa x8, x17
0x1dc4bbca0 <+84>: cmp w0, #0x0
0x1dc4bbca4 <+88>: ccmp x20, #0x1, #0x4, eq
0x1dc4bbca8 <+92>: b.eq 0x1dc4bbccc ; <+128>
0x1dc4bbcac <+96>: adrp x8, 212075
0x1dc4bbcb0 <+100>: add x8, x8, #0x358 ; kCVPixelBufferExtendedPixelsFilledKey
0x1dc4bbcb4 <+104>: ldr x1, [x8]
0x1dc4bbcb8 <+108>: mov x0, x19
0x1dc4bbcbc <+112>: bl 0x1dc4bbbbc ; CVBufferRemoveAttachment
0x1dc4bbcc0 <+116>: mov w0, #0x0
0x1dc4bbcc4 <+120>: b 0x1dc4bbccc ; <+128>
0x1dc4bbcc8 <+124>: mov w0, #-0x1a05
0x1dc4bbccc <+128>: ldp x29, x30, [sp, #0x10]
0x1dc4bbcd0 <+132>: ldp x20, x19, [sp], #0x20
0x1dc4bbcd4 <+136>: retab