diff --git a/modules/mux/extradata.c b/modules/mux/extradata.c index 401b88d605..2056fb34c9 100644 --- a/modules/mux/extradata.c +++ b/modules/mux/extradata.c @@ -38,6 +38,7 @@ struct mux_extradata_builder_cb struct mux_extradata_builder_t { struct mux_extradata_builder_cb cb; + vlc_object_t *obj; void *priv; uint8_t *p_extra; size_t i_extra; @@ -177,7 +178,8 @@ static const struct { EXTRADATA_ISOBMFF, VLC_CODEC_EAC3, &eac3_cb }, }; -mux_extradata_builder_t * mux_extradata_builder_New(vlc_fourcc_t fcc, +mux_extradata_builder_t * mux_extradata_builder_New(vlc_object_t *obj, + vlc_fourcc_t fcc, enum mux_extradata_type_e type) { const struct mux_extradata_builder_cb *cb = NULL; @@ -202,6 +204,7 @@ mux_extradata_builder_t * mux_extradata_builder_New(vlc_fourcc_t fcc, m->priv = NULL; m->fcc = fcc; m->cb = *cb; + m->obj = obj; if(m->cb.pf_init && m->cb.pf_init(m) != 0) { free(m); diff --git a/modules/mux/extradata.h b/modules/mux/extradata.h index 2b2cc55b6e..1fe875c9ca 100644 --- a/modules/mux/extradata.h +++ b/modules/mux/extradata.h @@ -25,7 +25,9 @@ enum mux_extradata_type_e EXTRADATA_ISOBMFF, }; -mux_extradata_builder_t * mux_extradata_builder_New(vlc_fourcc_t, enum mux_extradata_type_e); +mux_extradata_builder_t * mux_extradata_builder_New(vlc_object_t *obj, + vlc_fourcc_t, + enum mux_extradata_type_e); void mux_extradata_builder_Delete(mux_extradata_builder_t *); void mux_extradata_builder_Feed(mux_extradata_builder_t *, const uint8_t *, size_t); size_t mux_extradata_builder_Get(mux_extradata_builder_t *, const uint8_t **); diff --git a/modules/mux/mp4/mp4.c b/modules/mux/mp4/mp4.c index 5d09628668..839e6e4b58 100644 --- a/modules/mux/mp4/mp4.c +++ b/modules/mux/mp4/mp4.c @@ -516,7 +516,8 @@ static int AddStream(sout_mux_t *p_mux, sout_input_t *p_input) return VLC_ENOMEM; } - p_stream->extrabuilder = mux_extradata_builder_New(p_input->p_fmt->i_codec, + p_stream->extrabuilder = mux_extradata_builder_New(VLC_OBJECT(p_mux), + p_input->p_fmt->i_codec, EXTRADATA_ISOBMFF); p_input->p_sys = p_stream;