]> git.sesse.net Git - vlc/blobdiff - src/input/es_out.c
* src/input/es_out.c: fixed ES_OUT_SET_FMT control.
[vlc] / src / input / es_out.c
index 46da448b070b0de142c8162963eecfc2c045050c..c54ce2fc0d6baf6e282ea5272f3cb809287f7df6 100644 (file)
@@ -997,7 +997,7 @@ static int EsOutControl( es_out_t *out, int i_query, va_list args )
              * to update the p_extra data */
             es_format_t *p_fmt = (es_format_t*) va_arg( args, es_format_t * );
             es = (es_out_id_t*) va_arg( args, es_out_id_t * );
-            if( es == NULL || !es->p_dec ) return VLC_EGENERIC;
+            if( es == NULL ) return VLC_EGENERIC;
 
             if( p_fmt->i_extra )
             {
@@ -1005,6 +1005,8 @@ static int EsOutControl( es_out_t *out, int i_query, va_list args )
                 es->fmt.p_extra = realloc( es->fmt.p_extra, p_fmt->i_extra );
                 memcpy( es->fmt.p_extra, p_fmt->p_extra, p_fmt->i_extra );
 
+                if( !es->p_dec ) return VLC_SUCCESS;
+
                 es->p_dec->fmt_in.i_extra = p_fmt->i_extra;
                 es->p_dec->fmt_in.p_extra =
                     realloc( es->p_dec->fmt_in.p_extra, p_fmt->i_extra );