#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
+#include "decode.h"
#include "internal.h"
#include "libvpx.h"
#include "profiles.h"
struct vpx_image *img, *img_alpha;
int ret;
uint8_t *side_data = NULL;
- int side_data_size = 0;
+ int side_data_size;
ret = decode_frame(avctx, &ctx->decoder, avpkt->data, avpkt->size);
if (ret)
return ret;
}
+ if (ctx->has_alpha_channel &&
+ (img->d_w != img_alpha->d_w ||
+ img->d_h != img_alpha->d_h ||
+ img->bit_depth != img_alpha->bit_depth)) {
+ av_log(avctx, AV_LOG_ERROR,
+ "Video dimensions %dx%d@%dbpc differ from alpha dimensions %dx%d@%dbpc\n",
+ img->d_w, img->d_h, img->bit_depth,
+ img_alpha->d_w, img_alpha->d_h, img_alpha->bit_depth);
+ return AVERROR_INVALIDDATA;
+ }
+
planes[0] = img->planes[VPX_PLANE_Y];
planes[1] = img->planes[VPX_PLANE_U];
planes[2] = img->planes[VPX_PLANE_V];