bigcat88/pillow_heif

crash during encoding when using with cv2 [macOS]

zhou13 opened this issue · 2 comments

Describe the bug

This program will crash on my iMac:

Steps/Code to Reproduce

from PIL import Image
import cv2
from pillow_heif import register_heif_opener


register_heif_opener()

with Image.open("10003860486.jpg") as img:
    img.load()
img.save("2.heic")

Expected Results

No crash

Actual Results

    10739 segmentation fault 

I am on Mac. Note that if I remove the line import cv2, or if I move it after from pillow_heif import register_heif_opener, then the program runs normally.

Versions

{'version': {'libheif': '1.14.2', 'x265': 'x265 HEVC encoder (3.4+31-6722fce1f)', 'aom': 'AOMedia Project AV1 Encoder 3.5.0'}, 'decoders': {'HEVC': 1, 'AV1': 1, 'AVC': 0}, 'encoders': {'HEVC': 1, 'AV1': 1, 'AVC': 0}}

WOW o_0... Thanks for the issue.

Exception occurs in x265 library, somewhere near x265::Search::codeIntraLumaQT. Looks like the only way to understand is to build all libraries in debug mode and trace with Xcode - will try to do that when will have time for this.

Affected only arm64 build for Apple and affected all versions(tested down to 0.8.0).
Linux, Windows, macOS Intel - works fine.