*/
/**
- * @file flashsv.c
+ * @file libavcodec/flashsv.c
* Flash Screen Video decoder
* @author Alex Beregszaszi
* @author Benjamin Larsson
#include <stdio.h>
#include <stdlib.h>
-#include "common.h"
#include "avcodec.h"
-#include "bitstream.h"
+#include "get_bits.h"
-#ifdef CONFIG_ZLIB
#include <zlib.h>
typedef struct FlashSVContext {
}
-static int flashsv_decode_init(AVCodecContext *avctx)
+static av_cold int flashsv_decode_init(AVCodecContext *avctx)
{
- FlashSVContext *s = (FlashSVContext *)avctx->priv_data;
+ FlashSVContext *s = avctx->priv_data;
int zret; // Zlib return code
s->avctx = avctx;
return 1;
}
avctx->pix_fmt = PIX_FMT_BGR24;
- avctx->has_b_frames = 0;
s->frame.data[0] = NULL;
return 0;
static int flashsv_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
- FlashSVContext *s = (FlashSVContext *)avctx->priv_data;
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
+ FlashSVContext *s = avctx->priv_data;
int h_blocks, v_blocks, h_part, v_part, i, j;
GetBitContext gb;
ret = inflate(&(s->zstream), Z_FINISH);
if (ret == Z_DATA_ERROR)
{
- av_log(avctx, AV_LOG_ERROR, "Zlib resync occured\n");
+ av_log(avctx, AV_LOG_ERROR, "Zlib resync occurred\n");
inflateSync(&(s->zstream));
ret = inflate(&(s->zstream), Z_FINISH);
}
/* return -1; */
}
copy_region(s->tmpblock, s->frame.data[0], s->image_height-(hp+hs+1), wp, hs, ws, s->frame.linesize[0]);
- skip_bits(&gb, 8*size); /* skip the consumed bits */
+ skip_bits_long(&gb, 8*size); /* skip the consumed bits */
}
}
}
}
-static int flashsv_decode_end(AVCodecContext *avctx)
+static av_cold int flashsv_decode_end(AVCodecContext *avctx)
{
- FlashSVContext *s = (FlashSVContext *)avctx->priv_data;
+ FlashSVContext *s = avctx->priv_data;
inflateEnd(&(s->zstream));
/* release the frame if needed */
if (s->frame.data[0])
flashsv_decode_end,
flashsv_decode_frame,
CODEC_CAP_DR1,
- .pix_fmts = (enum PixelFormat[]){PIX_FMT_BGR24, -1},
+ .pix_fmts = (enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_NONE},
+ .long_name = NULL_IF_CONFIG_SMALL("Flash Screen Video v1"),
};
-#endif //CONFIG_ZLIB