* Zip Motion Blocks Video (ZMBV) encoder
* Copyright (c) 2006 Konstantin Shishkov
*
- * 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 libavcodec/zmbvenc.c
+ * @file
* Zip Motion Blocks Video encoder
*/
* XXX should be optimized and moved to DSPContext
* TODO handle out of edge ME
*/
-static inline int block_cmp(uint8_t *src, int stride, uint8_t *src2, int stride2, int bw, int bh, int *xored)
+static inline int block_cmp(uint8_t *src, int stride, uint8_t *src2, int stride2,
+ int bw, int bh, int *xored)
{
int sum = 0;
int i, j;
- uint8_t histogram[256]={0};
+ uint8_t histogram[256] = {0};
*xored = 0;
for(j = 0; j < bh; j++){
src2 += stride2;
}
- for(i=1; i<256; i++)
- sum+= score_tab[histogram[i]];
+ for(i = 1; i < 256; i++)
+ sum += score_tab[histogram[i]];
return sum;
}
/** Motion estimation function
* TODO make better ME decisions
*/
-static int zmbv_me(ZmbvEncContext *c, uint8_t *src, int sstride, uint8_t *prev, int pstride,
- int x, int y, int *mx, int *my, int *xored)
+static int zmbv_me(ZmbvEncContext *c, uint8_t *src, int sstride, uint8_t *prev,
+ int pstride, int x, int y, int *mx, int *my, int *xored)
{
int dx, dy, tx, ty, tv, bv, bw, bh;
if(c->curfrm == c->keyint)
c->curfrm = 0;
*p = *pict;
- p->pict_type= keyframe ? FF_I_TYPE : FF_P_TYPE;
+ p->pict_type= keyframe ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P;
p->key_frame= keyframe;
chpal = !keyframe && memcmp(p->data[1], c->pal2, 1024);
int x, y, bh2, bw2, xored;
uint8_t *tsrc, *tprev;
uint8_t *mv;
- int mx, my, bv;
+ int mx, my;
bw = (avctx->width + ZMBV_BLOCK - 1) / ZMBV_BLOCK;
bh = (avctx->height + ZMBV_BLOCK - 1) / ZMBV_BLOCK;
tsrc = src + x;
tprev = prev + x;
- bv = zmbv_me(c, tsrc, p->linesize[0], tprev, c->pstride, x, y, &mx, &my, &xored);
+ zmbv_me(c, tsrc, p->linesize[0], tprev, c->pstride, x, y, &mx, &my, &xored);
mv[0] = (mx << 1) | !!xored;
mv[1] = my << 1;
tprev += mx + my * c->pstride;
return 0;
}
-AVCodec zmbv_encoder = {
- "zmbv",
- CODEC_TYPE_VIDEO,
- CODEC_ID_ZMBV,
- sizeof(ZmbvEncContext),
- encode_init,
- encode_frame,
- encode_end,
+AVCodec ff_zmbv_encoder = {
+ .name = "zmbv",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = CODEC_ID_ZMBV,
+ .priv_data_size = sizeof(ZmbvEncContext),
+ .init = encode_init,
+ .encode = encode_frame,
+ .close = encode_end,
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_PAL8, PIX_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("Zip Motion Blocks Video"),
};