[FFmpeg-devel] [PATCH] avcodec/dnxhdenc: DNxHR 444 and HQX support

Paul B Mahol onemda at gmail.com
Tue Mar 28 01:14:09 EEST 2017


On 3/27/17, Paul B Mahol <onemda at gmail.com> wrote:
> On 3/27/17, Mark Reid <mindmark at gmail.com> wrote:
>> On Mon, Mar 27, 2017 at 11:08 AM, Paul B Mahol <onemda at gmail.com> wrote:
>>
>>> Signed-off-by: Paul B Mahol <onemda at gmail.com>
>>> ---
>>>  libavcodec/dnxhdenc.c | 227 ++++++++++++++++++++++++++++++
>>> +++++---------------
>>>  libavcodec/dnxhdenc.h |   6 +-
>>>  2 files changed, 163 insertions(+), 70 deletions(-)
>>>
>
> [...]
>
>>> +    case AV_PIX_FMT_YUV444P10:
>>> +    case AV_PIX_FMT_GBRP10:
>>> +        ctx->bit_depth = 10;
>>>
>>
>> Am I missing something, I thought the dnxhr HQX and 444 profiles were
>> 12bit?
>> http://avid.force.com/pkb/articles/en_US/White_Paper/DNxHR-Codec-Bandwidth-Specifications
>>
>
> They are both 10 and 12 bit.
>
>> I get a failed Assertion here,
>>
>> Assertion nbits < ctx->bit_depth + 4 failed at libavcodec/dnxhdenc.c:837
>> when I try the following command
>> ./ffmpeg_g -y -f rawvideo -video_size 2048x1556 -pixel_format yuv444p10
>> -i
>> /dev/urandom \
>>     -loglevel debug \
>>     -vframes 5 \
>>     -profile:v "dnxhr_444" \
>>     -vcodec dnxhd \
>>     -pix_fmt yuv444p10 \
>>     test.mov
>>
>
> What could be cause of that? If I try to avoid that I get ratecontrol
> error.

Actually that command is invalid as it passes > (2^10 - 1) values to
video frame.
Use geq="lum=random(x)*1023:cb=random(y):cr=random(z)*1023" instead.


More information about the ffmpeg-devel mailing list