32 lines
923 B
C
32 lines
923 B
C
#ifndef COSMOPOLITAN_DSP_MPEG_DEMUX_H_
|
|
#define COSMOPOLITAN_DSP_MPEG_DEMUX_H_
|
|
#include "dsp/mpeg/mpeg.h"
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
COSMOPOLITAN_C_START_
|
|
|
|
#define START_PACK 0xBA
|
|
#define START_END 0xB9
|
|
#define START_SYSTEM 0xBB
|
|
|
|
typedef struct plm_demux_t {
|
|
plm_buffer_t *buffer;
|
|
int destroy_buffer_when_done;
|
|
double system_clock_ref;
|
|
int has_pack_header;
|
|
int has_system_header;
|
|
int num_audio_streams;
|
|
int num_video_streams;
|
|
plm_packet_t current_packet;
|
|
plm_packet_t next_packet;
|
|
} plm_demux_t;
|
|
|
|
double plm_demux_read_time(plm_demux_t *self);
|
|
void plm_demux_decode_pack_header(plm_demux_t *self);
|
|
void plm_demux_decode_system_header(plm_demux_t *self);
|
|
plm_packet_t *plm_demux_decode_packet(plm_demux_t *self, int start_code);
|
|
plm_packet_t *plm_demux_get_packet(plm_demux_t *self);
|
|
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* COSMOPOLITAN_DSP_MPEG_DEMUX_H_ */
|