12#define TS_HEADER_MIN 4
13#define PS_HEADER_L1 14
14#define PS_HEADER_L2 (PS_HEADER_L1+24)
18#define SYSTEM_START_CODE_S 0xB9
19#define SYSTEM_START_CODE_E 0xFF
20#define PACK_START 0xBA
22#define PROG_STREAM_MAP 0xBC
23#define PRIVATE_STREAM1 0xBD
24#define PADDING_STREAM 0xBE
25#define PRIVATE_STREAM2 0xBF
26#define AUDIO_STREAM_S 0xC0
27#define AUDIO_STREAM_E 0xDF
28#define VIDEO_STREAM_S 0xE0
29#define VIDEO_STREAM_E 0xEF
30#define ECM_STREAM 0xF0
31#define EMM_STREAM 0xF1
32#define DSM_CC_STREAM 0xF2
33#define ISO13522_STREAM 0xF3
34#define PROG_STREAM_DIR 0xFF
37#define PTS_DTS_FLAGS 0xC0
39#define ES_RATE_FLAG 0x10
40#define DSM_TRICK_FLAG 0x08
41#define ADD_CPY_FLAG 0x04
42#define PES_CRC_FLAG 0x02
43#define PES_EXT_FLAG 0x01
49#define MAX_PLENGTH 0xFFFF
50#define MMAX_PLENGTH (8*MAX_PLENGTH)
52#define MAX_PTS (0x0000000200000000ULL)
53#define MAX_PTS2 (300* MAX_PTS)
97int64_t
ptsdiff(uint64_t pts1, uint64_t pts2);
98uint64_t
uptsdiff(uint64_t pts1, uint64_t pts2);
99int ptscmp(uint64_t pts1, uint64_t pts2);
100uint64_t
ptsadd(uint64_t pts1, uint64_t pts2);
104 uint8_t *obuf,
int stuffing, uint8_t ptsdts);
106 uint64_t SCR, uint64_t muxr, uint8_t *buf);
109 uint32_t muxr, uint8_t *buf,
int *alength, uint8_t ptsdts,
110 int nframes,
int ac3_off,
ringbuffer *ac3rbuffer);
112 uint64_t SCR, uint32_t muxr, uint8_t *buf,
int *alength,
115 uint64_t vdts, uint64_t SCR, uint64_t muxr,
116 uint8_t *buf,
int *vlength,
118int write_nav_pack(
int pack_size,
int extcnt, uint64_t SCR, uint32_t muxr,
122static inline void ptsdec(uint64_t *pts1, uint64_t pts2)
127static inline void ptsinc(uint64_t *pts1, uint64_t pts2)
std::chrono::duration< CHRONO_TYPE, std::ratio< 1, 90000 > > pts
static void ptsdec(uint64_t *pts1, uint64_t pts2)
int write_pes_header(uint8_t id, int length, uint64_t PTS, uint64_t DTS, uint8_t *obuf, int stuffing, uint8_t ptsdts)
void get_pes(pes_in_t *p, uint8_t *buf, int count, void(*func)(pes_in_t *p))
void write_padding_pes(int pack_size, int extcnt, uint64_t SCR, uint64_t muxr, uint8_t *buf)
void printptss(int64_t pts)
void printpts(int64_t pts)
int write_audio_pes(int pack_size, int extcnt, int n, uint64_t pts, uint64_t SCR, uint32_t muxr, uint8_t *buf, int *alength, uint8_t ptsdts, ringbuffer *arbuffer)
int ptscmp(uint64_t pts1, uint64_t pts2)
int write_video_pes(int pack_size, int extcnt, uint64_t vpts, uint64_t vdts, uint64_t SCR, uint64_t muxr, uint8_t *buf, int *vlength, uint8_t ptsdts, ringbuffer *vrbuffer)
uint64_t ptsadd(uint64_t pts1, uint64_t pts2)
int64_t ptsdiff(uint64_t pts1, uint64_t pts2)
int write_nav_pack(int pack_size, int extcnt, uint64_t SCR, uint32_t muxr, uint8_t *buf)
int write_ac3_pes(int pack_size, int extcnt, int n, uint64_t pts, uint64_t SCR, uint32_t muxr, uint8_t *buf, int *alength, uint8_t ptsdts, int nframes, int ac3_off, ringbuffer *ac3rbuffer)
uint64_t uptsdiff(uint64_t pts1, uint64_t pts2)
void init_pes_in(pes_in_t *p, int type, ringbuffer *rb, int wi)
static void ptsinc(uint64_t *pts1, uint64_t pts2)
uint8_t sheader_llength[2]