mirror of https://git.ffmpeg.org/ffmpeg.git
dnxhd: add decoder support for DNxHR
Signed-off-by: Christophe Gisquet <christophe.gisquet@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
3a6a432b58
commit
118a3cd2c5
|
@ -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,
|
||||||
{
|
{
|
||||||
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,
|
||||||
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]);
|
||||||
|
|
Loading…
Reference in New Issue