www.pudn.com > rm52h.rar > bitstream.h
/* *********************************************************************** * COPYRIGHT AND WARRANTY INFORMATION * * Copyright 2003, 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. ************************************************************************ */ /* ************************************************************************************* * File name: * Function: * ************************************************************************************* */ #ifndef _BIT_STREAM_H #define _BIT_STREAM_H #include#define SVA_START_CODE_EMULATION #ifdef SVA_START_CODE_EMULATION #define SVA_STREAM_BUF_SIZE 1024 //must large than 3 typedef struct { FILE *f; 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); extern OutputStream *pORABS; #endif void CloseBitStreamFile(); void OpenBitStreamFile(char *Filename); int WriteSequenceHeader(); int WriteSequenceDisplayExtension(); int WriteUserData(char *userdata); int WriteSequenceEnd(); void WriteBitstreamtoFile(); int WriteCopyrightExtension(); int WriteCameraParametersExtension(); int WriteSliceHeader(int slice_nr, int slice_qp); #endif