Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol authored on 2017/11/20 21:37:24... | ... |
@@ -324,16 +324,19 @@ static int read_ir(AVFilterLink *inlink, AVFrame *frame) |
324 | 324 |
{ |
325 | 325 |
AVFilterContext *ctx = inlink->dst; |
326 | 326 |
HeadphoneContext *s = ctx->priv; |
327 |
- int ir_len, max_ir_len, input_number; |
|
327 |
+ int ir_len, max_ir_len, input_number, ret; |
|
328 | 328 |
|
329 | 329 |
for (input_number = 0; input_number < s->nb_inputs; input_number++) |
330 | 330 |
if (inlink == ctx->inputs[input_number]) |
331 | 331 |
break; |
332 | 332 |
|
333 |
- av_audio_fifo_write(s->in[input_number].fifo, (void **)frame->extended_data, |
|
334 |
- frame->nb_samples); |
|
333 |
+ ret = av_audio_fifo_write(s->in[input_number].fifo, (void **)frame->extended_data, |
|
334 |
+ frame->nb_samples); |
|
335 | 335 |
av_frame_free(&frame); |
336 | 336 |
|
337 |
+ if (ret < 0) |
|
338 |
+ return ret; |
|
339 |
+ |
|
337 | 340 |
ir_len = av_audio_fifo_size(s->in[input_number].fifo); |
338 | 341 |
max_ir_len = 65536; |
339 | 342 |
if (ir_len > max_ir_len) { |
... | ... |
@@ -572,13 +575,16 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
572 | 572 |
AVFilterLink *outlink = ctx->outputs[0]; |
573 | 573 |
int ret = 0; |
574 | 574 |
|
575 |
- av_audio_fifo_write(s->in[0].fifo, (void **)in->extended_data, |
|
576 |
- in->nb_samples); |
|
575 |
+ ret = av_audio_fifo_write(s->in[0].fifo, (void **)in->extended_data, |
|
576 |
+ in->nb_samples); |
|
577 | 577 |
if (s->pts == AV_NOPTS_VALUE) |
578 | 578 |
s->pts = in->pts; |
579 | 579 |
|
580 | 580 |
av_frame_free(&in); |
581 | 581 |
|
582 |
+ if (ret < 0) |
|
583 |
+ return ret; |
|
584 |
+ |
|
582 | 585 |
if (!s->have_hrirs && s->eof_hrirs) { |
583 | 586 |
ret = convert_coeffs(ctx, inlink); |
584 | 587 |
if (ret < 0) |
... | ... |
@@ -589,10 +595,11 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
589 | 589 |
while (av_audio_fifo_size(s->in[0].fifo) >= s->size) { |
590 | 590 |
ret = headphone_frame(s, outlink); |
591 | 591 |
if (ret < 0) |
592 |
- break; |
|
592 |
+ return ret; |
|
593 | 593 |
} |
594 | 594 |
} |
595 |
- return ret; |
|
595 |
+ |
|
596 |
+ return 0; |
|
596 | 597 |
} |
597 | 598 |
|
598 | 599 |
static int query_formats(AVFilterContext *ctx) |