Hello,
I'm trying to debug an issue I'm seeing where the filter "acrossfade" produces 
a segfault.  This seemingly only happens in docker containers, and I am seeing 
it when running a rather large filter chain.  I'm trying to get to the bottom 
of it, but it would be really helpful to understand the context around how 
libavfilter fills the filter input fifos.  This is the code where I'm seeing 
the segfault:
449     AVFrame *in = NULL, *out, *cf[2] = { NULL };
...
474     if (ff_inlink_queued_samples(ctx->inputs[0]) > s->nb_samples) {
475         // consume some samples - this is not a crossfade overlap
486     } else if (ff_inlink_queued_samples(ctx->inputs[1]) >= s->nb_samples) {
487         if (s->overlap) {
488             out = ff_get_audio_buffer(outlink, s->nb_samples);
489             if (!out)
490                 return AVERROR(ENOMEM);
491             // NO CHECK IS DONE HERE THAT ENOUGH SAMPLES ARE PRESENT
491             // In our case, there are 0 samples, so 
ff_inlink_consume_samples returns early and does not set cf[0]
492             ret = ff_inlink_consume_samples(ctx->inputs[0], s->nb_samples, 
s->nb_samples, &cf[0]);
493             if (ret < 0) {
494                 av_frame_free(&out);
495                 return ret;
496             }
497             // SEGFAULT HERE
498             ret = ff_inlink_consume_samples(ctx->inputs[1], s->nb_samples, 
s->nb_samples, &cf[1]);
499             if (ret < 0) {
500                 av_frame_free(&out);
501                 return ret;
502             }

How does avfilter add samples to an inlink?  Does it just fill it randomly or 
will it fill input 0 completely and then move on to input 1, 2, 3?  Even when I 
fix this segfault by ensuring that ff_inlink_queued_samples(ctx->inputs[0]) == 
s->nb_samples, I will still get additional segfaults in the acrossfade code 
where ff_inlink_consume_samples returns 0 and does not set the frame pointer.
_______________________________________________
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".

Reply via email to