📄 getvlc.c
字号:
#include <stdio.h>
#include "config.h"
#include "global.h"
#include "getvlc.h"
//deng
// BUGS ARE HERE!!!!!!!!!!1
int ____getTMNMV()
{
int code;
if (getbits1())
{
return 0;
}
if ((code = showbits(12))>=512)
{
code = (code>>8) - 2;
if( code < 0 ) code = 0 ;
if( code>=14 ) code =13;
flushbits(TMNMVtab0[code].len);
return TMNMVtab0[code].val;
}
// DENG:BUGS ARE HERE!!!!!!!!!!1
if ((code-=5)<0)
{
code = 5 ;
}
if (code>=128)
{
code = (code>>2) -32;
if( code < 0 ) code = 0 ;
if( code>=96 ) code =95;
flushbits(TMNMVtab1[code].len);
return TMNMVtab1[code].val;
}
flushbits(TMNMVtab2[code].len);
return TMNMVtab2[code].val;
}
// DENG: THE CORRECT getTMNMV
int getTMNMV()
{
int code;
if (getbits1())
{
return 0;
}
if ((code = showbits(12))>=512)
{
code = (code>>8) - 2;
flushbits(TMNMVtab0[code].len);
return TMNMVtab0[code].val;
}
if (code>=128)
{
code = (code>>2) -32;
flushbits(TMNMVtab1[code].len);
return TMNMVtab1[code].val;
}
if ((code-=5)<0)
{
fault=1;
return 0;
}
flushbits(TMNMVtab2[code].len);
return TMNMVtab2[code].val;
}
int getMCBPC()
{
int code;
code = showbits(9);
if( code == 0 ) code = 1;
if (code == 1) {
/* macroblock stuffing */
flushbits(9);
return -1;
}
if (code>=256)
{
flushbits(1);
return 0;
}
flushbits(MCBPCtab[code].len);
return MCBPCtab[code].val;
}
int getMODB()
{
int code;
int MODB;
code = showbits(2);
if (code < 2) {
MODB = 0;
flushbits(1);
}
else if (code == 2) {
MODB = 1;
flushbits(2);
}
else { /* code == 3 */
MODB = 2;
flushbits(2);
}
return MODB;
}
int getMCBPCintra()
{
int code;
code = showbits(9);
if( code < 8 ) code = 1 ;
if (code == 1) {
/* macroblock stuffing */
flushbits(9);
return -1;
}
code >>= 3;
if (code>=32)
{
flushbits(1);
return 3;
}
flushbits(MCBPCtabintra[code].len);
return MCBPCtabintra[code].val;
}
int getCBPY()
{
int code;
code = showbits(6);
if (code < 2) {
code = 2 ;
}
if (code>=48)
{
flushbits(2);
return 0;
}
flushbits(CBPYtab[code].len);
return CBPYtab[code].val;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -