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)
|
if (!rg)
|
||||||
rg = decode_rgain(demuxer->log, demuxer->metadata);
|
rg = decode_rgain(demuxer->log, demuxer->metadata);
|
||||||
if (rg)
|
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.
|
// libavformat (almost) always reads data in blocks of this size.
|
||||||
#define BIO_BUFFER_SIZE 32768
|
#define BIO_BUFFER_SIZE 32768
|
||||||
|
|
||||||
|
static void avcodec_par_destructor(void *p)
|
||||||
|
{
|
||||||
|
avcodec_parameters_free(p);
|
||||||
|
}
|
||||||
|
|
||||||
#define OPT_BASE_STRUCT struct demux_lavf_opts
|
#define OPT_BASE_STRUCT struct demux_lavf_opts
|
||||||
struct demux_lavf_opts {
|
struct demux_lavf_opts {
|
||||||
int64_t probesize;
|
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)
|
if (!track_data_available && !album_data_available)
|
||||||
return;
|
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_gain = rgain->album_gain = 0;
|
||||||
rgain->track_peak = rgain->album_peak = 1;
|
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->samplerate = codec->sample_rate;
|
||||||
sh->codec->bitrate = codec->bit_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;
|
double delay = 0;
|
||||||
if (codec->sample_rate > 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_w = codec->width;
|
||||||
sh->codec->disp_h = codec->height;
|
sh->codec->disp_h = codec->height;
|
||||||
sh->codec->bitrate = codec->bit_rate;
|
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)
|
if (st->avg_frame_rate.num)
|
||||||
sh->codec->fps = av_q2d(st->avg_frame_rate);
|
sh->codec->fps = av_q2d(st->avg_frame_rate);
|
||||||
if (is_image(st, sh->attached_picture, priv->avif)) {
|
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);
|
sh = demux_alloc_sh_stream(STREAM_SUB);
|
||||||
|
|
||||||
if (codec->extradata_size) {
|
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);
|
memcpy(sh->codec->extradata, codec->extradata, codec->extradata_size);
|
||||||
sh->codec->extradata_size = 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;
|
sh->ff_index = st->index;
|
||||||
mp_codec_info_from_avcodecpar(codec, sh->codec);
|
mp_codec_info_from_avcodecpar(codec, sh->codec);
|
||||||
sh->codec->codec_tag = codec->codec_tag;
|
sh->codec->codec_tag = codec->codec_tag;
|
||||||
sh->codec->lav_codecpar = avcodec_parameters_alloc();
|
AVCodecParameters **lavp = talloc_ptrtype(sh->codec, lavp);
|
||||||
if (sh->codec->lav_codecpar)
|
talloc_set_destructor(lavp, avcodec_par_destructor);
|
||||||
avcodec_parameters_copy(sh->codec->lav_codecpar, codec);
|
*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_num = st->time_base.num;
|
||||||
sh->codec->native_tb_den = st->time_base.den;
|
sh->codec->native_tb_den = st->time_base.den;
|
||||||
sh->codec->duration = st->duration * av_q2d(st->time_base);
|
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);
|
av_freep(&priv->pb);
|
||||||
for (int n = 0; n < priv->num_streams; n++) {
|
for (int n = 0; n < priv->num_streams; n++) {
|
||||||
struct stream_info *info = priv->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(&info->dovi_split);
|
||||||
}
|
}
|
||||||
TA_FREEP(&priv->pending_pkt);
|
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_w = par_out->width;
|
||||||
el->codec->disp_h = par_out->height;
|
el->codec->disp_h = par_out->height;
|
||||||
if (par_out->extradata_size > 0) {
|
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);
|
par_out->extradata_size);
|
||||||
el->codec->extradata_size = par_out->extradata_size;
|
el->codec->extradata_size = par_out->extradata_size;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user