diff --git a/src/input/decoder.c b/src/input/decoder.c
index 662048e2cb96d0127769c756522032151fee44fd..fe824bb2741060a73cce806adbf8a99a3ba8d55c 100644
--- a/src/input/decoder.c
+++ b/src/input/decoder.c
@@ -307,6 +307,14 @@ static vout_thread_t *aout_request_vout( void *p_private,
 {
     decoder_t *p_dec = p_private;
     struct decoder_owner *p_owner = dec_get_owner( p_dec );
+    video_format_t fmt;
+
+    if (p_fmt != NULL)
+    {
+        fmt = *p_fmt;
+        p_fmt = &fmt;
+        video_format_AdjustColorSpace( &fmt );
+    }
 
     p_vout = input_resource_RequestVout( p_owner->p_resource,
         &(vout_configuration_t){ .vout = p_vout, .fmt = p_fmt, .dpb_size = 1 },