Mercurial > libavcodec.hg
comparison h263.c @ 1090:8216533dd959 libavcodec
10l
author | michaelni |
---|---|
date | Fri, 28 Feb 2003 16:06:40 +0000 |
parents | 7e79a58954b1 |
children | f59c3f66363b |
comparison
equal
deleted
inserted
replaced
1089:7e79a58954b1 | 1090:8216533dd959 |
---|---|
1517 /* 0 cannot be represented also */ | 1517 /* 0 cannot be represented also */ |
1518 else if (level < 1) { | 1518 else if (level < 1) { |
1519 level = 1; | 1519 level = 1; |
1520 block[0] = 1; | 1520 block[0] = 1; |
1521 } | 1521 } |
1522 if (level == 128) | 1522 if (level == 128) //FIXME check rv10 |
1523 put_bits(&s->pb, 8, 0xff); | 1523 put_bits(&s->pb, 8, 0xff); |
1524 else | 1524 else |
1525 put_bits(&s->pb, 8, level & 0xff); | 1525 put_bits(&s->pb, 8, level & 0xff); |
1526 i = 1; | 1526 i = 1; |
1527 } else { | 1527 } else { |
3546 else | 3546 else |
3547 scan_table = s->intra_h_scantable.permutated; /* top */ | 3547 scan_table = s->intra_h_scantable.permutated; /* top */ |
3548 } | 3548 } |
3549 } else if (s->mb_intra) { | 3549 } else if (s->mb_intra) { |
3550 /* DC coef */ | 3550 /* DC coef */ |
3551 if (s->h263_rv10 && s->rv10_version == 3 && s->pict_type == I_TYPE) { | 3551 if(s->h263_rv10){ |
3552 if (s->rv10_version == 3 && s->pict_type == I_TYPE) { | |
3552 int component, diff; | 3553 int component, diff; |
3553 component = (n <= 3 ? 0 : n - 4 + 1); | 3554 component = (n <= 3 ? 0 : n - 4 + 1); |
3554 level = s->last_dc[component]; | 3555 level = s->last_dc[component]; |
3555 if (s->rv10_first_dc_coded[component]) { | 3556 if (s->rv10_first_dc_coded[component]) { |
3556 diff = rv_decode_dc(s, n); | 3557 diff = rv_decode_dc(s, n); |
3560 level = level & 0xff; /* handle wrap round */ | 3561 level = level & 0xff; /* handle wrap round */ |
3561 s->last_dc[component] = level; | 3562 s->last_dc[component] = level; |
3562 } else { | 3563 } else { |
3563 s->rv10_first_dc_coded[component] = 1; | 3564 s->rv10_first_dc_coded[component] = 1; |
3564 } | 3565 } |
3565 } else { | 3566 } else { |
3567 level = get_bits(&s->gb, 8); | |
3568 } | |
3569 }else{ | |
3566 level = get_bits(&s->gb, 8); | 3570 level = get_bits(&s->gb, 8); |
3567 if((level&0x7F) == 0){ | 3571 if((level&0x7F) == 0){ |
3568 fprintf("illegal dc at %d %d\n", s->mb_x, s->mb_y); | 3572 fprintf(stderr, "illegal dc %d at %d %d\n", level, s->mb_x, s->mb_y); |
3569 return -1; | 3573 return -1; |
3570 } | 3574 } |
3571 if (level == 255) | 3575 if (level == 255) |
3572 level = 128; | 3576 level = 128; |
3573 } | 3577 } |