www.pudn.com > avs-m3.rar > sei.h


 
/*! 
 ************************************************************************************* 
 * \file sei.h 
 * 
 * \brief 
 *    Prototypes for sei.c 
 * \by liuhui 2005/03/20 liuhui@mail.ustc.edu.cn 
 ************************************************************************************* 
 */ 
 
#ifndef _SEI_H_ 
#define _SEI_H_ 
 
//! definition of SEI payload type 
typedef enum { 
	SEI_USER_DATA = 0, 
	SEI_FULL_FRAME_FREEZE, 
	SEI_FULL_FRAME_FREEZE_RELEASE, 
	SEI_SCALABLE_LAYER_PROFILE_LEVEL, 
	SEI_HRD_BUFFERING_PARAMETERS, 
	SEI_GRADUAL_RANDOM_ACCESS 
} SEI_type; 
 
#define PRINT_USER_DATA  
#define PRINT_FULL_FRAME_FREEZE 
#define PRINT_FULL_FRAME_FREEZE_RELEASE 
#define PRINT_SCALABLE_LAYER_PROFILE_LEVEL 
//#define PRINT_HRD 
#define PRINT_GRADUAL_RANDOM_ACCESS 
#define PRINT_RESERVED 
 
void InterpretSEIMessage(byte* msg, int size, Image *img); 
 
void interpret_user_data( byte* payload, int size, Image *img ); 
void interpret_full_frame_freeze( byte* payload, int size, Image *img ); 
void interpret_full_frame_freeze_release( byte* payload, int size, Image *img ); 
void interpret_scalable_layer_profile_level(byte* payload, int size, Image *img ); 
void interpret_hrd_buffering_parameters(byte* payload, int size, Image *img ); 
void interpret_gradual_random_access( byte* payload, int size, Image *img ); 
void interpret_reserved( byte* payload, int size, Image *img ); 
 
//! the following functions are for VLC coding in SEI,referring to file VLC.C 
int SEI_read_VLC(SyntaxElement *sym, Bitstream *bitstream); 
int SEI_GetVLCSymbol (int *info, Bitstream *bitstream); 
int SEI_read_FLC(SyntaxElement *sym, Bitstream *bitstream); 
int SEI_ue_v(char *tracestring, Bitstream *bitstream); 
int SEI_u_v(int LenInBits, char*tracestring, Bitstream *bitstream); 
int SEI_u_1 (char *tracestring, Bitstream *bitstream); 
 
#endif