> > Does anything go wrong if you unconditionally add comp->offset / (depth / > 8)?
Yes. Occasionally there is a depth value less than 8: [opencl_get_plane_format] depth is 2 < 8 for format: rgb8 on plane: 0 [AVHWDeviceContext @ _] Format yuva420p supported. [opencl_get_plane_format] depth is 5 < 8 for format: rgb565be on plane: 0 [opencl_get_plane_format] depth is 5 < 8 for format: rgb565le on plane: 0 Which causes an FPE (divide-by-zero). If I throw in an if statement to weed out those cases, that method of calculating the number results in the following output: [AVHWDeviceContext @ _] Maximum supported image size 16384x16384. [opencl_get_plane_format] order_num: 1, pixel_format: yuv420p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuv420p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuv420p, plane: 2 [AVHWDeviceContext @ _] Format yuv420p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuv422p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuv422p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuv422p, plane: 2 [AVHWDeviceContext @ _] Format yuv422p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuv444p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuv444p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuv444p, plane: 2 [AVHWDeviceContext @ _] Format yuv444p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuv410p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuv410p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuv410p, plane: 2 [AVHWDeviceContext @ _] Format yuv410p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuv411p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuv411p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuv411p, plane: 2 [AVHWDeviceContext @ _] Format yuv411p supported. [opencl_get_plane_format] order_num: 1, pixel_format: gray, plane: 0 [AVHWDeviceContext @ _] Format gray supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuvj420p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj420p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj420p, plane: 2 [AVHWDeviceContext @ _] Format yuvj420p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuvj422p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj422p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj422p, plane: 2 [AVHWDeviceContext @ _] Format yuvj422p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuvj444p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj444p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj444p, plane: 2 [AVHWDeviceContext @ _] Format yuvj444p supported. [opencl_get_plane_format] order_num: 1, pixel_format: nv12, plane: 0 [opencl_get_plane_format] order_num: 12, pixel_format: nv12, plane: 1 [AVHWDeviceContext @ _] Format nv12 supported. [opencl_get_plane_format] order_num: 1, pixel_format: nv21, plane: 0 [opencl_get_plane_format] order_num: 21, pixel_format: nv21, plane: 1 [opencl_get_plane_format] order_num: 2341, pixel_format: argb, plane: 0 [opencl_get_plane_format] order_num: 1234, pixel_format: rgba, plane: 0 [AVHWDeviceContext @ _] Format rgba supported. [opencl_get_plane_format] order_num: 4321, pixel_format: abgr, plane: 0 [opencl_get_plane_format] order_num: 3214, pixel_format: bgra, plane: 0 [AVHWDeviceContext @ _] Format bgra supported. [opencl_get_plane_format] order_num: 1, pixel_format: gray16le, plane: 0 [AVHWDeviceContext @ _] Format gray16le supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuv440p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuv440p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuv440p, plane: 2 [AVHWDeviceContext @ _] Format yuv440p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuvj440p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj440p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj440p, plane: 2 [AVHWDeviceContext @ _] Format yuvj440p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuva420p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuva420p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuva420p, plane: 2 [opencl_get_plane_format] order_num: 1, pixel_format: yuva420p, plane: 3 [AVHWDeviceContext @ _] Format yuva420p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuv420p16le, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuv420p16le, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuv420p16le, plane: 2 [AVHWDeviceContext @ _] Format yuv420p16le supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuv422p16le, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuv422p16le, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuv422p16le, plane: 2 [AVHWDeviceContext @ _] Format yuv422p16le supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuv444p16le, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuv444p16le, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuv444p16le, plane: 2 [AVHWDeviceContext @ _] Format yuv444p16le supported. [opencl_get_plane_format] order_num: 12, pixel_format: ya8, plane: 0 [AVHWDeviceContext @ _] Format ya8 supported. [opencl_get_plane_format] order_num: 1, pixel_format: gbrp, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: gbrp, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: gbrp, plane: 2 [AVHWDeviceContext @ _] Format gbrp supported. [opencl_get_plane_format] order_num: 1, pixel_format: gbrp16le, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: gbrp16le, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: gbrp16le, plane: 2 [AVHWDeviceContext @ _] Format gbrp16le supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuva422p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuva422p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuva422p, plane: 2 [opencl_get_plane_format] order_num: 1, pixel_format: yuva422p, plane: 3 [AVHWDeviceContext @ _] Format yuva422p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuva444p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuva444p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuva444p, plane: 2 [opencl_get_plane_format] order_num: 1, pixel_format: yuva444p, plane: 3 [AVHWDeviceContext @ _] Format yuva444p supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuva420p16le, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuva420p16le, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuva420p16le, plane: 2 [opencl_get_plane_format] order_num: 1, pixel_format: yuva420p16le, plane: 3 [AVHWDeviceContext @ _] Format yuva420p16le supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuva422p16le, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuva422p16le, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuva422p16le, plane: 2 [opencl_get_plane_format] order_num: 1, pixel_format: yuva422p16le, plane: 3 [AVHWDeviceContext @ _] Format yuva422p16le supported. [opencl_get_plane_format] order_num: 1, pixel_format: yuva444p16le, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuva444p16le, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuva444p16le, plane: 2 [opencl_get_plane_format] order_num: 1, pixel_format: yuva444p16le, plane: 3 [AVHWDeviceContext @ _] Format yuva444p16le supported. [opencl_get_plane_format] order_num: 1, pixel_format: nv16, plane: 0 [opencl_get_plane_format] order_num: 12, pixel_format: nv16, plane: 1 [AVHWDeviceContext @ _] Format nv16 supported. [opencl_get_plane_format] order_num: 1234, pixel_format: rgba64le, plane: 0 [AVHWDeviceContext @ _] Format rgba64le supported. [opencl_get_plane_format] order_num: 3214, pixel_format: bgra64le, plane: 0 [opencl_get_plane_format] order_num: 12, pixel_format: ya16le, plane: 0 [AVHWDeviceContext @ _] Format ya16le supported. [opencl_get_plane_format] order_num: 1, pixel_format: gbrap, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: gbrap, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: gbrap, plane: 2 [opencl_get_plane_format] order_num: 1, pixel_format: gbrap, plane: 3 [AVHWDeviceContext @ _] Format gbrap supported. [opencl_get_plane_format] order_num: 1, pixel_format: gbrap16le, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: gbrap16le, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: gbrap16le, plane: 2 [opencl_get_plane_format] order_num: 1, pixel_format: gbrap16le, plane: 3 [AVHWDeviceContext @ _] Format gbrap16le supported. [opencl_get_plane_format] order_num: 234, pixel_format: 0rgb, plane: 0 [opencl_get_plane_format] order_num: 123, pixel_format: rgb0, plane: 0 [opencl_get_plane_format] order_num: 432, pixel_format: 0bgr, plane: 0 [opencl_get_plane_format] order_num: 321, pixel_format: bgr0, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj411p, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj411p, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: yuvj411p, plane: 2 [AVHWDeviceContext @ _] Format yuvj411p supported. [opencl_get_plane_format] order_num: 2341, pixel_format: ayuv64le, plane: 0 [opencl_get_plane_format] order_num: 1, pixel_format: p010le, plane: 0 [opencl_get_plane_format] order_num: 13, pixel_format: p010le, plane: 1 [opencl_get_plane_format] order_num: 1, pixel_format: p016le, plane: 0 [opencl_get_plane_format] order_num: 12, pixel_format: p016le, plane: 1 [AVHWDeviceContext @ _] Format p016le supported. This is mostly fine, but it looks like nv21, ayuv64le, and p010le are all having their order numbers changed to broken values. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".