[FFmpeg-devel] 10-bit DNxHD support
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
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 27100 bytes
More information about the ffmpeg-devel