* RL2 Video Decoder
* Copyright (C) 2008 Sascha Sommer (saschasommer@freenet.de)
*
- * This file is part of FFmpeg.
+ * This file is part of Libav.
*
- * FFmpeg is free software; you can redistribute it and/or
+ * Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
- * FFmpeg is distributed in the hope that it will be useful,
+ * Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
+ * License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
+ * @file
* RL2 Video Decoder
- * @file rl2.c
* @author Sascha Sommer (saschasommer@freenet.de)
- * For more information about the RL2 format, visit:
- * http://wiki.multimedia.cx/index.php?title=RL2
+ * @see http://wiki.multimedia.cx/index.php?title=RL2
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
+#include "libavutil/intreadwrite.h"
#include "avcodec.h"
/**
* Run Length Decode a single 320x200 frame
* @param s rl2 context
- * @param buf input buffer
+ * @param in input buffer
* @param size input buffer size
* @param out ouput buffer
* @param stride stride of the output buffer
const unsigned char* back_frame = s->back_frame;
const unsigned char* in_end = in + size;
const unsigned char* out_end = out + stride * s->avctx->height;
- unsigned char* line_end = out + s->avctx->width;
+ unsigned char* line_end;
/** copy start of the background frame */
for(i=0;i<=base_y;i++){
}
-/**
- * Decode a single frame
- * @param avctx decoder context
- * @param data decoded frame
- * @param data_size size of the decoded frame
- * @param buf input buffer
- * @param buf_size input buffer size
- * @return 0 success, -1 on error
- */
static int rl2_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
Rl2Context *s = avctx->priv_data;
if(s->frame.data[0])
}
-AVCodec rl2_decoder = {
- "rl2",
- CODEC_TYPE_VIDEO,
- CODEC_ID_RL2,
- sizeof(Rl2Context),
- rl2_decode_init,
- NULL,
- rl2_decode_end,
- rl2_decode_frame,
- CODEC_CAP_DR1,
+AVCodec ff_rl2_decoder = {
+ .name = "rl2",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = CODEC_ID_RL2,
+ .priv_data_size = sizeof(Rl2Context),
+ .init = rl2_decode_init,
+ .close = rl2_decode_end,
+ .decode = rl2_decode_frame,
+ .capabilities = CODEC_CAP_DR1,
+ .long_name = NULL_IF_CONFIG_SMALL("RL2 video"),
};
-