www.pudn.com > wm2.5.zip > bitstream.h


 
/* 
*********************************************************************** 
* COPYRIGHT AND WARRANTY INFORMATION 
* 
* Copyright 2004, Advanced Audio Video Coding Standard, Part II 
* 
* DISCLAIMER OF WARRANTY 
* 
* These software programs are available to the users without any 
* license fee or royalty on an "as is" basis. The AVS disclaims 
* any and all warranties, whether express, implied, or statutory, 
* including any implied warranties of merchantability or of fitness 
* for a particular purpose. In no event shall the contributors or  
* the AVS be liable for any incidental, punitive, or consequential 
* damages of any kind whatsoever arising from the use of this program. 
* 
* This disclaimer of warranty extends to the user of this program 
* and user's customers, employees, agents, transferees, successors, 
* and assigns. 
* 
* The AVS does not represent or warrant that the program furnished 
* hereunder are free of infringement of any third-party patents. 
* Commercial implementations of AVS, including shareware, may be 
* subject to royalty fees to patent holders. Information regarding 
* the AVS patent policy is available from the AVS Web site at 
* http://www.avs.org.cn 
* 
* THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE AVS PATENT POLICY. 
************************************************************************ 
*/ 
 
#ifndef _BITSTREAM_H_ 
#define _BITSTREAM_H_ 
 
#include "define.h" 
//WJP FOR SLICE 
#define SVA_STREAM_BUF_SIZE 1024 //must large than 3 
typedef struct { 
	unsigned char	buf[SVA_STREAM_BUF_SIZE];  //流缓冲区 
	unsigned int	uPreBytes;                 //最近写入的3个字节,初始值是0xFFFFFFFF 
	int	iBytePosition;		                   //当前字节位置 
	int	iBitOffset;			                   //当前位偏移,0表示最高位 
	int	iNumOfStuffBits;	                   //已插入的填充位的个数,遇到开始码时置0 
	int iBitsCount;			                   //码流总位数 
} OutputStream; 
 
int write_start_code(OutputStream *p,unsigned char code); 
int write_1_bit(OutputStream *p,int b); 
int write_n_bit(OutputStream *p,int b,int n); 
int write_align_stuff(OutputStream *p); 
 
extern OutputStream *pORABS; 
//WJP END 
//void Sequence_Header(void); 
void OpenBitStreamFile(char *Filename); 
//void terminate_sequence(void); 
void WriteBitstreamtoFile(void); 
void AllocateBitstream(void); 
void FreeBitstream(void); 
void Init_Bitstream(void); 
void Form_RBSP(); 
void no_mem_exit(char *where); 
 
#endif //_BITSTREAM_H_