|
|
|
@ -63,7 +63,7 @@ static av_cold int msrle_decode_init(AVCodecContext *avctx) |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "unsupported bits per sample\n"); |
|
|
|
|
return -1; |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
s->frame.data[0] = NULL; |
|
|
|
@ -79,15 +79,16 @@ static int msrle_decode_frame(AVCodecContext *avctx, |
|
|
|
|
int buf_size = avpkt->size; |
|
|
|
|
MsrleContext *s = avctx->priv_data; |
|
|
|
|
int istride = FFALIGN(avctx->width*avctx->bits_per_coded_sample, 32) / 8; |
|
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
s->buf = buf; |
|
|
|
|
s->size = buf_size; |
|
|
|
|
|
|
|
|
|
s->frame.reference = 1; |
|
|
|
|
s->frame.buffer_hints = FF_BUFFER_HINTS_VALID | FF_BUFFER_HINTS_PRESERVE | FF_BUFFER_HINTS_REUSABLE; |
|
|
|
|
if (avctx->reget_buffer(avctx, &s->frame)) { |
|
|
|
|
if ((ret = avctx->reget_buffer(avctx, &s->frame)) < 0) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n"); |
|
|
|
|
return -1; |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (avctx->bits_per_coded_sample <= 8) { |
|
|
|
|