mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-23 19:30:05 +00:00
ffmpeg: remove 32 channel limit from audio_channels_map
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
33fefdb449
commit
d3a22491c7
3
ffmpeg.c
3
ffmpeg.c
@ -483,6 +483,9 @@ static void ffmpeg_cleanup(int ret)
|
||||
av_freep(&ost->avfilter);
|
||||
av_freep(&ost->logfile_prefix);
|
||||
|
||||
av_freep(&ost->audio_channels_map);
|
||||
ost->audio_channels_mapped = 0;
|
||||
|
||||
avcodec_free_context(&ost->enc_ctx);
|
||||
|
||||
av_freep(&output_streams[i]);
|
||||
|
3
ffmpeg.h
3
ffmpeg.h
@ -402,8 +402,7 @@ typedef struct OutputStream {
|
||||
double forced_keyframes_expr_const_values[FKF_NB];
|
||||
|
||||
/* audio only */
|
||||
#define FF_CH_MAX 32
|
||||
int audio_channels_map[FF_CH_MAX]; /* list of the channels id to pick from the source stream */
|
||||
int *audio_channels_map; /* list of the channels id to pick from the source stream */
|
||||
int audio_channels_mapped; /* number of channels in audio_channels_map */
|
||||
|
||||
char *logfile_prefix;
|
||||
|
12
ffmpeg_opt.c
12
ffmpeg_opt.c
@ -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 (ost->audio_channels_mapped < FF_ARRAY_ELEMS(ost->audio_channels_map))
|
||||
ost->audio_channels_map[ost->audio_channels_mapped++] = map->channel_idx;
|
||||
else
|
||||
av_log(NULL, AV_LOG_FATAL, "Max channel mapping for output %d.%d reached\n",
|
||||
ost->file_index, ost->st->index);
|
||||
if (av_reallocp_array(&ost->audio_channels_map,
|
||||
ost->audio_channels_mapped + 1,
|
||||
sizeof(*ost->audio_channels_map)
|
||||
) < 0 )
|
||||
exit_program(1);
|
||||
|
||||
ost->audio_channels_map[ost->audio_channels_mapped++] = map->channel_idx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user