diff --git a/libavformat/internal.h b/libavformat/internal.h index 51deb1c49f..16f84374f7 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -781,15 +781,6 @@ enum AVCodecID ff_get_pcm_codec_id(int bps, int flt, int be, int sflags); */ int ff_generate_avci_extradata(AVStream *st); -/** - * Copy encoding parameters from source to destination stream - * - * @param dst pointer to destination AVStream - * @param src pointer to source AVStream - * @return >=0 on success, AVERROR code on error - */ -int ff_stream_encode_params_copy(AVStream *dst, const AVStream *src); - /** * Copy side data from source to destination stream * diff --git a/libavformat/mux.h b/libavformat/mux.h index 1bfcaf795f..c01da82194 100644 --- a/libavformat/mux.h +++ b/libavformat/mux.h @@ -113,6 +113,15 @@ int ff_format_shift_data(AVFormatContext *s, int64_t read_start, int shift_size) */ int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **options); +/** + * Copy encoding parameters from source to destination stream + * + * @param dst pointer to destination AVStream + * @param src pointer to source AVStream + * @return >=0 on success, AVERROR code on error + */ +int ff_stream_encode_params_copy(AVStream *dst, const AVStream *src); + /** * Parse creation_time in AVFormatContext metadata if exists and warn if the * parsing fails. diff --git a/libavformat/mux_utils.c b/libavformat/mux_utils.c index 2fa2ab5b0f..eb8ea3d560 100644 --- a/libavformat/mux_utils.c +++ b/libavformat/mux_utils.c @@ -121,6 +121,34 @@ int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **op return 0; } +int ff_stream_encode_params_copy(AVStream *dst, const AVStream *src) +{ + int ret; + + dst->id = src->id; + dst->time_base = src->time_base; + dst->nb_frames = src->nb_frames; + dst->disposition = src->disposition; + dst->sample_aspect_ratio = src->sample_aspect_ratio; + dst->avg_frame_rate = src->avg_frame_rate; + dst->r_frame_rate = src->r_frame_rate; + + av_dict_free(&dst->metadata); + ret = av_dict_copy(&dst->metadata, src->metadata, 0); + if (ret < 0) + return ret; + + ret = avcodec_parameters_copy(dst->codecpar, src->codecpar); + if (ret < 0) + return ret; + + ret = ff_stream_side_data_copy(dst, src); + if (ret < 0) + return ret; + + return 0; +} + int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t *timestamp, int return_seconds) { AVDictionaryEntry *entry; diff --git a/libavformat/utils.c b/libavformat/utils.c index 44ceeecac6..5bda45d124 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -553,34 +553,6 @@ int av_read_pause(AVFormatContext *s) return AVERROR(ENOSYS); } -int ff_stream_encode_params_copy(AVStream *dst, const AVStream *src) -{ - int ret; - - dst->id = src->id; - dst->time_base = src->time_base; - dst->nb_frames = src->nb_frames; - dst->disposition = src->disposition; - dst->sample_aspect_ratio = src->sample_aspect_ratio; - dst->avg_frame_rate = src->avg_frame_rate; - dst->r_frame_rate = src->r_frame_rate; - - av_dict_free(&dst->metadata); - ret = av_dict_copy(&dst->metadata, src->metadata, 0); - if (ret < 0) - return ret; - - ret = avcodec_parameters_copy(dst->codecpar, src->codecpar); - if (ret < 0) - return ret; - - ret = ff_stream_side_data_copy(dst, src); - if (ret < 0) - return ret; - - return 0; -} - int ff_stream_side_data_copy(AVStream *dst, const AVStream *src) { /* Free existing side data*/ diff --git a/libavformat/webm_chunk.c b/libavformat/webm_chunk.c index 9348e6680a..d69db3a004 100644 --- a/libavformat/webm_chunk.c +++ b/libavformat/webm_chunk.c @@ -28,6 +28,7 @@ #include "avio.h" #include "avio_internal.h" #include "internal.h" +#include "mux.h" #include "libavutil/log.h" #include "libavutil/opt.h"