demux_lavf: parent mp_codec_params members to it

The members were parented to the demuxer or sh_stream, while they really
commute better with mp_codec_params.
This commit is contained in:
Kacper Michajłow committed 2026-08-26 01:47:41 +02:00
1 parent 57b0a0a695
commit f73dd13376
3 files changed
+16 -11

No files matched your search

+1 -1
View File
@@ -3073,7 +3073,7 @@ static void demux_update_replaygain(demuxer_t *demuxer)
if (!rg)
rg = decode_rgain(demuxer->log, demuxer->metadata);
if (rg)
sh->codec->replaygain_data = talloc_steal(in, rg);
sh->codec->replaygain_data = talloc_steal(sh->codec, rg);
}
}
}
+14 -9
View File
@@ -67,6 +67,11 @@
// libavformat (almost) always reads data in blocks of this size.
#define BIO_BUFFER_SIZE 32768
static void avcodec_par_destructor(void *p)
{
avcodec_parameters_free(p);
}
#define OPT_BASE_STRUCT struct demux_lavf_opts
struct demux_lavf_opts {
int64_t probesize;
@@ -641,7 +646,7 @@ static void export_replaygain(demuxer_t *demuxer, struct sh_stream *sh,
if (!track_data_available && !album_data_available)
return;
struct replaygain_data *rgain = talloc_ptrtype(demuxer, rgain);
struct replaygain_data *rgain = talloc_ptrtype(sh->codec, rgain);
rgain->track_gain = rgain->album_gain = 0;
rgain->track_peak = rgain->album_peak = 1;
@@ -719,7 +724,7 @@ static void handle_new_stream(demuxer_t *demuxer, int i)
sh->codec->samplerate = codec->sample_rate;
sh->codec->bitrate = codec->bit_rate;
sh->codec->format_name = talloc_strdup(sh, av_get_sample_fmt_name(codec->format));
sh->codec->format_name = talloc_strdup(sh->codec, av_get_sample_fmt_name(codec->format));
double delay = 0;
if (codec->sample_rate > 0)
@@ -759,7 +764,7 @@ static void handle_new_stream(demuxer_t *demuxer, int i)
sh->codec->disp_w = codec->width;
sh->codec->disp_h = codec->height;
sh->codec->bitrate = codec->bit_rate;
sh->codec->format_name = talloc_strdup(sh, av_get_pix_fmt_name(codec->format));
sh->codec->format_name = talloc_strdup(sh->codec, av_get_pix_fmt_name(codec->format));
if (st->avg_frame_rate.num)
sh->codec->fps = av_q2d(st->avg_frame_rate);
if (is_image(st, sh->attached_picture, priv->avif)) {
@@ -796,7 +801,7 @@ static void handle_new_stream(demuxer_t *demuxer, int i)
sh = demux_alloc_sh_stream(STREAM_SUB);
if (codec->extradata_size) {
sh->codec->extradata = talloc_size(sh, codec->extradata_size);
sh->codec->extradata = talloc_size(sh->codec, codec->extradata_size);
memcpy(sh->codec->extradata, codec->extradata, codec->extradata_size);
sh->codec->extradata_size = codec->extradata_size;
}
@@ -838,9 +843,11 @@ static void handle_new_stream(demuxer_t *demuxer, int i)
sh->ff_index = st->index;
mp_codec_info_from_avcodecpar(codec, sh->codec);
sh->codec->codec_tag = codec->codec_tag;
sh->codec->lav_codecpar = avcodec_parameters_alloc();
if (sh->codec->lav_codecpar)
avcodec_parameters_copy(sh->codec->lav_codecpar, codec);
AVCodecParameters **lavp = talloc_ptrtype(sh->codec, lavp);
talloc_set_destructor(lavp, avcodec_par_destructor);
*lavp = avcodec_parameters_alloc();
if (*lavp && avcodec_parameters_copy(*lavp, codec) >= 0)
sh->codec->lav_codecpar = *lavp;
sh->codec->native_tb_num = st->time_base.num;
sh->codec->native_tb_den = st->time_base.den;
sh->codec->duration = st->duration * av_q2d(st->time_base);
@@ -1906,8 +1913,6 @@ static void demux_close_lavf(demuxer_t *demuxer)
av_freep(&priv->pb);
for (int n = 0; n < priv->num_streams; n++) {
struct stream_info *info = priv->streams[n];
if (info->sh)
avcodec_parameters_free(&info->sh->codec->lav_codecpar);
TA_FREEP(&info->dovi_split);
}
TA_FREEP(&priv->pending_pkt);
+1 -1
View File
@@ -99,7 +99,7 @@ struct mp_dovi_split *mp_dovi_split_create(struct demuxer *demuxer,
el->codec->disp_w = par_out->width;
el->codec->disp_h = par_out->height;
if (par_out->extradata_size > 0) {
el->codec->extradata = talloc_memdup(el, par_out->extradata,
el->codec->extradata = talloc_memdup(el->codec, par_out->extradata,
par_out->extradata_size);
el->codec->extradata_size = par_out->extradata_size;
}