bool input_DecoderHasFormatChanged ( decoder_t * p_dec , es_format_t * p_fmt , vlc_meta_t * * pp_meta ) {
 decoder_owner_sys_t * p_owner = p_dec -> p_owner ;
 bool b_changed ;
 vlc_mutex_lock ( & p_owner -> lock ) ;
 b_changed = p_owner -> b_fmt_description ;
 if ( b_changed ) {
 if ( p_fmt ) es_format_Copy ( p_fmt , & p_owner -> fmt_description ) ;
 if ( pp_meta ) {
 * pp_meta = NULL ;
 if ( p_owner -> p_description ) {
 * pp_meta = vlc_meta_New ( ) ;
 if ( * pp_meta ) vlc_meta_Merge ( * pp_meta , p_owner -> p_description ) ;
 }
 }
 p_owner -> b_fmt_description = false ;
 }
 vlc_mutex_unlock ( & p_owner -> lock ) ;
 return b_changed ;
 }
bool input_DecoderHasFormatChanged ( decoder_t * p_dec , es_format_t * p_fmt , vlc_meta_t * * pp_meta ) {
 decoder_owner_sys_t * p_owner = p_dec -> p_owner ;
 bool b_changed ;
 vlc_mutex_lock ( & p_owner -> lock ) ;
 b_changed = p_owner -> b_fmt_description ;
 if ( b_changed ) {
 if ( p_fmt ) es_format_Copy ( p_fmt , & p_owner -> fmt_description ) ;
 if ( pp_meta ) {
 * pp_meta = NULL ;
 if ( p_owner -> p_description ) {
 * pp_meta = vlc_meta_New ( ) ;
 if ( * pp_meta ) vlc_meta_Merge ( * pp_meta , p_owner -> p_description ) ;
 }
 }
 p_owner -> b_fmt_description = false ;
 }
 vlc_mutex_unlock ( & p_owner -> lock ) ;
 return b_changed ;
 }