s->avctx=avctx;
switch (avctx->pix_fmt) {
-/* case PIX_FMT_RGB555:
+ case PIX_FMT_RGB555BE:
s->pixel_size = 2;
- break;*/
+ break;
case PIX_FMT_RGB24:
s->pixel_size = 3;
break;
+ case PIX_FMT_ARGB:
+ s->pixel_size = 4;
+ break;
default:
av_log(avctx, AV_LOG_ERROR, "Unsupported colorspace.\n");
break;
int temp_cost;
int j;
- uint8_t *this_line = p-> data[0] + line*p->linesize[0] + (width - 1)*s->pixel_size;
- uint8_t *prev_line = s->previous_frame.data[0] + line*p->linesize[0] + (width - 1)*s->pixel_size;
+ uint8_t *this_line = p-> data[0] + line*p-> linesize[0] +
+ (width - 1)*s->pixel_size;
+ uint8_t *prev_line = s->previous_frame.data[0] + line*s->previous_frame.linesize[0] +
+ (width - 1)*s->pixel_size;
s->length_table[width] = 0;
skipcount = 0;
i=0;
this_line = p-> data[0] + line*p->linesize[0];
- prev_line = s->previous_frame.data[0] + line*p->linesize[0];
if (s->rlecode_table[0] == 0) {
bytestream_put_byte(buf, s->skip_table[0] + 1);
uint8_t *orig_buf = buf;
if (!s->frame.key_frame) {
+ unsigned line_size = s->avctx->width * s->pixel_size;
for (start_line = 0; start_line < s->avctx->height; start_line++)
if (memcmp(p->data[0] + start_line*p->linesize[0],
- s->previous_frame.data[0] + start_line*p->linesize[0],
- p->linesize[0]))
+ s->previous_frame.data[0] + start_line*s->previous_frame.linesize[0],
+ line_size))
break;
for (end_line=s->avctx->height; end_line > start_line; end_line--)
if (memcmp(p->data[0] + (end_line - 1)*p->linesize[0],
- s->previous_frame.data[0] + (end_line - 1)*p->linesize[0],
- p->linesize[0]))
+ s->previous_frame.data[0] + (end_line - 1)*s->previous_frame.linesize[0],
+ line_size))
break;
}
AVCodec qtrle_encoder = {
"qtrle",
- CODEC_TYPE_VIDEO,
+ AVMEDIA_TYPE_VIDEO,
CODEC_ID_QTRLE,
sizeof(QtrleEncContext),
qtrle_encode_init,
qtrle_encode_frame,
qtrle_encode_end,
- .pix_fmts = (enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_NONE},
+ .pix_fmts = (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB555BE, PIX_FMT_ARGB, PIX_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("QuickTime Animation (RLE) video"),
};