Commit 118a3cd2 authored by Jeremy James's avatar Jeremy James Committed by Michael Niedermayer

dnxhd: add decoder support for DNxHR

Signed-off-by: 's avatarChristophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 3a6a432b
...@@ -1073,6 +1073,14 @@ const CIDEntry ff_dnxhd_cid_table[] = { ...@@ -1073,6 +1073,14 @@ const CIDEntry ff_dnxhd_cid_table[] = {
dnxhd_1237_ac_flags, dnxhd_1237_ac_flags,
dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run, dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
{ 80, 90, 100, 110 } }, { 80, 90, 100, 110 } },
{ 1274, DNXHD_VARIABLE, DNXHD_VARIABLE, DNXHD_VARIABLE, DNXHD_VARIABLE,
0, 4, 8, 3,
dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
dnxhd_1237_ac_flags,
dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
{ 0 } },
}; };
int ff_dnxhd_get_cid_table(int cid) int ff_dnxhd_get_cid_table(int cid)
......
...@@ -153,6 +153,7 @@ static int dnxhd_decode_header(DNXHDContext *ctx, AVFrame *frame, ...@@ -153,6 +153,7 @@ static int dnxhd_decode_header(DNXHDContext *ctx, AVFrame *frame,
{ {
static const uint8_t header_prefix[] = { 0x00, 0x00, 0x02, 0x80, 0x01 }; static const uint8_t header_prefix[] = { 0x00, 0x00, 0x02, 0x80, 0x01 };
static const uint8_t header_prefix444[] = { 0x00, 0x00, 0x02, 0x80, 0x02 }; static const uint8_t header_prefix444[] = { 0x00, 0x00, 0x02, 0x80, 0x02 };
static const uint8_t header_prefixhr[] = { 0x00, 0x00, 0x02, 0x80, 0x03 };
int i, cid, ret; int i, cid, ret;
int old_bit_depth = ctx->bit_depth; int old_bit_depth = ctx->bit_depth;
...@@ -162,7 +163,7 @@ static int dnxhd_decode_header(DNXHDContext *ctx, AVFrame *frame, ...@@ -162,7 +163,7 @@ static int dnxhd_decode_header(DNXHDContext *ctx, AVFrame *frame,
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
if (memcmp(buf, header_prefix, 5) && memcmp(buf, header_prefix444, 5)) { if (memcmp(buf, header_prefix, 5) && memcmp(buf, header_prefix444, 5) && memcmp(buf, header_prefixhr, 5)) {
av_log(ctx->avctx, AV_LOG_ERROR, av_log(ctx->avctx, AV_LOG_ERROR,
"unknown header 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X\n", "unknown header 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X\n",
buf[0], buf[1], buf[2], buf[3], buf[4]); buf[0], buf[1], buf[2], buf[3], buf[4]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment