summaryrefslogtreecommitdiff
path: root/libavcodec/flashsvenc.c
diff options
context:
space:
mode:
authorDiego Biurrun <diego@biurrun.de>2011-04-24 14:47:54 +0200
committerDiego Biurrun <diego@biurrun.de>2011-04-25 01:50:07 +0200
commit293fe6da01b6cb2f85c6551553ed765a7408ca23 (patch)
tree4e7994de000f1cac5b129d5cf87c1f9d8eff2aee /libavcodec/flashsvenc.c
parent2441003d3fdc01545690c2f397efd7acfd876d6c (diff)
cosmetics: K&R coding style and more whitespace for Flash Screen Video
Diffstat (limited to 'libavcodec/flashsvenc.c')
-rw-r--r--libavcodec/flashsvenc.c127
1 files changed, 67 insertions, 60 deletions
diff --git a/libavcodec/flashsvenc.c b/libavcodec/flashsvenc.c
index 2a12d0e472..86e77aaff7 100644
--- a/libavcodec/flashsvenc.c
+++ b/libavcodec/flashsvenc.c
@@ -65,32 +65,33 @@
typedef struct FlashSVContext {
AVCodecContext *avctx;
- uint8_t *previous_frame;
- AVFrame frame;
- int image_width, image_height;
- int block_width, block_height;
- uint8_t* tmpblock;
- uint8_t* encbuffer;
- int block_size;
- z_stream zstream;
- int last_key_frame;
+ uint8_t *previous_frame;
+ AVFrame frame;
+ int image_width, image_height;
+ int block_width, block_height;
+ uint8_t *tmpblock;
+ uint8_t *encbuffer;
+ int block_size;
+ z_stream zstream;
+ int last_key_frame;
} FlashSVContext;
-static int copy_region_enc(uint8_t *sptr, uint8_t *dptr,
- int dx, int dy, int h, int w, int stride, uint8_t *pfptr) {
- int i,j;
+static int copy_region_enc(uint8_t *sptr, uint8_t *dptr, int dx, int dy,
+ int h, int w, int stride, uint8_t *pfptr)
+{
+ int i, j;
uint8_t *nsptr;
uint8_t *npfptr;
int diff = 0;
- for (i = dx+h; i > dx; i--) {
- nsptr = sptr+(i*stride)+dy*3;
- npfptr = pfptr+(i*stride)+dy*3;
- for (j=0 ; j<w*3 ; j++) {
- diff |=npfptr[j]^nsptr[j];
- dptr[j] = nsptr[j];
+ for (i = dx + h; i > dx; i--) {
+ nsptr = sptr + (i * stride) + dy * 3;
+ npfptr = pfptr + (i * stride) + dy * 3;
+ for (j = 0; j < w * 3; j++) {
+ diff |= npfptr[j] ^ nsptr[j];
+ dptr[j] = nsptr[j];
}
- dptr += w*3;
+ dptr += w * 3;
}
if (diff)
return 1;
@@ -111,13 +112,13 @@ static av_cold int flashsv_encode_init(AVCodecContext *avctx)
// Needed if zlib unused or init aborted before deflateInit
memset(&(s->zstream), 0, sizeof(z_stream));
- s->last_key_frame=0;
+ s->last_key_frame = 0;
- s->image_width = avctx->width;
+ s->image_width = avctx->width;
s->image_height = avctx->height;
- s->tmpblock = av_mallocz(3*256*256);
- s->encbuffer = av_mallocz(s->image_width*s->image_height*3);
+ s->tmpblock = av_mallocz(3 * 256 * 256);
+ s->encbuffer = av_mallocz(s->image_width * s->image_height * 3);
if (!s->tmpblock || !s->encbuffer) {
av_log(avctx, AV_LOG_ERROR, "Memory allocation failed.\n");
@@ -128,64 +129,67 @@ static av_cold int flashsv_encode_init(AVCodecContext *avctx)
}
-static int encode_bitstream(FlashSVContext *s, AVFrame *p, uint8_t *buf, int buf_size,
- int block_width, int block_height, uint8_t *previous_frame, int* I_frame) {
+static int encode_bitstream(FlashSVContext *s, AVFrame *p, uint8_t *buf,
+ int buf_size, int block_width, int block_height,
+ uint8_t *previous_frame, int *I_frame)
+{
PutBitContext pb;
int h_blocks, v_blocks, h_part, v_part, i, j;
int buf_pos, res;
int pred_blocks = 0;
- init_put_bits(&pb, buf, buf_size*8);
+ init_put_bits(&pb, buf, buf_size * 8);
- put_bits(&pb, 4, (block_width/16)-1);
+ put_bits(&pb, 4, (block_width / 16) - 1);
put_bits(&pb, 12, s->image_width);
- put_bits(&pb, 4, (block_height/16)-1);
+ put_bits(&pb, 4, (block_height / 16) - 1);
put_bits(&pb, 12, s->image_height);
flush_put_bits(&pb);
- buf_pos=4;
+ buf_pos = 4;
- h_blocks = s->image_width / block_width;
- h_part = s->image_width % block_width;
+ h_blocks = s->image_width / block_width;
+ h_part = s->image_width % block_width;
v_blocks = s->image_height / block_height;
- v_part = s->image_height % block_height;
+ v_part = s->image_height % block_height;
/* loop over all block columns */
- for (j = 0; j < v_blocks + (v_part?1:0); j++)
- {
+ for (j = 0; j < v_blocks + (v_part ? 1 : 0); j++) {
- int hp = j*block_height; // horiz position in frame
- int hs = (j<v_blocks)?block_height:v_part; // size of block
+ int hp = j * block_height; // horiz position in frame
+ int hs = (j < v_blocks) ? block_height : v_part; // size of block
/* loop over all block rows */
- for (i = 0; i < h_blocks + (h_part?1:0); i++)
- {
- int wp = i*block_width; // vert position in frame
- int ws = (i<h_blocks)?block_width:h_part; // size of block
- int ret=Z_OK;
+ for (i = 0; i < h_blocks + (h_part ? 1 : 0); i++) {
+ int wp = i * block_width; // vert position in frame
+ int ws = (i < h_blocks) ? block_width : h_part; // size of block
+ int ret = Z_OK;
uint8_t *ptr;
- ptr = buf+buf_pos;
+ ptr = buf + buf_pos;
- //copy the block to the temp buffer before compression (if it differs from the previous frame's block)
- res = copy_region_enc(p->data[0], s->tmpblock, s->image_height-(hp+hs+1), wp, hs, ws, p->linesize[0], previous_frame);
+ /* copy the block to the temp buffer before compression
+ * (if it differs from the previous frame's block) */
+ res = copy_region_enc(p->data[0], s->tmpblock,
+ s->image_height - (hp + hs + 1),
+ wp, hs, ws, p->linesize[0], previous_frame);
if (res || *I_frame) {
unsigned long zsize;
- zsize = 3*block_width*block_height;
- ret = compress2(ptr+2, &zsize, s->tmpblock, 3*ws*hs, 9);
+ zsize = 3 * block_width * block_height;
+ ret = compress2(ptr + 2, &zsize, s->tmpblock, 3 * ws * hs, 9);
//ret = deflateReset(&(s->zstream));
if (ret != Z_OK)
av_log(s->avctx, AV_LOG_ERROR, "error while compressing block %dx%d\n", i, j);
- bytestream_put_be16(&ptr,(unsigned int)zsize);
- buf_pos += zsize+2;
+ bytestream_put_be16(&ptr, (unsigned int) zsize);
+ buf_pos += zsize + 2;
//av_log(avctx, AV_LOG_ERROR, "buf_pos = %d\n", buf_pos);
} else {
pred_blocks++;
- bytestream_put_be16(&ptr,0);
+ bytestream_put_be16(&ptr, 0);
buf_pos += 2;
}
}
@@ -200,7 +204,8 @@ static int encode_bitstream(FlashSVContext *s, AVFrame *p, uint8_t *buf, int buf
}
-static int flashsv_encode_frame(AVCodecContext *avctx, uint8_t *buf, int buf_size, void *data)
+static int flashsv_encode_frame(AVCodecContext *avctx, uint8_t *buf,
+ int buf_size, void *data)
{
FlashSVContext * const s = avctx->priv_data;
AVFrame *pict = data;
@@ -214,7 +219,7 @@ static int flashsv_encode_frame(AVCodecContext *avctx, uint8_t *buf, int buf_siz
/* First frame needs to be a keyframe */
if (avctx->frame_number == 0) {
- s->previous_frame = av_mallocz(FFABS(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;
@@ -223,7 +228,7 @@ static int flashsv_encode_frame(AVCodecContext *avctx, uint8_t *buf, int buf_siz
}
if (p->linesize[0] < 0)
- pfptr = s->previous_frame - ((s->image_height-1) * p->linesize[0]);
+ pfptr = s->previous_frame - ((s->image_height - 1) * p->linesize[0]);
else
pfptr = s->previous_frame;
@@ -234,29 +239,31 @@ static int flashsv_encode_frame(AVCodecContext *avctx, uint8_t *buf, int buf_siz
}
}
- opt_w=4;
- opt_h=4;
+ opt_w = 4;
+ opt_h = 4;
if (buf_size < s->image_width*s->image_height*3) {
//Conservative upper bound check for compressed data
- av_log(avctx, AV_LOG_ERROR, "buf_size %d < %d\n", buf_size, s->image_width*s->image_height*3);
+ av_log(avctx, AV_LOG_ERROR, "buf_size %d < %d\n",
+ buf_size, s->image_width * s->image_height * 3);
return -1;
}
- res = encode_bitstream(s, p, buf, buf_size, opt_w*16, opt_h*16, pfptr, &I_frame);
+ res = encode_bitstream(s, p, buf, buf_size, opt_w * 16, opt_h * 16, pfptr, &I_frame);
//save the current frame
- if(p->linesize[0] > 0)
- memcpy(s->previous_frame, p->data[0], s->image_height*p->linesize[0]);
+ 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*FFABS(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) {
p->pict_type = FF_I_TYPE;
p->key_frame = 1;
s->last_key_frame = avctx->frame_number;
- av_log(avctx, AV_LOG_DEBUG, "Inserting key frame at frame %d\n",avctx->frame_number);
+ av_log(avctx, AV_LOG_DEBUG, "Inserting key frame at frame %d\n", avctx->frame_number);
} else {
p->pict_type = FF_P_TYPE;
p->key_frame = 0;