+#define READ_PLANE(dst, plane, b, c) \
+{ \
+ x = 0; \
+ for (; CACHED_BITSTREAM_READER && x < width-c && get_bits_left(&gb) > 0;) {\
+ ret = get_vlc_multi(&gb, (uint8_t *)dst + x * b, multi, \
+ vlc, vlc_bits, 3); \
+ if (ret <= 0) \
+ return AVERROR_INVALIDDATA; \
+ x += ret; \
+ } \
+ for (; x < width && get_bits_left(&gb) > 0; x++) \
+ dst[x] = get_vlc2(&gb, vlc, vlc_bits, 3); \
+ dst += stride; \
+}
+