00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _MPG_COMMON_H_
00028 #define _MPG_COMMON_H_
00029
00030 #include <stdint.h>
00031 #include "ringbuffer.h"
00032
00033
00034
00035 typedef struct index_unit_s{
00036 uint8_t active;
00037 uint32_t length;
00038 uint32_t start;
00039 uint64_t pts;
00040 uint64_t dts;
00041 uint8_t seq_header;
00042 uint8_t seq_end;
00043 uint8_t gop;
00044 uint8_t end_seq;
00045 uint8_t frame;
00046 uint8_t gop_off;
00047 uint8_t frame_off;
00048 uint8_t frame_start;
00049 uint8_t err;
00050 uint32_t framesize;
00051 uint64_t ptsrate;
00052 } index_unit;
00053
00054 typedef struct extdata_s{
00055 index_unit iu;
00056 uint64_t pts;
00057 uint64_t pts_off;
00058 int type;
00059 int strmnum;
00060 int frmperpkt;
00061 char language[4];
00062 dummy_buffer dbuf;
00063 } extdata_t;
00064
00065
00066 #define NO_ERR 0
00067 #define FRAME_ERR 1
00068
00069
00070 void show_buf(uint8_t *buf, int length);
00071 int find_mpg_header(uint8_t head, uint8_t *buf, int length);
00072 int find_any_header(uint8_t *head, uint8_t *buf, int length);
00073 uint64_t trans_pts_dts(uint8_t *pts);
00074 int mring_peek( ringbuffer *rbuf, uint8_t *buf, unsigned int l, uint32_t off);
00075 int ring_find_mpg_header(ringbuffer *rbuf, uint8_t head, int off, int le);
00076 int ring_find_any_header(ringbuffer *rbuf, uint8_t *head, int off, int le);
00077
00078 #endif