|
|
|
@ -31,7 +31,7 @@ static av_cold int decode_init(AVCodecContext *avctx) |
|
|
|
|
{ |
|
|
|
|
if (avctx->width & 1) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "v210 needs even width\n"); |
|
|
|
|
return -1; |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
} |
|
|
|
|
avctx->pix_fmt = AV_PIX_FMT_YUV422P10; |
|
|
|
|
avctx->bits_per_raw_sample = 10; |
|
|
|
@ -46,7 +46,7 @@ static av_cold int decode_init(AVCodecContext *avctx) |
|
|
|
|
static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, |
|
|
|
|
AVPacket *avpkt) |
|
|
|
|
{ |
|
|
|
|
int h, w; |
|
|
|
|
int h, w, ret; |
|
|
|
|
AVFrame *pic = avctx->coded_frame; |
|
|
|
|
const uint8_t *psrc = avpkt->data; |
|
|
|
|
uint16_t *y, *u, *v; |
|
|
|
@ -58,12 +58,12 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, |
|
|
|
|
|
|
|
|
|
if (avpkt->size < stride * avctx->height) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "packet too small\n"); |
|
|
|
|
return -1; |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pic->reference = 0; |
|
|
|
|
if (ff_get_buffer(avctx, pic) < 0) |
|
|
|
|
return -1; |
|
|
|
|
if ((ret = ff_get_buffer(avctx, pic)) < 0) |
|
|
|
|
return ret; |
|
|
|
|
|
|
|
|
|
y = (uint16_t*)pic->data[0]; |
|
|
|
|
u = (uint16_t*)pic->data[1]; |
|
|
|
|