Fix r10k codec for widths that are not multiples of 64.

Fixes ticket #1358
pull/59/head
Carl Eugen Hoyos 13 years ago
parent 77cea13f05
commit 5cd947d81b
  1. 3
      libavcodec/r210dec.c
  2. 3
      libavcodec/r210enc.c

@ -41,7 +41,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
int h, w; int h, w;
AVFrame *pic = avctx->coded_frame; AVFrame *pic = avctx->coded_frame;
const uint32_t *src = (const uint32_t *)avpkt->data; const uint32_t *src = (const uint32_t *)avpkt->data;
int aligned_width = FFALIGN(avctx->width, 64); int aligned_width = FFALIGN(avctx->width,
avctx->codec_id == CODEC_ID_R10K ? 1 : 64);
uint8_t *dst_line; uint8_t *dst_line;
if (pic->data[0]) if (pic->data[0])

@ -38,7 +38,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
const AVFrame *pic, int *got_packet) const AVFrame *pic, int *got_packet)
{ {
int i, j, ret; int i, j, ret;
int aligned_width = FFALIGN(avctx->width, 64); int aligned_width = FFALIGN(avctx->width,
avctx->codec_id == CODEC_ID_R10K ? 1 : 64);
int pad = (aligned_width - avctx->width) * 4; int pad = (aligned_width - avctx->width) * 4;
uint8_t *src_line; uint8_t *src_line;
uint8_t *dst; uint8_t *dst;

Loading…
Cancel
Save