vlc | branch: master | Francois Cartegnie <fcvlc...@free.fr> | Mon Jan 29 16:25:48 2018 +0100| [fa1eb6944670efcd34b52f7da53287351e5ef0cf] | committer: Francois Cartegnie
mux: mp4: refactor open() > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fa1eb6944670efcd34b52f7da53287351e5ef0cf --- modules/mux/mp4/mp4.c | 72 +++++++++++++++------------------------------------ 1 file changed, 21 insertions(+), 51 deletions(-) diff --git a/modules/mux/mp4/mp4.c b/modules/mux/mp4/mp4.c index 71c71b3163..352e5b502f 100644 --- a/modules/mux/mp4/mp4.c +++ b/modules/mux/mp4/mp4.c @@ -55,7 +55,6 @@ static int Open (vlc_object_t *); static void Close (vlc_object_t *); -static int OpenFrag (vlc_object_t *); static void CloseFrag (vlc_object_t *); #define SOUT_CFG_PREFIX "sout-mp4-" @@ -80,7 +79,7 @@ add_submodule () set_shortname("MP4 Frag") add_shortcut("mp4frag", "mp4stream") set_capability("sout mux", 0) - set_callbacks(OpenFrag, CloseFrag) + set_callbacks(Open, CloseFrag) vlc_module_end () @@ -231,32 +230,37 @@ static int WriteSlowStartHeader(sout_mux_t *p_mux) static int Open(vlc_object_t *p_this) { sout_mux_t *p_mux = (sout_mux_t*)p_this; - sout_mux_sys_t *p_sys; + sout_mux_sys_t *p_sys = malloc(sizeof(sout_mux_sys_t)); + if (!p_sys) + return VLC_ENOMEM; msg_Dbg(p_mux, "Mp4 muxer opened"); config_ChainParse(p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg); - p_mux->pf_control = Control; - p_mux->pf_addstream = AddStream; - p_mux->pf_delstream = DelStream; - p_mux->pf_mux = Mux; - p_mux->p_sys = p_sys = malloc(sizeof(sout_mux_sys_t)); - if (!p_sys) - return VLC_ENOMEM; + p_sys->b_mov = p_mux->psz_mux && !strcmp(p_mux->psz_mux, "mov"); + p_sys->b_3gp = p_mux->psz_mux && !strcmp(p_mux->psz_mux, "3gp"); + p_sys->b_fragmented = p_mux->psz_mux && (!strcmp(p_mux->psz_mux, "mp4frag") || + !strcmp(p_mux->psz_mux, "mp4stream")); + /* FIXME FIXME + * Quicktime actually doesn't like the 64 bits extensions !!! */ + p_sys->b_64_ext = false; + p_sys->i_pos = 0; p_sys->i_nb_streams = 0; p_sys->pp_streams = NULL; p_sys->i_mdat_pos = 0; - p_sys->b_mov = p_mux->psz_mux && !strcmp(p_mux->psz_mux, "mov"); - p_sys->b_3gp = p_mux->psz_mux && !strcmp(p_mux->psz_mux, "3gp"); + p_sys->b_header_sent = false; + p_sys->i_read_duration = 0; + p_sys->i_written_duration= 0; p_sys->i_start_dts = VLC_TS_INVALID; - p_sys->b_fragmented = false; - p_sys->b_header_sent = false; + p_sys->i_mfhd_sequence = 1; - /* FIXME FIXME - * Quicktime actually doesn't like the 64 bits extensions !!! */ - p_sys->b_64_ext = false; + p_mux->p_sys = p_sys; + p_mux->pf_control = Control; + p_mux->pf_addstream = AddStream; + p_mux->pf_delstream = DelStream; + p_mux->pf_mux = p_sys->b_fragmented ? MuxFrag : Mux; return VLC_SUCCESS; } @@ -1229,40 +1233,6 @@ static void FlushHeader(sout_mux_t *p_mux) p_sys->b_header_sent = true; } -static int OpenFrag(vlc_object_t *p_this) -{ - sout_mux_t *p_mux = (sout_mux_t*) p_this; - sout_mux_sys_t *p_sys = malloc(sizeof(sout_mux_sys_t)); - if (!p_sys) - return VLC_ENOMEM; - - p_mux->p_sys = (sout_mux_sys_t *) p_sys; - p_mux->pf_control = Control; - p_mux->pf_addstream = AddStream; - p_mux->pf_delstream = DelStream; - p_mux->pf_mux = MuxFrag; - - /* unused */ - p_sys->b_mov = false; - p_sys->b_3gp = false; - p_sys->b_64_ext = false; - /* !unused */ - - p_sys->i_pos = 0; - p_sys->i_nb_streams = 0; - p_sys->pp_streams = NULL; - p_sys->i_mdat_pos = 0; - p_sys->i_read_duration = 0; - p_sys->i_written_duration= 0; - - p_sys->b_header_sent = false; - p_sys->b_fragmented = true; - p_sys->i_start_dts = VLC_TS_INVALID; - p_sys->i_mfhd_sequence = 1; - - return VLC_SUCCESS; -} - static void WriteFragments(sout_mux_t *p_mux, bool b_flush) { sout_mux_sys_t *p_sys = (sout_mux_sys_t*) p_mux->p_sys; _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits