[FFmpeg-devel] [PATCH] avcodec/dnxhdenc: DNxHR 444 and HQX support
Paul B Mahol
onemda at gmail.com
Tue Mar 28 15:41:58 EEST 2017
On 3/28/17, Mark Reid <mindmark at gmail.com> wrote:
> On Mon, Mar 27, 2017 at 3:14 PM, Paul B Mahol <onemda at gmail.com> wrote:
>
>> 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.
>>
>
> okay, well I tried instead
> ./ffmpeg_g -y -f lavfi -i
> nullsrc=s=2048x1556,geq="lum=random(1)*1023:cb=random(1):cr=random(1)*1023"
> \
> -vframes 5 \
> -profile:v "dnxhr_444" \
> -vcodec dnxhd \
> -pix_fmt yuv444p10 \
> test.mov
>
> and now I get a different failed assertion:
>
> Assertion block_w * sizeof(uint16_t) <= ((buf_linesize) >= 0 ?
> (buf_linesize) : (-(buf_linesize))) failed at
> libavcodec/videodsp_template.c:35
>
> same thing happens if I use a testsrc
> ./ffmpeg_g -y -f lavfi -i "testsrc=size=2048x1556" \
> -vframes 5 \
> -profile:v "dnxhr_444" \
> -vcodec dnxhd \
> -pix_fmt yuv444p10 \
> test.mov
>
> also get the same assertion for the hqx profile
Try attached patch: hqx have some issues with ratecontrol.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-avcodec-dnxhdenc-DNxHR-444-and-HQX-support.patch
Type: text/x-diff
Size: 21546 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170328/4c4fe44e/attachment.patch>
More information about the ffmpeg-devel
mailing list