[FFmpeg-devel] [PATCH] Put remaining pieces of CODEC_FLAG_EMU_EDGE under FF_API_EMU_EDGE.

Ronald S. Bultje rsbultje at gmail.com
Wed Aug 19 15:22:33 CEST 2015


Hi,

On Mon, Aug 17, 2015 at 12:25 PM, Ronald S. Bultje <rsbultje at gmail.com>
wrote:

> The amv one probably looks suspicious, but since it's an intra-only
> codec, I couldn't possibly imagine what it would use the edge for,
> and the vsyncht fate result doesn't change, so it's probably OK.
> ---
>  ffmpeg_opt.c          | 2 ++
>  ffplay.c              | 4 ++++
>  libavcodec/mjpegenc.c | 2 ++
>  libavcodec/snowenc.c  | 6 +++++-
>  libavcodec/wmv2dec.c  | 2 ++
>  5 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
> index 66a43b4..689d12a 100644
> --- a/ffmpeg_opt.c
> +++ b/ffmpeg_opt.c
> @@ -662,9 +662,11 @@ static void add_input_streams(OptionsContext *o,
> AVFormatContext *ic)
>          case AVMEDIA_TYPE_VIDEO:
>              if(!ist->dec)
>                  ist->dec = avcodec_find_decoder(dec->codec_id);
> +#if FF_API_EMU_EDGE
>              if (av_codec_get_lowres(dec)) {
>                  dec->flags |= CODEC_FLAG_EMU_EDGE;
>              }
> +#endif
>
>              ist->resample_height  = ist->dec_ctx->height;
>              ist->resample_width   = ist->dec_ctx->width;
> diff --git a/ffplay.c b/ffplay.c
> index cc61dde..3d8673b 100644
> --- a/ffplay.c
> +++ b/ffplay.c
> @@ -2550,11 +2550,15 @@ static int stream_component_open(VideoState *is,
> int stream_index)
>      }
>      av_codec_set_lowres(avctx, stream_lowres);
>
> +#if FF_API_EMU_EDGE
>      if(stream_lowres) avctx->flags |= CODEC_FLAG_EMU_EDGE;
> +#endif
>      if (fast)
>          avctx->flags2 |= AV_CODEC_FLAG2_FAST;
> +#if FF_API_EMU_EDGE
>      if(codec->capabilities & AV_CODEC_CAP_DR1)
>          avctx->flags |= CODEC_FLAG_EMU_EDGE;
> +#endif
>
>      opts = filter_codec_opts(codec_opts, avctx->codec_id, ic,
> ic->streams[stream_index], codec);
>      if (!av_dict_get(opts, "threads", NULL, 0))
> diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
> index ee0b16e..f15de58 100644
> --- a/libavcodec/mjpegenc.c
> +++ b/libavcodec/mjpegenc.c
> @@ -224,9 +224,11 @@ static int amv_encode_picture(AVCodecContext *avctx,
> AVPacket *pkt,
>
>      av_pix_fmt_get_chroma_sub_sample(avctx->pix_fmt, &chroma_h_shift,
> &chroma_v_shift);
>
> +#if FF_API_EMU_EDGE
>      //CODEC_FLAG_EMU_EDGE have to be cleared
>      if(s->avctx->flags & CODEC_FLAG_EMU_EDGE)
>          return AVERROR(EINVAL);
> +#endif
>
>      if ((avctx->height & 15) && avctx->strict_std_compliance >
> FF_COMPLIANCE_UNOFFICIAL) {
>          av_log(avctx, AV_LOG_ERROR,
> diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c
> index 16c7e05..9f74c9e 100644
> --- a/libavcodec/snowenc.c
> +++ b/libavcodec/snowenc.c
> @@ -1602,7 +1602,11 @@ static int encode_frame(AVCodecContext *avctx,
> AVPacket *pkt,
>          s->lambda = 0;
>      }//else keep previous frame's qlog until after motion estimation
>
> -    if (s->current_picture->data[0] &&
> !(s->avctx->flags&CODEC_FLAG_EMU_EDGE)) {
> +    if (s->current_picture->data[0]
> +#if FF_API_EMU_EDGE
> +        && !(s->avctx->flags&CODEC_FLAG_EMU_EDGE)
> +#endif
> +        ) {
>          int w = s->avctx->width;
>          int h = s->avctx->height;
>
> diff --git a/libavcodec/wmv2dec.c b/libavcodec/wmv2dec.c
> index f8128dc..cd17358 100644
> --- a/libavcodec/wmv2dec.c
> +++ b/libavcodec/wmv2dec.c
> @@ -453,7 +453,9 @@ static av_cold int wmv2_decode_init(AVCodecContext
> *avctx)
>      Wmv2Context *const w = avctx->priv_data;
>      int ret;
>
> +#if FF_API_EMU_EDGE
>      avctx->flags |= CODEC_FLAG_EMU_EDGE;
> +#endif
>
>      if ((ret = ff_msmpeg4_decode_init(avctx)) < 0)
>          return ret;


Ping.

Ronald


More information about the ffmpeg-devel mailing list