$OpenBSD: patch-multplex_c,v 1.2 2002/08/12 19:33:31 wcobb Exp $ --- multplex.c.orig Tue Jun 6 09:16:52 1995 +++ multplex.c Thu Jul 18 15:57:13 2002 @@ -1,4 +1,5 @@ #include "main.h" +extern int Interactive; #ifdef TIMER extern long total_sec; extern long total_usec; @@ -45,11 +46,11 @@ unsigned int which_streams; { - FILE *istream_v; /* Inputstream Video */ - FILE *istream_a; /* Inputstream Audio */ + FILE *istream_v = NULL; /* Inputstream Video */ + FILE *istream_a = NULL; /* Inputstream Audio */ FILE *ostream; /* Outputstream MPEG */ - FILE *vunits_info; /* Input Video Units */ - FILE *aunits_info; /* Input Audio Units */ + FILE *vunits_info = NULL; /* Input Video Units */ + FILE *aunits_info = NULL; /* Input Audio Units */ Vaunit_struc video_au; /* Video Access Unit */ Aaunit_struc audio_au; /* Audio Access Unit */ @@ -67,7 +68,6 @@ unsigned int which_streams; unsigned int mux_rate; unsigned char picture_start; unsigned char audio_frame_start; - unsigned int bytes_left; unsigned int audio_bytes; unsigned int video_bytes; @@ -76,7 +76,9 @@ unsigned int which_streams; unsigned int nsec_p=0; unsigned char* index; - + + extern unsigned int bitrate_index[3][16]; + Timecode_struc SCR_audio_delay; Timecode_struc SCR_video_delay; Timecode_struc current_SCR; @@ -89,7 +91,6 @@ unsigned int which_streams; Pack_struc pack; Sys_header_struc sys_header; Sector_struc sector; - Timecode_struc timestamp; unsigned long sector_size; unsigned long min_packet_data; @@ -129,6 +130,7 @@ unsigned int which_streams; picture_start = TRUE; } +if( Interactive ) { printf("\nMerging elementary streams to MPEG/SYSTEMS multiplexed stream.\n"); printf("\n+------------------ MPEG/SYSTEMS INFORMATION -----------------+\n"); @@ -144,6 +146,12 @@ printf("\n+------------------ MPEG/SYSTE scanf ("%ld", &video_buffer_size); printf ("STD audio buffer in kB (CSPS: max 4 kB) : "); scanf ("%ld", &audio_buffer_size); +} else { + sector_size=2324; + packets_per_pack=1; + video_buffer_size=46; + audio_buffer_size=4; +} write_pack = packets_per_pack; video_buffer_size *= 1024; @@ -197,21 +205,31 @@ printf("\n+------------------ MPEG/SYSTE (double)(packets_per_pack-1.))) / (double)(packets_per_pack) ); data_rate = ceil(dmux_rate/50.)*50; +if( Interactive ) { printf ("\ncomputed multiplexed stream data rate : %7.3f\n",dmux_rate); printf ("target data rate (e.g. %6u) : ",data_rate); scanf ("%lf", &dmux_rate); printf ("\nstartup sectors_delay : "); - scanf ("%u", §ors_delay); + scanf ("%lu", §ors_delay); printf ("video stream startup offset (ms) : "); - scanf ("%u", &video_delay_ms); + scanf ("%lu", &video_delay_ms); printf ("audio stream startup offset (ms) : "); - scanf ("%u", &audio_delay_ms); + scanf ("%lu", &audio_delay_ms); +} else { + dmux_rate=data_rate; + sectors_delay=8; + video_delay_ms=0; + audio_delay_ms=0; +} video_delay = (double)video_delay_ms*(double)(CLOCKS/1000); audio_delay = (double)audio_delay_ms*(double)(CLOCKS/1000); +if( Interactive ) { verbose=ask_verbose(); printf ("\n"); +} else + verbose=1; #ifdef TIMER gettimeofday (&tp_global_start,NULL); @@ -501,8 +519,6 @@ printf("\n+------------------ MPEG/SYSTE if (which_streams & STREAMS_VIDEO) unlink (video_units); if (which_streams & STREAMS_AUDIO) unlink (audio_units); - printf ("\nDone, tmp files removed.\n\n"); - #ifdef TIMER gettimeofday (&tp_global_end, NULL); global_sec = 10*(tp_global_end.tv_sec - tp_global_start.tv_sec); @@ -1051,8 +1067,6 @@ unsigned char marker_pack; unsigned int which_streams; { - unsigned int bytes_left; - unsigned int temp; Pack_struc *pack_ptr; Sys_header_struc *sys_header_ptr;