/*******************************************************************
                       PES treating interface
 *******************************************************************/
#ifndef PES_H
#define PES_H

#include "bitstream.h"
#include "stream_type.h"

#define MAX_PACKET_DATA_LENGTH 65536

typedef struct {
	int  stream_id;
	int  data_length;
	
	unsigned char data[MAX_PACKET_DATA_LENGTH];
} PES_PACKET;

typedef struct {
	int type;
	int id;
} PES_STREAM_TYPE;

#ifdef __cplusplus
extern "C" {
#endif

#ifndef PES_C
extern int read_pes_packet(BITSTREAM *in, PES_PACKET *out);
extern unsigned int get_pes_packet_data_length(PES_PACKET *p);
extern int extract_pes_stream_type(PES_PACKET *p, PES_STREAM_TYPE *type);
extern int extract_pes_packet_data(PES_PACKET *p, unsigned char *data, unsigned int *length);
#endif

#ifdef __cplusplus
}
#endif

#endif