[FFmpeg-devel] 10-bit DNxHD support

Joseph Artsimovich joseph
Tue Mar 8 18:29:02 CET 2011


My company needs support for encoding and decoding 10-bit DNxHD files.  We purchased the VC-3 specs and I was assigned to do this work.  We are going to submit the code to the FFMpeg project.

I kind of got decoding working already.  The code is attached.  It has problems though, which I'd like to discuss.
First of all, it doesn't work unless --disable-asm is used.  I did insert emms_c() between the mmx and floating point code, but it didn't help.
Second, it looks like I am stuck with faandct / idct.  It seems most (all?) of other implementations assume 8-bit samples and may overflow on 10-bit ones.

There is yet another problem that doesn't affect our company directly but does affect other users.  This problem is that DNxHD (both 8 and 10 bit) may use either normal YUV range, which is [16, 235] for Y and [16, 240] for U and V, or full [0, 255] YUV range.  Currently FFMpeg doesn't recognise full range files which results in a colorshift.  The reason it doesn't affect our company is that we don't use libav* stuff directly, but only through libquicktime.  Because the information about YUV range is not stored in DNxHD encoded stream but rather in quicktime metadata, I solved the problem on the libquicktime side and submitted a patch there.

P.S: I uploaded a short 10-bit DNxHD clip here: http://depositfiles.com/files/80ttjnwa9

Joseph Artsimovich
Software Developer
MirriAd Ltd

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 10bit_dnxhd_dec.patch
Type: application/octet-stream
Size: 27100 bytes
Desc: 10bit_dnxhd_dec.patch
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20110308/c7ec992e/attachment.obj>

More information about the ffmpeg-devel mailing list