vlc | branch: master | Thomas Guillem <tho...@gllm.fr> | Mon Sep 7 16:34:51 2015 +0200| [080f21c3be96265da1dae5c0c9ec959add956b30] | committer: Thomas Guillem
decoder: remove b_need_packetized When needed (fmt->b_packetized == false), create a packetizer before creating a decoder. The fmt_in of the decoder is copied either from the fmt_out of the packetizer, or from the fmt of CreateDecoder. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=080f21c3be96265da1dae5c0c9ec959add956b30 --- include/vlc_codec.h | 3 --- modules/codec/avcodec/avcodec.c | 2 -- modules/codec/avcodec/video.c | 3 --- modules/codec/crystalhd.c | 1 - modules/codec/faad.c | 3 --- modules/codec/flac.c | 3 --- modules/codec/gstdecode.c | 2 -- modules/codec/mft.c | 1 - modules/codec/omxil/mediacodec.c | 1 - modules/codec/omxil/omxil.c | 2 -- modules/codec/videotoolbox.m | 2 -- modules/codec/vpx.c | 1 - modules/hw/mmal/codec.c | 1 - src/input/decoder.c | 18 +++++++++--------- 14 files changed, 9 insertions(+), 34 deletions(-) diff --git a/include/vlc_codec.h b/include/vlc_codec.h index 0c43978..0028eff 100644 --- a/include/vlc_codec.h +++ b/include/vlc_codec.h @@ -62,9 +62,6 @@ struct decoder_t /* Output format of decoder/packetizer */ es_format_t fmt_out; - /* Some decoders only accept packetized data (ie. not truncated) */ - bool b_need_packetized; - /* Tell the decoder if it is allowed to drop frames */ bool b_frame_drop_allowed; diff --git a/modules/codec/avcodec/avcodec.c b/modules/codec/avcodec/avcodec.c index 2251cda..5402f69 100644 --- a/modules/codec/avcodec/avcodec.c +++ b/modules/codec/avcodec/avcodec.c @@ -326,8 +326,6 @@ static int OpenDecoder( vlc_object_t *p_this ) if( avctx->level != FF_LEVEL_UNKNOWN) p_dec->fmt_in.i_level = avctx->level; - p_dec->b_need_packetized = true; - return VLC_SUCCESS; } diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c index 7e05a5f..89b39ab 100644 --- a/modules/codec/avcodec/video.c +++ b/modules/codec/avcodec/video.c @@ -495,9 +495,6 @@ int InitVideoDec( decoder_t *p_dec, AVCodecContext *p_context, p_dec->pf_decode_video = DecodeVideo; - if ( p_dec->fmt_in.i_codec == VLC_CODEC_VP9 ) - p_dec->b_need_packetized = true; - return VLC_SUCCESS; } diff --git a/modules/codec/crystalhd.c b/modules/codec/crystalhd.c index d3b99ba..87c2134 100644 --- a/modules/codec/crystalhd.c +++ b/modules/codec/crystalhd.c @@ -348,7 +348,6 @@ static int OpenDecoder( vlc_object_t *p_this ) p_dec->fmt_out.i_codec = VLC_CODEC_YUYV; p_dec->fmt_out.video.i_width = p_dec->fmt_in.video.i_width; p_dec->fmt_out.video.i_height = p_dec->fmt_in.video.i_height; - p_dec->b_need_packetized = true; /* Set callbacks */ p_dec->pf_decode_video = DecodeBlock; diff --git a/modules/codec/faad.c b/modules/codec/faad.c index 6185af9..ae8fed8 100644 --- a/modules/codec/faad.c +++ b/modules/codec/faad.c @@ -192,9 +192,6 @@ static int Open( vlc_object_t *p_this ) p_sys->i_buffer = p_sys->i_buffer_size = 0; p_sys->p_buffer = NULL; - /* Faad2 can't deal with truncated data (eg. from MPEG TS) */ - p_dec->b_need_packetized = true; - p_sys->b_sbr = p_sys->b_ps = false; p_dec->pf_decode_audio = DecodeBlock; diff --git a/modules/codec/flac.c b/modules/codec/flac.c index eaf8175..9fc69f8 100644 --- a/modules/codec/flac.c +++ b/modules/codec/flac.c @@ -359,9 +359,6 @@ static int OpenDecoder( vlc_object_t *p_this ) /* Set callbacks */ p_dec->pf_decode_audio = DecodeBlock; - /* */ - p_dec->b_need_packetized = true; - return VLC_SUCCESS; } diff --git a/modules/codec/gstdecode.c b/modules/codec/gstdecode.c index f623b9c..a2acf69 100644 --- a/modules/codec/gstdecode.c +++ b/modules/codec/gstdecode.c @@ -624,8 +624,6 @@ static int OpenDecoder( vlc_object_t *p_this ) "set state failure", VLC_EGENERIC ); p_sys->b_running = true; - /* Force packetized for now */ - p_dec->b_need_packetized = true; /* Set callbacks */ p_dec->pf_decode_video = DecodeBlock; diff --git a/modules/codec/mft.c b/modules/codec/mft.c index a61fa00..696319a 100644 --- a/modules/codec/mft.c +++ b/modules/codec/mft.c @@ -1155,7 +1155,6 @@ int Open(vlc_object_t *p_this) } p_dec->fmt_out.i_cat = p_dec->fmt_in.i_cat; - p_dec->b_need_packetized = true; return VLC_SUCCESS; diff --git a/modules/codec/omxil/mediacodec.c b/modules/codec/omxil/mediacodec.c index c37924d..a09853f 100644 --- a/modules/codec/omxil/mediacodec.c +++ b/modules/codec/omxil/mediacodec.c @@ -560,7 +560,6 @@ static int OpenDecoder(vlc_object_t *p_this, pf_MediaCodecApi_init pf_init) p_dec->fmt_out.i_cat = p_dec->fmt_in.i_cat; p_dec->fmt_out.video = p_dec->fmt_in.video; p_dec->fmt_out.audio = p_dec->fmt_in.audio; - p_dec->b_need_packetized = true; p_sys->mime = mime; p_sys->b_new_block = true; diff --git a/modules/codec/omxil/omxil.c b/modules/codec/omxil/omxil.c index 63470a5..3a94680 100644 --- a/modules/codec/omxil/omxil.c +++ b/modules/codec/omxil/omxil.c @@ -1248,8 +1248,6 @@ static int OpenGeneric( vlc_object_t *p_this, bool b_encode ) if(p_sys->b_error) goto error; - p_dec->b_need_packetized = true; - if (!p_sys->b_use_pts) msg_Dbg( p_dec, "using dts timestamp mode for %s", p_sys->psz_component); diff --git a/modules/codec/videotoolbox.m b/modules/codec/videotoolbox.m index 8bfa88d..7c0b968 100644 --- a/modules/codec/videotoolbox.m +++ b/modules/codec/videotoolbox.m @@ -662,8 +662,6 @@ static int OpenDecoder(vlc_object_t *p_this) p_dec->fmt_out.i_codec = VLC_CODEC_I420; } - p_dec->b_need_packetized = true; - p_dec->pf_decode_video = DecodeBlock; msg_Info(p_dec, "Using Video Toolbox to decode '%4.4s'", (char *)&p_dec->fmt_in.i_codec); diff --git a/modules/codec/vpx.c b/modules/codec/vpx.c index 1707e72..f17444a 100644 --- a/modules/codec/vpx.c +++ b/modules/codec/vpx.c @@ -201,7 +201,6 @@ static int Open(vlc_object_t *p_this) dec->fmt_out.video.i_width = dec->fmt_in.video.i_width; dec->fmt_out.video.i_height = dec->fmt_in.video.i_height; dec->fmt_out.i_codec = VLC_CODEC_I420; - dec->b_need_packetized = true; return VLC_SUCCESS; } diff --git a/modules/hw/mmal/codec.c b/modules/hw/mmal/codec.c index 38fda50..dca8db5 100644 --- a/modules/hw/mmal/codec.c +++ b/modules/hw/mmal/codec.c @@ -116,7 +116,6 @@ static int OpenDecoder(decoder_t *dec) goto out; } dec->p_sys = sys; - dec->b_need_packetized = true; sys->opaque = var_InheritBool(dec, MMAL_OPAQUE_NAME); bcm_host_init(); diff --git a/src/input/decoder.c b/src/input/decoder.c index ff5e3d1..ec74015 100644 --- a/src/input/decoder.c +++ b/src/input/decoder.c @@ -142,7 +142,6 @@ static int LoadDecoder( decoder_t *p_dec, bool b_packetizer, const es_format_t *restrict p_fmt ) { p_dec->b_frame_drop_allowed = true; - p_dec->b_need_packetized = false; p_dec->i_extra_picture_buffers = 0; p_dec->pf_decode_audio = NULL; @@ -1597,26 +1596,27 @@ static decoder_t * CreateDecoder( vlc_object_t *p_parent, p_dec->pf_get_display_date = DecoderGetDisplayDate; p_dec->pf_get_display_rate = DecoderGetDisplayRate; - /* Find a suitable decoder/packetizer module */ - if( LoadDecoder( p_dec, b_packetizer, fmt ) ) - return p_dec; - - /* Check if decoder requires already packetized data */ - if( !b_packetizer && - p_dec->b_need_packetized && !p_dec->fmt_in.b_packetized ) + /* Load a packetizer module if the input is not already packetized */ + if( !b_packetizer && !fmt->b_packetized ) { p_owner->p_packetizer = vlc_custom_create( p_parent, sizeof( decoder_t ), "packetizer" ); if( p_owner->p_packetizer ) { - if( LoadDecoder( p_owner->p_packetizer, true, &p_dec->fmt_in ) ) + if( LoadDecoder( p_owner->p_packetizer, true, fmt ) ) { vlc_object_release( p_owner->p_packetizer ); p_owner->p_packetizer = NULL; } + else + fmt = &p_owner->p_packetizer->fmt_out; } } + /* Find a suitable decoder/packetizer module */ + if( LoadDecoder( p_dec, b_packetizer, fmt ) ) + return p_dec; + /* Copy ourself the input replay gain */ if( fmt->i_cat == AUDIO_ES ) { _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits