📄 mplex.h
字号:
Buffer_queue *first;
} Buffer_struc;
/*************************************************************************
Funktionsprototypen, keine Argumente, K&R Style
*************************************************************************/
int domplex(int mplex_video, int mplex_audio);
/* Ueberpruefen der Argumente */
int check_files ( /* Kontrolliert ob Files vorhanden und */
unsigned int *audio_bytes,
unsigned int *audio1_bytes,
unsigned int *video_bytes,
unsigned int which_streams);
/* weist sie Audio/Video Pointern zu */
int open_file ( /* File vorhanden? */
char *name,
unsigned int *bytes);
int get_info_video ( /* Info Access Units Video Stream */
char *video_file,
char *video_units,
Video_struc *video_info,
double *startup_delay,
unsigned int *video_total,
unsigned int length);
void output_info_video ( /* Ausgabe Information Access Units */
Video_struc *video_info);
int get_info_audio ( /* Info Access Units Audio Stream */
char *audio_file,
char *audio_units,
Audio_struc *audio_info,
double *startup_delay,
unsigned int *audio_total,
unsigned int length);
void output_info_audio ( /* Ausgabe Information Access Units */
Audio_struc *audio_info);
int marker_bit ( /* Checks for marker bit */
unsigned int what);
void empty_video_struc ( /* Initialisiert Struktur fuer SUN cc */
Video_struc *pointer);
void empty_audio_struc ( /* Initialisiert Struktur fuer SUN cc */
Audio_struc *pointer);
void empty_vaunit_struc ( /* Initialisiert Struktur fuer SUN cc */
Vaunit_struc *pointer);
void empty_aaunit_struc ( /* Initialisiert Struktur fuer SUN cc */
Aaunit_struc *pointer);
void empty_sector_struc ( /* Initialisiert Struktur fuer SUN cc */
Sector_struc *pointer);
void empty_timecode_struc ( /* Initialisiert Struktur fuer SUN cc */
Timecode_struc *timecode);
void init_buffer_struc ( /* Initialisiert Struktur fuer SUN cc */
Buffer_struc *pointer,
unsigned int size);
void copy_timecode ( /* setzt 2tes TimeC. dem 1ten gleich */
Timecode_struc *time_original, Timecode_struc *time_copy);
void make_timecode ( /* rechnet aus double einen TimeC. */
double timestamp,
Timecode_struc *pointer);
double get_timecode ( /* rechnet aus double einen TimeC. */
Timecode_struc *pointer);
/* und schreibt ihn in Timecode_struc */
void add_to_timecode ( /* addiert 1tes TimeC. zum 2ten */
Timecode_struc *add,
Timecode_struc *to);
void buffer_timecode ( /* schreibt Timecode in Bitstreamformat */
Timecode_struc *pointer,
unsigned char marker,
unsigned char **buffer);
int comp_timecode ( /* 1tes TimeC. <= 2tes TimeC. ? */
Timecode_struc *TS1,
Timecode_struc *TS2);
void create_sector ( /* erstellt einen Sector */
Sector_struc *sector,
Pack_struc *pack,
Sys_header_struc *sys_header,
unsigned int packet_size,
unsigned int partial_packet_size, /* used for svcd multiplexing */
FILE *inputstream,
unsigned char type,
unsigned char subtype,
unsigned char buffer_scale,
unsigned int buffer_size,
unsigned char buffers,
Timecode_struc *PTS,
Timecode_struc *DTS,
unsigned char timestamps,
unsigned int which_streams,
unsigned int sector_pad,
unsigned int svcd_offset,
unsigned int write_broken_link,
unsigned int write_seq_end,
unsigned int write_seq_hdr,
unsigned int sh_length,
unsigned char *seq_hdr);
void create_sys_header ( /* erstellt einen System Header */
Sys_header_struc *sys_header,
unsigned int rate_bound,
unsigned char audio_bound,
unsigned char fixed,
unsigned char CSPS,
unsigned char audio_lock,
unsigned char video_lock,
unsigned char video_bound,
unsigned char stream1,
unsigned char buffer1_scale,
unsigned int buffer1_size,
unsigned char stream2,
unsigned char buffer2_scale,
unsigned int buffer2_size,
unsigned char stream3,
unsigned char buffer3_scale,
unsigned int buffer3_size,
unsigned int which_streams);
void create_pack ( /* erstellt einen Pack Header */
Pack_struc *pack,
Timecode_struc *SCR,
unsigned int mux_rate);
int output_video ( /* erstellt und schreibt Video pack aus */
Timecode_struc *SCR,
Timecode_struc *SCR_delay,
FILE *vunits_info,
FILE *istream_v,
Pack_struc *pack,
Sys_header_struc *sys_header,
Buffer_struc *buffer,
Vaunit_struc *video_au,
unsigned char *picture_start,
unsigned int mux_rate,
unsigned long packet_data_size,
unsigned char marker_pack,
unsigned int which_streams,
unsigned int sh_length,
unsigned char *seq_hdr);
int output_audio ( /* erstellt und schreibt Audio pack aus */
Timecode_struc *SCR,
Timecode_struc *SCR_delay,
FILE *aunits_info,
FILE *istream_a,
Pack_struc *pack,
Sys_header_struc *sys_header,
Buffer_struc *buffer,
Aaunit_struc *audio_au,
unsigned char *audio_frame_start,
unsigned int *audio_counter,
unsigned int *audio_underflows,
unsigned char audio_PSTD,
unsigned char aid,
unsigned char audio_subid,
unsigned char abuffer_scale,
unsigned int abuffer_size,
unsigned int mux_rate,
unsigned long packet_data_size,
unsigned char marker_pack,
unsigned int which_streams,
char *audio_start_new_file);
int output_padding ( /* erstellt und schreibt Padding pack */
Timecode_struc *SCR,
Pack_struc *pack,
Sys_header_struc *sys_header,
unsigned int mux_rate,
unsigned long packet_data_size,
unsigned char marker_pack,
unsigned int which_streams);
int output_private2 ( /* erstellt und schreibt Private 2 pack */
Timecode_struc *SCR,
unsigned int mux_rate);
int next_audio_access_unit ( /* holt naechste gueltige AU Info her */
Buffer_struc *buffer,
Aaunit_struc *audio_au,
unsigned int *bytes_left,
FILE *aunits_info,
unsigned char *audio_frame_start,
unsigned int *audio_counter,
Timecode_struc *SCR_delay);
void buffer_empty(Buffer_struc *buffer);
void buffer_clean ( /* saeubert die Bufferschlange */
Buffer_struc *buffer,
Timecode_struc *SCR);
int buffer_space ( /* Anzahl freier Bytes in Buffer */
Buffer_struc *buffer);
int queue_buffer ( /* An Bufferliste anhaengen */
Buffer_struc *buffer,
unsigned int bytes,
Timecode_struc *TS);
int outputstream ( /* Hauptschleife Multiplexroutinen */
HANDLE outputFile,
char *video_units,
Video_struc *video_info,
char *audio_units,
Audio_struc *audio_info,
char *audio1_units,
Audio_struc *audio1_info,
unsigned int video_total,
unsigned int audio_total,
unsigned int audio1_total,
unsigned int which_streams);
void status_info ( /* Statusmitteilung bei Erstellen */
unsigned int nsectors_a,
unsigned int nsectors_a1,
unsigned int nsectors_v,
unsigned int nsectors_p,
unsigned int nbytes,
unsigned int buf_v,
unsigned int buf_a,
unsigned int buf_a1);
/* MPEG multiplex stream */
void status_header (char *filename); /* Titelzeilen Statusblock */
void status_message (unsigned char what); /* Event (end, time_out) mitteilen */
void status_footer (); /* Endzeile */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -