/* Encoding development sponsored by http://fh-campuswien.ac.at */
/**
- * @file flashsvenc.c
+ * @file libavcodec/flashsvenc.c
* Flash Screen Video encoder
* @author Alex Beregszaszi
* @author Benjamin Larsson
#include <zlib.h>
#include "avcodec.h"
-#include "bitstream.h"
+#include "put_bits.h"
#include "bytestream.h"
return 0;
}
-static int flashsv_encode_init(AVCodecContext *avctx)
+static av_cold int flashsv_encode_init(AVCodecContext *avctx)
{
FlashSVContext *s = avctx->priv_data;
return -1;
}
- if (avcodec_check_dimensions(avctx, avctx->width, avctx->height) < 0) {
- return -1;
- }
-
// Needed if zlib unused or init aborted before deflateInit
memset(&(s->zstream), 0, sizeof(z_stream));
/* First frame needs to be a keyframe */
if (avctx->frame_number == 0) {
- s->previous_frame = av_mallocz(abs(p->linesize[0])*s->image_height);
+ s->previous_frame = av_mallocz(FFABS(p->linesize[0])*s->image_height);
if (!s->previous_frame) {
av_log(avctx, AV_LOG_ERROR, "Memory allocation failed.\n");
return -1;
if(p->linesize[0] > 0)
memcpy(s->previous_frame, p->data[0], s->image_height*p->linesize[0]);
else
- memcpy(s->previous_frame, p->data[0] + p->linesize[0] * (s->image_height-1), s->image_height*abs(p->linesize[0]));
+ memcpy(s->previous_frame, p->data[0] + p->linesize[0] * (s->image_height-1), s->image_height*FFABS(p->linesize[0]));
//mark the frame type so the muxer can mux it correctly
if (I_frame) {
return res;
}
-static int flashsv_encode_end(AVCodecContext *avctx)
+static av_cold int flashsv_encode_end(AVCodecContext *avctx)
{
FlashSVContext *s = avctx->priv_data;
flashsv_encode_init,
flashsv_encode_frame,
flashsv_encode_end,
- .pix_fmts = (enum PixelFormat[]){PIX_FMT_BGR24, -1},
+ .pix_fmts = (const enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_NONE},
+ .long_name = NULL_IF_CONFIG_SMALL("Flash Screen Video"),
};