Re: [libav-devel] [PATCH] Tell RV10/20 decoder to use edge emulation.
Hi, 2011/8/17 Måns Rullgård : > Kostya Shishkov writes: > >> 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; >> >> s->orig_width = s->width = avctx->coded_width; >> s->orig_height= s->height = avctx->coded_height; >> -- > > Why does it not work *without* EMU_EDGE? Usually it's the opposite. I suppose it fails to call draw_edges()? Ronald ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH] Tell RV10/20 decoder to use edge emulation.
Kostya Shishkov writes: > 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; > > s->orig_width = s->width = avctx->coded_width; > s->orig_height= s->height = avctx->coded_height; > -- Why does it not work *without* EMU_EDGE? Usually it's the opposite. -- Måns Rullgård m...@mansr.com ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH] Tell RV10/20 decoder to use edge emulation.
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 > 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
Re: [libav-devel] [PATCH] Tell RV10/20 decoder to use edge emulation.
Hi, On Wed, Aug 17, 2011 at 1:36 AM, Kostya Shishkov 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. Ronald ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH] Tell RV10/20 decoder to use edge emulation.
On Wed, Aug 17, 2011 at 01:47:31PM +0200, Kostya wrote: > On Wed, Aug 17, 2011 at 01:33:07PM +0200, Luca Barbato wrote: > > On 8/17/11 10:36 AM, Kostya Shishkov 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 > > > > > >--- 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; > > > > > > s->orig_width = s->width = avctx->coded_width; > > > s->orig_height= s->height = avctx->coded_height; > > > > Is this patch depending on other? Seems fine. > > No, it's independent. Queued. Diego ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH] Tell RV10/20 decoder to use edge emulation.
On Wed, Aug 17, 2011 at 01:33:07PM +0200, Luca Barbato wrote: > On 8/17/11 10:36 AM, Kostya Shishkov 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; > > > > s->orig_width = s->width = avctx->coded_width; > > s->orig_height= s->height = avctx->coded_height; > > Is this patch depending on other? Seems fine. No, it's independent. ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH] Tell RV10/20 decoder to use edge emulation.
On 8/17/11 10:36 AM, Kostya Shishkov 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; s->orig_width = s->width = avctx->coded_width; s->orig_height= s->height = avctx->coded_height; Is this patch depending on other? Seems fine. ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [PATCH] Tell RV10/20 decoder to use edge emulation.
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; s->orig_width = s->width = avctx->coded_width; s->orig_height= s->height = avctx->coded_height; -- 1.7.0.4 ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel