X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fzmbvenc.c;h=27d2954352612d738a75a206584dfe112d347f85;hb=1ab74bc19354aedfb9afe71515952254753a75cc;hp=98029de5f66969229651d2b2eb0988e35dc2a0e0;hpb=398000abcf980d239a789da6f69811913d2fc635;p=ffmpeg diff --git a/libavcodec/zmbvenc.c b/libavcodec/zmbvenc.c index 98029de5f66..27d29543526 100644 --- a/libavcodec/zmbvenc.c +++ b/libavcodec/zmbvenc.c @@ -180,12 +180,6 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, c->curfrm++; if(c->curfrm == c->keyint) c->curfrm = 0; -#if FF_API_CODED_FRAME -FF_DISABLE_DEPRECATION_WARNINGS - avctx->coded_frame->pict_type = keyframe ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; - avctx->coded_frame->key_frame = keyframe; -FF_ENABLE_DEPRECATION_WARNINGS -#endif palptr = (avctx->pix_fmt == AV_PIX_FMT_PAL8) ? (uint32_t *)p->data[1] : NULL; chpal = !keyframe && palptr && memcmp(palptr, c->pal2, 1024); @@ -240,8 +234,8 @@ FF_ENABLE_DEPRECATION_WARNINGS tprev = prev + x * c->bypp; zmbv_me(c, tsrc, p->linesize[0], tprev, c->pstride, x, y, &mx, &my, &xored); - mv[0] = (mx << 1) | !!xored; - mv[1] = my << 1; + mv[0] = (mx * 2) | !!xored; + mv[1] = my * 2; tprev += mx * c->bypp + my * c->pstride; if(xored){ for(j = 0; j < bh2; j++){ @@ -340,6 +334,12 @@ static av_cold int encode_init(AVCodecContext *avctx) c->fmt = ZMBV_FMT_16BPP; c->bypp = 2; break; +#ifdef ZMBV_ENABLE_24BPP + case AV_PIX_FMT_BGR24: + c->fmt = ZMBV_FMT_24BPP; + c->bypp = 3; + break; +#endif //ZMBV_ENABLE_24BPP case AV_PIX_FMT_BGR0: c->fmt = ZMBV_FMT_32BPP; c->bypp = 4; @@ -403,7 +403,7 @@ static av_cold int encode_init(AVCodecContext *avctx) */ c->pstride = FFALIGN((avctx->width + c->lrange) * c->bypp, 16); prev_size = FFALIGN(c->lrange * c->bypp, 16) + c->pstride * (c->lrange + avctx->height + c->urange); - prev_offset = FFALIGN(c->lrange, 16) + c->pstride * c->lrange; + prev_offset = FFALIGN(c->lrange * c->bypp, 16) + c->pstride * c->lrange; if (!(c->prev_buf = av_mallocz(prev_size))) { av_log(avctx, AV_LOG_ERROR, "Can't allocate picture.\n"); return AVERROR(ENOMEM); @@ -422,7 +422,7 @@ static av_cold int encode_init(AVCodecContext *avctx) return 0; } -AVCodec ff_zmbv_encoder = { +const AVCodec ff_zmbv_encoder = { .name = "zmbv", .long_name = NULL_IF_CONFIG_SMALL("Zip Motion Blocks Video"), .type = AVMEDIA_TYPE_VIDEO, @@ -434,6 +434,9 @@ AVCodec ff_zmbv_encoder = { .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_PAL8, AV_PIX_FMT_RGB555LE, AV_PIX_FMT_RGB565LE, +#ifdef ZMBV_ENABLE_24BPP + AV_PIX_FMT_BGR24, +#endif //ZMBV_ENABLE_24BPP AV_PIX_FMT_BGR0, AV_PIX_FMT_NONE }, };