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:
1 parent
57b0a0a695
commit
f73dd13376
3 files changed
+16
-11
No files matched your search
+1
-1
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user