Mercurial > libavcodec.hg
comparison mpeg12.c @ 10610:cf7af348a11a libavcodec
slif aka "SoftLab MPEG-2 I-frames Codec" support.
Flipping one bit still is popular it seems as a means to create a new codec.
fixes issue1469.
author | michael |
---|---|
date | Tue, 01 Dec 2009 02:07:46 +0000 |
parents | 6e672d7eb297 |
children | 7f6911429cdc |
comparison
equal
deleted
inserted
replaced
10609:f864e7927dff | 10610:cf7af348a11a |
---|---|
1692 skip_bits(&s->gb, 8); | 1692 skip_bits(&s->gb, 8); |
1693 } | 1693 } |
1694 | 1694 |
1695 s->mb_x=0; | 1695 s->mb_x=0; |
1696 | 1696 |
1697 if(mb_y==0 && s->codec_tag == AV_RL32("SLIF")){ | |
1698 skip_bits1(&s->gb); | |
1699 }else{ | |
1697 for(;;) { | 1700 for(;;) { |
1698 int code = get_vlc2(&s->gb, mbincr_vlc.table, MBINCR_VLC_BITS, 2); | 1701 int code = get_vlc2(&s->gb, mbincr_vlc.table, MBINCR_VLC_BITS, 2); |
1699 if (code < 0){ | 1702 if (code < 0){ |
1700 av_log(s->avctx, AV_LOG_ERROR, "first mb_incr damaged\n"); | 1703 av_log(s->avctx, AV_LOG_ERROR, "first mb_incr damaged\n"); |
1701 return -1; | 1704 return -1; |
1708 } else { | 1711 } else { |
1709 s->mb_x += code; | 1712 s->mb_x += code; |
1710 break; | 1713 break; |
1711 } | 1714 } |
1712 } | 1715 } |
1716 } | |
1717 | |
1713 if(s->mb_x >= (unsigned)s->mb_width){ | 1718 if(s->mb_x >= (unsigned)s->mb_width){ |
1714 av_log(s->avctx, AV_LOG_ERROR, "initial skip overflow\n"); | 1719 av_log(s->avctx, AV_LOG_ERROR, "initial skip overflow\n"); |
1715 return -1; | 1720 return -1; |
1716 } | 1721 } |
1717 | 1722 |