diff --git a/modules/codec/videotoolbox.m b/modules/codec/videotoolbox.m
index 782d0f47c0da2491736396451a75e36e6333c38b..4a5352bd694a3cfd176565f6a3d40f95919c54a7 100644
--- a/modules/codec/videotoolbox.m
+++ b/modules/codec/videotoolbox.m
@@ -261,6 +261,7 @@ static int StartVideoToolbox(decoder_t *p_dec, block_t *p_block)
     CFDictionarySetValue(decoderConfiguration,
                          kCVImageBufferChromaLocationTopFieldKey,
                          kCVImageBufferChromaLocation_Left);
+    p_sys->b_zero_copy = var_InheritBool(p_dec, "videotoolbox-zero-copy");
 
     /* fetch extradata */
     CFMutableDictionaryRef extradata_info = NULL;
@@ -476,19 +477,16 @@ static int StartVideoToolbox(decoder_t *p_dec, block_t *p_block)
         return VLC_EGENERIC;
     }
 
-    p_sys->b_zero_copy = var_InheritBool(p_dec, "videotoolbox-zero-copy");
-
     /* destination pixel buffer attributes */
     CFMutableDictionaryRef dpba = CFDictionaryCreateMutable(kCFAllocatorDefault,
                                                             2,
                                                             &kCFTypeDictionaryKeyCallBacks,
                                                             &kCFTypeDictionaryValueCallBacks);
-    /* we need to change the following keys for convienence
-     * conversations as soon as we have a 0-copy pipeline */
+
 #if !TARGET_OS_IPHONE
     CFDictionarySetValue(dpba,
                          kCVPixelBufferOpenGLCompatibilityKey,
-                         kCFBooleanFalse);
+                         kCFBooleanTrue);
 #else
     CFDictionarySetValue(dpba,
                          kCVPixelBufferOpenGLESCompatibilityKey,