On Thu, 14 Apr 2016 13:06:46 -0400
Vittorio Giovara <[email protected]> wrote:

> On Thu, Apr 14, 2016 at 6:47 AM, wm4 <[email protected]> wrote:
> > On Thu, 14 Apr 2016 12:40:22 +0200
> > Diego Biurrun <[email protected]> wrote:
> >  
> >> On Thu, Apr 14, 2016 at 12:21:17PM +0200, wm4 wrote:  
> >> > --- a/libavcodec/mmaldec.c
> >> > +++ b/libavcodec/mmaldec.c
> >> > @@ -166,7 +166,7 @@ static void ffmmal_stop_decoder(AVCodecContext 
> >> > *avctx)
> >> >
> >> > -    assert(avpriv_atomic_get(&ctx->packets_buffered) == 0);
> >> > +    av_assert0(avpriv_atomic_get(&ctx->packets_buffered) == 0);  
> >>
> >> .. because .. ?  
> >
> > Because we use av_assert0() instead of assert() everywhere. Apparently
> > the latter is normally disabled. The code wasn't even valid and never
> > actually compiled, and I never noticed it myself. (michaelni didn't
> > notice this either, so this patch broke compilation. It was fixed with
> > patch 2/11, which I kept separate for authorship information.)  
> 
> Shouldn't it just return an error and fail gracefully?

It can't fail gracefully at this point because everything is fucked
beyond repair. This is the classic use for an assert: it detects some
sort of logic error, and fails early instead of running into even more
undefined behavior that makes locating the crash harder.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to