Re: [FFmpeg-devel] [PATCH] set AVFrame decode_error_flags in case of decoding error by h264dec
Thanks On Sun, Jul 7, 2019 at 3:38 PM Michael Niedermayer wrote: > On Fri, Jun 21, 2019 at 07:15:17AM -0700, Amir Pauker wrote: > > set AVFrame decode_error_flags in case h->slice_ctx->er.error_occurred > is set > > after the call to ff_h264_execute_decode_slices. This allows the user to > detect > > concealed decoding errors in the call to avcodec_receive_frame > > > > Signed-off-by: Amir Pauker > > --- > > libavcodec/error_resilience.c | 2 ++ > > libavcodec/h264dec.c | 5 + > > 2 files changed, 7 insertions(+) > > > > diff --git a/libavcodec/error_resilience.c > b/libavcodec/error_resilience.c > > index 35d0c60..ca22871 100644 > > --- a/libavcodec/error_resilience.c > > +++ b/libavcodec/error_resilience.c > > @@ -1121,6 +1121,8 @@ void ff_er_frame_end(ERContext *s) > > av_log(s->avctx, AV_LOG_INFO, "concealing %d DC, %d AC, %d MV > errors in %c frame\n", > > dc_error, ac_error, mv_error, > av_get_picture_type_char(s->cur_pic.f->pict_type)); > > > > +s->cur_pic.f->decode_error_flags |= > FF_DECODE_ERROR_CONCEALMENT_ACTIVE; > > + > > is_intra_likely = is_intra_more_likely(s); > > > > /* set unknown mb-type to most likely */ > > diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c > > index 837c3b7..8d1bd16 100644 > > --- a/libavcodec/h264dec.c > > +++ b/libavcodec/h264dec.c > > @@ -761,6 +761,11 @@ static int decode_nal_units(H264Context *h, const > uint8_t *buf, int buf_size) > > if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) > > goto end; > > > > +// set decode_error_flags to allow users to detect concealed > decoding errors > > +if ((ret < 0 || h->slice_ctx->er.error_occurred) && h->cur_pic_ptr) > { > > +h->cur_pic_ptr->f->decode_error_flags |= > FF_DECODE_ERROR_DECODE_SLICES; > > +} > > + > > ret = 0; > > end: > > will split and apply > > thx > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Whats the most studid thing your enemy could do ? Blow himself up > Whats the most studid thing you could do ? Give up your rights and > freedom because your enemy blew himself up. > > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] add FF_DECODE_ERROR_DECODE_SLICES flag for AVFrame.decode_error_flags
Thanks Michael, Could you please also apply the patch [PATCH] set AVFrame decode_error_flags in case of decoding error by h264dec It is the code that uses those flags. Thanks Amir On Sat, Jun 29, 2019 at 11:35 AM Michael Niedermayer wrote: > On Fri, Jun 28, 2019 at 02:21:18AM -0700, Amir Pauker wrote: > > avutil: add FF_DECODE_ERROR_DECODE_SLICES for AVFrame.decode_error_flags > > > > Signed-off-by: Amir Pauker > > --- > > doc/APIchanges | 3 +++ > > libavutil/frame.h | 1 + > > libavutil/version.h | 2 +- > > 3 files changed, 5 insertions(+), 1 deletion(-) > > will apply > > thanks > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Modern terrorism, a quick summary: Need oil, start war with country that > has oil, kill hundread thousand in war. Let country fall into chaos, > be surprised about raise of fundamantalists. Drop more bombs, kill more > people, be surprised about them taking revenge and drop even more bombs > and strip your own citizens of their rights and freedoms. to be continued > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] set AVFrame decode_error_flags in case of decoding error by h264dec
Michael hey, Could you please apply this patch as well. Thanks On Fri, Jun 21, 2019 at 9:15 AM Amir Pauker wrote: > set AVFrame decode_error_flags in case h->slice_ctx->er.error_occurred is > set > after the call to ff_h264_execute_decode_slices. This allows the user to > detect > concealed decoding errors in the call to avcodec_receive_frame > > Signed-off-by: Amir Pauker > --- > libavcodec/error_resilience.c | 2 ++ > libavcodec/h264dec.c | 5 + > 2 files changed, 7 insertions(+) > > diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c > index 35d0c60..ca22871 100644 > --- a/libavcodec/error_resilience.c > +++ b/libavcodec/error_resilience.c > @@ -1121,6 +1121,8 @@ void ff_er_frame_end(ERContext *s) > av_log(s->avctx, AV_LOG_INFO, "concealing %d DC, %d AC, %d MV errors > in %c frame\n", > dc_error, ac_error, mv_error, > av_get_picture_type_char(s->cur_pic.f->pict_type)); > > +s->cur_pic.f->decode_error_flags |= > FF_DECODE_ERROR_CONCEALMENT_ACTIVE; > + > is_intra_likely = is_intra_more_likely(s); > > /* set unknown mb-type to most likely */ > diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c > index 837c3b7..8d1bd16 100644 > --- a/libavcodec/h264dec.c > +++ b/libavcodec/h264dec.c > @@ -761,6 +761,11 @@ static int decode_nal_units(H264Context *h, const > uint8_t *buf, int buf_size) > if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) > goto end; > > +// set decode_error_flags to allow users to detect concealed decoding > errors > +if ((ret < 0 || h->slice_ctx->er.error_occurred) && h->cur_pic_ptr) { > +h->cur_pic_ptr->f->decode_error_flags |= > FF_DECODE_ERROR_DECODE_SLICES; > +} > + > ret = 0; > end: > > -- > 2.1.4 > > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] add FF_DECODE_ERROR_DECODE_SLICES flag for AVFrame.decode_error_flags
Sorry Michael I missed this one. I submitted an updated patch. Thanks Amir On Sat, Jun 22, 2019 at 11:13 AM Michael Niedermayer wrote: > On Fri, Jun 21, 2019 at 07:15:55AM -0700, Amir Pauker wrote: > > FF_DECODE_ERROR_DECODE_SLICES is set when decoding slices result with > error(s) but the returned value from > > avcodec_receive_frame is zero > > The first line of the commit message needs a "avutil:" prefix or similar > also the first line should ideally be shorter and a summary of the change > > [...] > > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > The real ebay dictionary, page 2 > "100% positive feedback" - "All either got their money back or didnt > complain" > "Best seller ever, very honest" - "Seller refunded buyer after failed scam" > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] set AVFrame decode_error_flags to FF_DECODE_ERROR_CONCEALMENT_ACTIVE in case of concealed errors
Thanks Michael, I submitted two new patches. I add a new value FF_DECODE_ERROR_DECODE_SLICES. FF_DECODE_ERROR_DECODE_SLICES indicates that error(s) occurred during slices decoding but the return code is set to zero (set where previously FF_DECODE_ERROR_CONCEALMENT_ACTIVE was set). FF_DECODE_ERROR_CONCEALMENT_ACTIVE indicates that an attempt to correct those errors was made (set where you suggested) Amir On Wed, Jun 19, 2019 at 12:38 PM Michael Niedermayer wrote: > On Tue, Jun 18, 2019 at 03:14:47PM +0300, Amir Z wrote: > > Thanks Michael, > > > > The reason I set the flag before the log line in ff_er_frame_end is > because > > the code might never get there even though the return value is set to > zero. > > > > Should we use two different values ? > > if there are 2 semantically different cases, maybe yes > > thx > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Opposition brings concord. Out of discord comes the fairest harmony. > -- Heraclitus > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] set AVFrame decode_error_flags to FF_DECODE_ERROR_CONCEALMENT_ACTIVE in case of concealed errors
Thanks Michael, The reason I set the flag before the log line in ff_er_frame_end is because the code might never get there even though the return value is set to zero. Should we use two different values ? Thanks Amir On Sun, Jun 16, 2019 at 10:53 AM Michael Niedermayer wrote: > On Fri, Jun 14, 2019 at 07:43:46AM -0700, Amir Pauker wrote: > > set AVFrame decode_error_flags to FF_DECODE_ERROR_CONCEALMENT_ACTIVE in > case > > h->slice_ctx->er.error_occurred is set after the call to > ff_h264_execute_decode_slices. > > This allows the user to detect concealed decoding errors in the call to > avcodec_receive_frame > > > > Signed-off-by: Amir Pauker > > --- > > libavcodec/h264dec.c | 5 + > > 1 file changed, 5 insertions(+) > > > > diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c > > index 837c3b7..98b7d79 100644 > > --- a/libavcodec/h264dec.c > > +++ b/libavcodec/h264dec.c > > @@ -761,6 +761,11 @@ static int decode_nal_units(H264Context *h, const > uint8_t *buf, int buf_size) > > if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) > > goto end; > > > > +// set decode_error_flags to allow users to detect concealed > decoding errors > > +if ((ret < 0 || h->slice_ctx->er.error_occurred) && h->cur_pic_ptr) > { > > +h->cur_pic_ptr->f->decode_error_flags |= > FF_DECODE_ERROR_CONCEALMENT_ACTIVE; > > +} > > + > > it would be more robust to set the flag around where the > "concealing %d DC, %d AC, %d MV errors in %c frame\" message is printed > > That is when concealing actually happens > > thanks > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Avoid a single point of failure, be that a person or equipment. > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] set AVFrame decode_error_flags in case of decoding error by h264dec
thanks Moritz i submitted two new patches On Fri, Jun 14, 2019 at 2:43 AM Moritz Barsnick wrote: > On Thu, Jun 13, 2019 at 08:52:22 -0700, Amir Pauker wrote: > > doc/APIchanges | 3 +++ > > libavcodec/h264dec.c | 5 + > > libavutil/frame.h| 1 + > > libavutil/version.h | 2 +- > > You should split the introduction of the API (libavutil and doc) and > the use of the API (libavcodec) into two separate patches. > > > +if( (ret < 0 || h->slice_ctx->er.error_occurred) && h->cur_pic_ptr){ > > Please fix the bracket/whitespace style: > https://ffmpeg.org/developer.html#Code-formatting-conventions > > -> > if ((ret < 0 || h->slice_ctx->er.error_occurred) && h->cur_pic_ptr) { > > Moritz > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] set AVFrame decode_error_flags in case of decoding error by h264dec
thanks, I will submit a new patch with the requested changes On Wed, Jun 12, 2019 at 3:00 PM Marton Balint wrote: > > > On Wed, 12 Jun 2019, Michael Niedermayer wrote: > > > On Wed, Jun 12, 2019 at 10:09:08AM +0200, Marton Balint wrote: > >> > >> > >> On Wed, 12 Jun 2019, Michael Niedermayer wrote: > >> > >>> On Tue, Jun 11, 2019 at 03:21:41PM -0500, Amir Z wrote: > >>>> Thanks Michael Niedermayer for looking into this > >>>> > >>>> What I am trying to solve is having a way to detect concealed decoding > >>>> errors by the caller to avcodec_receive_frame. > >>>> > >>>> Should I add a general value e.g. #define > >>>> FF_DECODE_ERROR_DECODE_ERROR_OCCURRED 4 ? > >>> > >>> I suggest > >>> FF_DECODE_ERROR_CONCEALMENT_ACTIVE or something similar and then always > >>> set this for all cases of error concealment > >>> Its more informative than just knowing there was an error > >> > >> Concealment is a consequence. Error_flags should refer to the cause. A > >> generic UNKNOWN error seems much better to me if it is not feasible to > >> determine the cause. > > > > Concealment is the consequence generally, still the error in the frames > > differs between concealment or no concealment. A user application may > > want to treat these differently. > > concealemnt is not supported by all codecs currently and also not by > > all variants, for example interlaced material tends to be less supported > > in concealment. A user app might choose to discard a frame that > > contains errors but no concealemnt if the following frame is fine. > > > > Also in a very pedantic view, concealemnt itself is an error too. > > Its rarly known exactly where the damage starts so concealment often > needs > > to cover more and by doing so adds errors in a minority of locations > > that is if you just want a formal argument why this would fit in here. > > Not an argument against the principle that concealemnt differs here in > what > > it is, you are certainly correct about that. > > OK, FF_DECODE_ERROR_CONCEALMENT_ACTIVE is fine then. > > Thanks, > Marton > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] set AVFrame decode_error_flags in case of decoding error by h264dec
FF_DECODE_ERROR_CONCEALMENT_ACTIVE sounds right for the case that the ret variable is set to zero (i.e. indicate the fact that there was an error and it is concealed) ret = ff_h264_execute_decode_slices(h); if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) goto end; // set h->cur_pic_ptr->f->decode_error_flags here ret = 0; end: Thank On Wed, Jun 12, 2019 at 4:35 AM Michael Niedermayer wrote: > On Wed, Jun 12, 2019 at 10:09:08AM +0200, Marton Balint wrote: > > > > > > On Wed, 12 Jun 2019, Michael Niedermayer wrote: > > > > >On Tue, Jun 11, 2019 at 03:21:41PM -0500, Amir Z wrote: > > >>Thanks Michael Niedermayer for looking into this > > >> > > >>What I am trying to solve is having a way to detect concealed decoding > > >>errors by the caller to avcodec_receive_frame. > > >> > > >>Should I add a general value e.g. #define > > >>FF_DECODE_ERROR_DECODE_ERROR_OCCURRED 4 ? > > > > > >I suggest > > >FF_DECODE_ERROR_CONCEALMENT_ACTIVE or something similar and then always > > >set this for all cases of error concealment > > >Its more informative than just knowing there was an error > > > > Concealment is a consequence. Error_flags should refer to the cause. A > > generic UNKNOWN error seems much better to me if it is not feasible to > > determine the cause. > > Concealment is the consequence generally, still the error in the frames > differs between concealment or no concealment. A user application may > want to treat these differently. > concealemnt is not supported by all codecs currently and also not by > all variants, for example interlaced material tends to be less supported > in concealment. A user app might choose to discard a frame that > contains errors but no concealemnt if the following frame is fine. > > Also in a very pedantic view, concealemnt itself is an error too. > Its rarly known exactly where the damage starts so concealment often needs > to cover more and by doing so adds errors in a minority of locations > that is if you just want a formal argument why this would fit in here. > Not an argument against the principle that concealemnt differs here in what > it is, you are certainly correct about that. > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Modern terrorism, a quick summary: Need oil, start war with country that > has oil, kill hundread thousand in war. Let country fall into chaos, > be surprised about raise of fundamantalists. Drop more bombs, kill more > people, be surprised about them taking revenge and drop even more bombs > and strip your own citizens of their rights and freedoms. to be continued > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] set AVFrame decode_error_flags in case of decoding error by h264dec
Thanks Michael Niedermayer for looking into this What I am trying to solve is having a way to detect concealed decoding errors by the caller to avcodec_receive_frame. Should I add a general value e.g. #define FF_DECODE_ERROR_DECODE_ERROR_OCCURRED 4 ? Thanks Amir On Tue, Jun 11, 2019 at 11:39 AM Michael Niedermayer wrote: > On Sun, Jun 09, 2019 at 10:45:13PM -0700, Amir Pauker wrote: > > set AVFrame decode_error_flags in case h->slice_ctx->er.error_occurred > is set > > after the call to ff_h264_execute_decode_slices. This allows the user to > detect > > concealed decoding errors in the call to avcodec_receive_frame > > > > Signed-off-by: Amir Pauker > > --- > > libavcodec/h264dec.c | 6 ++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c > > index 00d922f..67dee11 100644 > > --- a/libavcodec/h264dec.c > > +++ b/libavcodec/h264dec.c > > @@ -758,6 +758,12 @@ static int decode_nal_units(H264Context *h, const > uint8_t *buf, int buf_size) > > } > > > > ret = ff_h264_execute_decode_slices(h); > > + > > +// set decode_error_flags to allow users to detect concealed > decoding errors > > +if( (ret < 0 || h->slice_ctx->er.error_occurred) && h->cur_pic_ptr){ > > +h->cur_pic_ptr->f->decode_error_flags |= > FF_DECODE_ERROR_INVALID_BITSTREAM|FF_DECODE_ERROR_MISSING_REFERENCE; > > +} > > This is not correct. > error_occurred does not imply the 2 specific errors > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > What does censorship reveal? It reveals fear. -- Julian Assange > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] set AVFrame decode_error_flags in case of decoding error by h264dec
Sounds good, thanks I will submit a new patch On Sun, Jun 9, 2019 at 10:53 PM James Almer wrote: > On 6/10/2019 12:32 AM, Amir Z wrote: > > As far as I can tell FF_DECODE_ERROR_MISSING_REFERENCE is not used > > anywhere. > > > > Since the new flag DECODE_ERROR covers also missing reference case i > > thought it will be more appropriate to replace it instead of adding a new > > enum value. > > Removing a define or a symbol from a public header is an API break, and > doing so requires a deprecation period. That flag may not be currently > set by any decoder, but API users may be checking for it on their code > as it could start being used anytime. > > You could just set FF_DECODE_ERROR_INVALID_BITSTREAM, > FF_DECODE_ERROR_MISSING_REFERENCE, or both, since as you mentioned they > describe the errors that could take place in > ff_h264_execute_decode_slices() just fine. > > > > > Thanks > > > > > > On Sun, Jun 9, 2019 at 10:15 PM James Almer wrote: > > > >> On 6/10/2019 12:03 AM, Amir Pauker wrote: > >>> set AVFrame decode_error_flags in case h->slice_ctx->er.error_occurred > >> is set > >>> after the call to ff_h264_execute_decode_slices. This allows the user > to > >> detect > >>> concealed decoding errors in the call to avcodec_receive_frame > >>> > >>> Signed-off-by: Amir Pauker > >>> --- > >>> libavcodec/h264dec.c | 7 +++ > >>> libavutil/frame.h| 2 +- > >>> 2 files changed, 8 insertions(+), 1 deletion(-) > >>> > >>> diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c > >>> index 00d922f..9f038e9 100644 > >>> --- a/libavcodec/h264dec.c > >>> +++ b/libavcodec/h264dec.c > >>> @@ -758,6 +758,13 @@ static int decode_nal_units(H264Context *h, const > >> uint8_t *buf, int buf_size) > >>> } > >>> > >>> ret = ff_h264_execute_decode_slices(h); > >>> + > >>> +// set decode_error_flags to allow users to detect concealed > >> decoding errors > >>> +if( (ret < 0 || h->slice_ctx->er.error_occurred) && > h->cur_pic_ptr){ > >>> +h->cur_pic_ptr->f->decode_error_flags |= > >> FF_DECODE_ERROR_DECODE_ERROR; > >>> +} > >>> + > >>> + > >>> if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) > >>> goto end; > >>> > >>> diff --git a/libavutil/frame.h b/libavutil/frame.h > >>> index e2a2929..ef1ff6b 100644 > >>> --- a/libavutil/frame.h > >>> +++ b/libavutil/frame.h > >>> @@ -521,7 +521,7 @@ typedef struct AVFrame { > >>> */ > >>> int decode_error_flags; > >>> #define FF_DECODE_ERROR_INVALID_BITSTREAM 1 > >>> -#define FF_DECODE_ERROR_MISSING_REFERENCE 2 > >>> +#define FF_DECODE_ERROR_DECODE_ERROR2 > >> > >> This is an API breaking change. Why are you removing > >> FF_DECODE_ERROR_MISSING_REFERENCE if what you want is adding a new flag? > >> > >>> > >>> /** > >>> * number of audio channels, only used for audio. > >>> > >> > >> ___ > >> ffmpeg-devel mailing list > >> ffmpeg-devel@ffmpeg.org > >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > >> > >> To unsubscribe, visit link above, or email > >> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > > ___ > > ffmpeg-devel mailing list > > ffmpeg-devel@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > > To unsubscribe, visit link above, or email > > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > > > > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] set AVFrame decode_error_flags in case of decoding error by h264dec
As far as I can tell FF_DECODE_ERROR_MISSING_REFERENCE is not used anywhere. Since the new flag DECODE_ERROR covers also missing reference case i thought it will be more appropriate to replace it instead of adding a new enum value. Thanks On Sun, Jun 9, 2019 at 10:15 PM James Almer wrote: > On 6/10/2019 12:03 AM, Amir Pauker wrote: > > set AVFrame decode_error_flags in case h->slice_ctx->er.error_occurred > is set > > after the call to ff_h264_execute_decode_slices. This allows the user to > detect > > concealed decoding errors in the call to avcodec_receive_frame > > > > Signed-off-by: Amir Pauker > > --- > > libavcodec/h264dec.c | 7 +++ > > libavutil/frame.h| 2 +- > > 2 files changed, 8 insertions(+), 1 deletion(-) > > > > diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c > > index 00d922f..9f038e9 100644 > > --- a/libavcodec/h264dec.c > > +++ b/libavcodec/h264dec.c > > @@ -758,6 +758,13 @@ static int decode_nal_units(H264Context *h, const > uint8_t *buf, int buf_size) > > } > > > > ret = ff_h264_execute_decode_slices(h); > > + > > +// set decode_error_flags to allow users to detect concealed > decoding errors > > +if( (ret < 0 || h->slice_ctx->er.error_occurred) && h->cur_pic_ptr){ > > +h->cur_pic_ptr->f->decode_error_flags |= > FF_DECODE_ERROR_DECODE_ERROR; > > +} > > + > > + > > if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) > > goto end; > > > > diff --git a/libavutil/frame.h b/libavutil/frame.h > > index e2a2929..ef1ff6b 100644 > > --- a/libavutil/frame.h > > +++ b/libavutil/frame.h > > @@ -521,7 +521,7 @@ typedef struct AVFrame { > > */ > > int decode_error_flags; > > #define FF_DECODE_ERROR_INVALID_BITSTREAM 1 > > -#define FF_DECODE_ERROR_MISSING_REFERENCE 2 > > +#define FF_DECODE_ERROR_DECODE_ERROR2 > > This is an API breaking change. Why are you removing > FF_DECODE_ERROR_MISSING_REFERENCE if what you want is adding a new flag? > > > > > /** > > * number of audio channels, only used for audio. > > > > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".