mirror of https://github.com/mpv-player/mpv
lavfi: temporary workaround for FFmpeg av_buffersrc_parameters_set() bug
The function ignores AVBufferSrcParameters.channel_layout. Set it manually using the API.
This commit is contained in:
parent
c824a023c4
commit
992e582488
|
@ -28,6 +28,7 @@
|
||||||
#include <libavutil/mathematics.h>
|
#include <libavutil/mathematics.h>
|
||||||
#include <libavutil/rational.h>
|
#include <libavutil/rational.h>
|
||||||
#include <libavutil/error.h>
|
#include <libavutil/error.h>
|
||||||
|
#include <libavutil/opt.h>
|
||||||
#include <libavfilter/avfilter.h>
|
#include <libavfilter/avfilter.h>
|
||||||
#include <libavfilter/buffersink.h>
|
#include <libavfilter/buffersink.h>
|
||||||
#include <libavfilter/buffersrc.h>
|
#include <libavfilter/buffersrc.h>
|
||||||
|
@ -444,6 +445,14 @@ static bool init_pads(struct lavfi *c)
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pad->type == STREAM_AUDIO) {
|
||||||
|
char layout[80];
|
||||||
|
snprintf(layout, sizeof(layout), "%lld",
|
||||||
|
(long long)params->channel_layout);
|
||||||
|
av_opt_set(pad->buffer, "channel_layout", layout,
|
||||||
|
AV_OPT_SEARCH_CHILDREN);
|
||||||
|
}
|
||||||
|
|
||||||
int ret = av_buffersrc_parameters_set(pad->buffer, params);
|
int ret = av_buffersrc_parameters_set(pad->buffer, params);
|
||||||
av_free(params);
|
av_free(params);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
|
Loading…
Reference in New Issue