⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mplex.h

📁 传输流分析
💻 H
📖 第 1 页 / 共 2 页
字号:
    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 + -