dnxhddec: Decode and use interlace mb flag
authorChristophe Gisquet <christophe.gisquet@gmail.com>
Sat, 26 Sep 2015 15:38:22 +0000 (17:38 +0200)
committerVittorio Giovara <vittorio.giovara@gmail.com>
Tue, 29 Sep 2015 12:33:01 +0000 (14:33 +0200)
commitc49cbecbae5a42f4ca004197b0118cc50aaaca2e
tree944a2e2b32c3d4534f45be01b4c574859bdeb064
parentc5e5e6306223623de8352a3ecd224956aa5beb37
dnxhddec: Decode and use interlace mb flag

This bit is 1 in some samples, and seems to coincide with interlaced
mbs and CID1260. 2008 specs do not know about it, and maintain qscale
is 11 bits. This looks oversized, but may help larger bitdepths.

Currently, it leads to an obviously incorrect qscale value, meaning
its syntax is shifted by 1. However, reading 11 bits also leads to
obviously incorrect decoding: qscale seems to be 10 bits.

However, as most profiles still have 11bits qscale, the feature is
restricted to the CID1260 profile (this flag is dependent on
a higher-level flag located in the header).

The encoder writes 12 bits of syntax, last and first bits always 0,
which is now somewhat inconsistent with the decoder, but ends up with
the same effect (progressive + reserved bit).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
libavcodec/dnxhddec.c