avfilter/af_headphone: Fix leak of channel layouts list on error
In case the multichannel HRIR mode was enabled, an error could happen between allocating a channel layouts list and attaching it to its target destination. If an error happened, the list would leak. This is fixed by attaching the list to its target directly after its allocation. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
0960da42f5
commit
ca8e5dedc7
1 changed files with 3 additions and 4 deletions
|
|
@ -703,6 +703,9 @@ static int query_formats(AVFilterContext *ctx)
|
|||
return ret;
|
||||
|
||||
ret = ff_add_channel_layout(&stereo_layout, AV_CH_LAYOUT_STEREO);
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = ff_channel_layouts_ref(stereo_layout, &ctx->outputs[0]->in_channel_layouts);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
@ -721,10 +724,6 @@ static int query_formats(AVFilterContext *ctx)
|
|||
}
|
||||
}
|
||||
|
||||
ret = ff_channel_layouts_ref(stereo_layout, &ctx->outputs[0]->in_channel_layouts);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
formats = ff_all_samplerates();
|
||||
if (!formats)
|
||||
return AVERROR(ENOMEM);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue