avformat/movenc: respect color_range when encoding dnxhd.
authorMark Boorer <markboo99@gmail.com>
Tue, 8 Jul 2014 21:09:57 +0000 (22:09 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 8 Jul 2014 22:35:23 +0000 (00:35 +0200)
Set the ACLR atom appropriately for legal / full range.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/movenc.c

index 919ae58..7e737b0 100644 (file)
@@ -807,7 +807,11 @@ static int mov_write_avid_tag(AVIOContext *pb, MOVTrack *track)
     ffio_wfourcc(pb, "ACLR");
     ffio_wfourcc(pb, "ACLR");
     ffio_wfourcc(pb, "0001");
-    avio_wb32(pb, 2); /* yuv range: full 1 / normal 2 */
+    if (track->enc->color_range == AVCOL_RANGE_MPEG) { /* Legal range (16-235) */
+        avio_wb32(pb, 1); /* Corresponds to 709 in official encoder */
+    } else { /* Full range (0-255) */
+        avio_wb32(pb, 2); /* Corresponds to RGB in official encoder */
+    }
     avio_wb32(pb, 0); /* unknown */
 
     avio_wb32(pb, 24); /* size */