Commit d3a22491 authored by Michael Niedermayer's avatar Michael Niedermayer

ffmpeg: remove 32 channel limit from audio_channels_map

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 33fefdb4
...@@ -483,6 +483,9 @@ static void ffmpeg_cleanup(int ret) ...@@ -483,6 +483,9 @@ static void ffmpeg_cleanup(int ret)
av_freep(&ost->avfilter); av_freep(&ost->avfilter);
av_freep(&ost->logfile_prefix); av_freep(&ost->logfile_prefix);
av_freep(&ost->audio_channels_map);
ost->audio_channels_mapped = 0;
avcodec_free_context(&ost->enc_ctx); avcodec_free_context(&ost->enc_ctx);
av_freep(&output_streams[i]); av_freep(&output_streams[i]);
......
...@@ -402,8 +402,7 @@ typedef struct OutputStream { ...@@ -402,8 +402,7 @@ typedef struct OutputStream {
double forced_keyframes_expr_const_values[FKF_NB]; double forced_keyframes_expr_const_values[FKF_NB];
/* audio only */ /* audio only */
#define FF_CH_MAX 32 int *audio_channels_map; /* list of the channels id to pick from the source stream */
int audio_channels_map[FF_CH_MAX]; /* list of the channels id to pick from the source stream */
int audio_channels_mapped; /* number of channels in audio_channels_map */ int audio_channels_mapped; /* number of channels in audio_channels_map */
char *logfile_prefix; char *logfile_prefix;
......
...@@ -1478,11 +1478,13 @@ static OutputStream *new_audio_stream(OptionsContext *o, AVFormatContext *oc, in ...@@ -1478,11 +1478,13 @@ static OutputStream *new_audio_stream(OptionsContext *o, AVFormatContext *oc, in
} }
if (!ist || (ist->file_index == map->file_idx && ist->st->index == map->stream_idx)) { if (!ist || (ist->file_index == map->file_idx && ist->st->index == map->stream_idx)) {
if (ost->audio_channels_mapped < FF_ARRAY_ELEMS(ost->audio_channels_map)) if (av_reallocp_array(&ost->audio_channels_map,
ost->audio_channels_map[ost->audio_channels_mapped++] = map->channel_idx; ost->audio_channels_mapped + 1,
else sizeof(*ost->audio_channels_map)
av_log(NULL, AV_LOG_FATAL, "Max channel mapping for output %d.%d reached\n", ) < 0 )
ost->file_index, ost->st->index); exit_program(1);
ost->audio_channels_map[ost->audio_channels_mapped++] = map->channel_idx;
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment