mirror of https://git.ffmpeg.org/ffmpeg.git
cavsdec: fix qp fixed slice handling
Fixes Ticket3400 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
52e563bb2f
commit
0accf24b15
|
@ -214,6 +214,7 @@ typedef struct AVSContext {
|
||||||
int luma_scan[4];
|
int luma_scan[4];
|
||||||
int qp;
|
int qp;
|
||||||
int qp_fixed;
|
int qp_fixed;
|
||||||
|
int pic_qp_fixed;
|
||||||
int cbp;
|
int cbp;
|
||||||
ScanTable scantable;
|
ScanTable scantable;
|
||||||
|
|
||||||
|
|
|
@ -904,7 +904,7 @@ static inline int decode_slice_header(AVSContext *h, GetBitContext *gb)
|
||||||
|
|
||||||
/* mark top macroblocks as unavailable */
|
/* mark top macroblocks as unavailable */
|
||||||
h->flags &= ~(B_AVAIL | C_AVAIL);
|
h->flags &= ~(B_AVAIL | C_AVAIL);
|
||||||
if ((h->mby == 0) && (!h->qp_fixed)) {
|
if (!h->pic_qp_fixed) {
|
||||||
h->qp_fixed = get_bits1(gb);
|
h->qp_fixed = get_bits1(gb);
|
||||||
h->qp = get_bits(gb, 6);
|
h->qp = get_bits(gb, 6);
|
||||||
}
|
}
|
||||||
|
@ -1027,6 +1027,7 @@ static int decode_pic(AVSContext *h)
|
||||||
skip_bits1(&h->gb); //advanced_pred_mode_disable
|
skip_bits1(&h->gb); //advanced_pred_mode_disable
|
||||||
skip_bits1(&h->gb); //top_field_first
|
skip_bits1(&h->gb); //top_field_first
|
||||||
skip_bits1(&h->gb); //repeat_first_field
|
skip_bits1(&h->gb); //repeat_first_field
|
||||||
|
h->pic_qp_fixed =
|
||||||
h->qp_fixed = get_bits1(&h->gb);
|
h->qp_fixed = get_bits1(&h->gb);
|
||||||
h->qp = get_bits(&h->gb, 6);
|
h->qp = get_bits(&h->gb, 6);
|
||||||
if (h->cur.f->pict_type == AV_PICTURE_TYPE_I) {
|
if (h->cur.f->pict_type == AV_PICTURE_TYPE_I) {
|
||||||
|
|
Loading…
Reference in New Issue