]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/zmbvenc.c
Get rid of unnecessary pointer casts.
[ffmpeg] / libavcodec / zmbvenc.c
index fac5b9997142bf9687d5e48663237d6cc550efb4..04e86235ac64a5de214b09a982e2454052366417 100644 (file)
@@ -31,7 +31,6 @@
 #include "common.h"
 #include "avcodec.h"
 
-#ifdef CONFIG_ZLIB
 #include <zlib.h>
 
 #define ZMBV_KEYFRAME 1
@@ -81,17 +80,19 @@ static inline int block_cmp(uint8_t *src, int stride, uint8_t *src2, int stride2
 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 dx, dy, tx, ty, tv, bv;
+    int dx, dy, tx, ty, tv, bv, bw, bh;
 
     *mx = *my = 0;
-    bv = block_cmp(src, sstride, prev, pstride, ZMBV_BLOCK, ZMBV_BLOCK);
+    bw = FFMIN(ZMBV_BLOCK, c->avctx->width - x);
+    bh = FFMIN(ZMBV_BLOCK, c->avctx->height - y);
+    bv = block_cmp(src, sstride, prev, pstride, bw, bh);
     if(!bv) return 0;
-    for(ty = FFMAX(y - c->range, 0); ty < FFMIN(y + c->range, c->avctx->height - ZMBV_BLOCK); ty++){
-        for(tx = FFMAX(x - c->range, 0); tx < FFMIN(x + c->range, c->avctx->width - ZMBV_BLOCK); tx++){
+    for(ty = FFMAX(y - c->range, 0); ty < FFMIN(y + c->range, c->avctx->height - bh); ty++){
+        for(tx = FFMAX(x - c->range, 0); tx < FFMIN(x + c->range, c->avctx->width - bw); tx++){
             if(tx == x && ty == y) continue; // we already tested this block
             dx = tx - x;
             dy = ty - y;
-            tv = block_cmp(src, sstride, prev + dx + dy*pstride, pstride, ZMBV_BLOCK, ZMBV_BLOCK);
+            tv = block_cmp(src, sstride, prev + dx + dy*pstride, pstride, bw, bh);
             if(tv < bv){
                  bv = tv;
                  *mx = dx;
@@ -105,7 +106,7 @@ static int zmbv_me(ZmbvEncContext *c, uint8_t *src, int sstride, uint8_t *prev,
 
 static int encode_frame(AVCodecContext *avctx, uint8_t *buf, int buf_size, void *data)
 {
-    ZmbvEncContext * const c = (ZmbvEncContext *)avctx->priv_data;
+    ZmbvEncContext * const c = avctx->priv_data;
     AVFrame *pict = data;
     AVFrame * const p = &c->pic;
     uint8_t *src, *prev;
@@ -119,7 +120,7 @@ static int encode_frame(AVCodecContext *avctx, uint8_t *buf, int buf_size, void
     int i, j;
 
     keyframe = !c->curfrm;
-    c->curfrm = c->curfrm++;
+    c->curfrm++;
     if(c->curfrm == c->keyint)
         c->curfrm = 0;
     *p = *pict;
@@ -238,7 +239,7 @@ static int encode_frame(AVCodecContext *avctx, uint8_t *buf, int buf_size, void
  */
 static int encode_init(AVCodecContext *avctx)
 {
-    ZmbvEncContext * const c = (ZmbvEncContext *)avctx->priv_data;
+    ZmbvEncContext * const c = avctx->priv_data;
     int zret; // Zlib return code
     int lvl = 9;
 
@@ -300,11 +301,11 @@ static int encode_init(AVCodecContext *avctx)
 
 
 /**
- * Uninit zmbv decoder
+ * Uninit zmbv encoder
  */
 static int encode_end(AVCodecContext *avctx)
 {
-    ZmbvEncContext * const c = (ZmbvEncContext *)avctx->priv_data;
+    ZmbvEncContext * const c = avctx->priv_data;
 
     av_freep(&c->comp_buf);
     av_freep(&c->work_buf);
@@ -325,4 +326,3 @@ AVCodec zmbv_encoder = {
     encode_end,
     .pix_fmts = (enum PixelFormat[]){PIX_FMT_PAL8, -1},
 };
-#endif