On Wed, Aug 17, 2011 at 09:22:00AM -0700, Ronald S. Bultje wrote:
> Hi,
> 
> On Wed, Aug 17, 2011 at 1:36 AM, Kostya Shishkov
> <kostya.shish...@gmail.com> wrote:
> > This removes out-of-edge motion compensation artifacts (easily spotted green
> > blocks in avplay, gray blocks in transcoding), for example here:
> > http://samples.libav.org/samples/real/tv_watching_t1.rm
> > ---
> >  libavcodec/rv10.c |    1 +
> >  1 files changed, 1 insertions(+), 0 deletions(-)
> >
> > diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c
> > index 3939984..d789eff 100644
> > --- a/libavcodec/rv10.c
> > +++ b/libavcodec/rv10.c
> > @@ -431,6 +431,7 @@ static av_cold int rv10_decode_init(AVCodecContext 
> > *avctx)
> >     s->avctx= avctx;
> >     s->out_format = FMT_H263;
> >     s->codec_id= avctx->codec_id;
> > +    avctx->flags |= CODEC_FLAG_EMU_EDGE;
> 
> Why not just ignore CODEC_FLAG_EMU_EDGE presence during MC? I don't
> like us overwriting user settings in AVCodecContext randomly. Some
> apps may not expect that.

If you want to delve into mpegvideo gut and fix it it would extremely good.
Other decoders (including e.g. VC-1 and 4XM) use the same trick too.
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to