From 5298cdacd41efbf2ffd0282b14e401734b31d90a Mon Sep 17 00:00:00 2001 From: deva Date: Mon, 19 Sep 2005 09:23:50 +0000 Subject: *** empty log message *** --- src/mov_encoder_writer.cc | 267 ---------------------------------------------- 1 file changed, 267 deletions(-) (limited to 'src/mov_encoder_writer.cc') diff --git a/src/mov_encoder_writer.cc b/src/mov_encoder_writer.cc index 83530ac..717998a 100644 --- a/src/mov_encoder_writer.cc +++ b/src/mov_encoder_writer.cc @@ -111,273 +111,6 @@ void MovEncoderWriter::thread_main() audio_queue, audio_mutex, audio_sem); multiplexer.multiplex(); -#if 0 - int wrote = 0; - while(running ) { - sem_wait(audio_sem); - - // Lock output mutex - pthread_mutex_lock(audio_mutex); - audio_frame = audio_queue->top(); - if(audio_frame && audio_frame->number == audio_frame_number) audio_queue->pop(); - pthread_mutex_unlock(audio_mutex); - // Unlock output mutex - - while(audio_frame && (audio_frame->number == audio_frame_number)) { - if(file->Write(audio_frame->data, audio_frame->size) == -1) { - info->error("File write returned -1."); - return; - } - - delete audio_frame; - audio_frame = NULL; - - wrote ++; - audio_frame_number++; - - // Lock output mutex - pthread_mutex_lock(audio_mutex); - audio_frame = audio_queue->top(); - if(audio_frame && audio_frame->number == audio_frame_number) audio_queue->pop(); - pthread_mutex_unlock(audio_mutex); - // Unlock output mutex - } - } -#endif/*0*/ - - // info->info("Wrote %d mpeg packets.", wrote); info->info("MovEncoderWriter::stop"); } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#if 0 -void MovEncoderWriter::write_system_header(unsigned int audio_size, unsigned int video_size) -{ - /* - Sys_header_struc sys_header; - - unsigned int mux_rate = (audio_size + video_size) * 25; - - create_sys_header(&sys_header, - mux_rate, //unsigned int rate_bound, - 1, //unsigned char audio_bound, - 1, //unsigned char fixed, - 1, //unsigned char CSPS, - 1, //unsigned char audio_lock, - 1, //unsigned char video_lock, - 1, //unsigned char video_bound, - - AUDIO_STR_0, //unsigned char stream1, - 0, //unsigned char buffer1_scale, - audio_size, //unsigned int buffer1_size, - // audio_size/128, //unsigned int buffer1_size, - - VIDEO_STR_0, //unsigned char stream2, - 1, //unsigned char buffer2_scale, - // video_size/1024, //unsigned int buffer2_size, - video_size, //unsigned int buffer2_size, - - // We both have audio *and* video - STREAMS_BOTH);//unsigned int which_streams - -// create_sys_header (sys_header, mux_rate, 1, 1, 1, 1, 1, 1, -// AUDIO_STR_0, 0, audio_size/128, -// VIDEO_STR_0, 1, video_size/1024, STREAMS_BOTH ); - - file->Write(sys_header.buf, sizeof(sys_header.buf)); -*/ - /** - * My shot at a valid system header - */ - /* - // PACK - char pack_start_code[] = { - 0x00, 0x00, 0x01, 0xBA, - }; - - file->Write(pack_start_code, sizeof(pack_start_code)); - - char pack_data[] = { - 0x21, // SCR-32 thru 30, marker bit - 0x00, 0x01, // SCR-29 thru 15, marker bit - 0x80, 0xF5, // SCR-14 thru 0, marker bit - 0x80, 0x1B, 0x83 // Marker bit, mux_rate, marker_bit - }; - - file->Write(pack_data, sizeof(pack_data)); - */ - /* - // SYSTEM - char system_header_start_code[] = { - 0x00, 0x00, 0x01, 0xBB, - }; - - file->Write(system_header_start_code, sizeof(system_header_start_code)); - - char system_data[] = { - 0x00, 0x0C, // Header length - 0x80, 0x1B, 0x83, // Marker bit, rate_bound,marker_bit - 0x07, // Audio bound, fixed_flag, CSPS_flag - 0xA1, // system_audio_lock_flag, system_video_lock_flag - 0xFF, // Reserved byte - 0xC0, // Stream id (audio) - // 0xC0, 0x20, // '11', STD_buffer_bound_scale, STD_buffer_size_bound - 0xFF, 0xFF, // '11', STD_buffer_bound_scale, STD_buffer_size_bound - 0xE0, // Stream id (video) - // 0xE0, 0x2E // '11', STD_buffer_bound_scale, STD_buffer_size_bound - 0xFF, 0xFF // '11', STD_buffer_bound_scale, STD_buffer_size_bound - }; - - file->Write(system_data, sizeof(system_data)); - - char padding_header_start_code[] = { - 0x00, 0x00, 0x01, 0xBE - }; - - file->Write(padding_header_start_code, sizeof(padding_header_start_code)); - - char padding_data[] = { - 0x00, 0x04, // Padding length - 0x0F, 0xFF, 0xFF, 0xFF // Padding - }; - - file->Write(padding_data, sizeof(padding_data)); - */ -} - -void MovEncoderWriter::write_packet_header(unsigned int audio_size, unsigned int video_size) -{ - /* - Pack_struc pack; - timestamp += 1.0; - make_timecode(timestamp, &SCR); - // Timecode_struc SCR; - unsigned int mux_rate = (audio_size + video_size) * 25; - // SCR. - - create_pack(&pack, mux_rate, &SCR); - - file->Write(pack.buf, sizeof(pack.buf)); - - unsigned char timestampbuf[32]; - unsigned char *i = timestampbuf; - buffer_timecode (&SCR, MARKER_JUST_PTS, &i); - - file->Write(timestampbuf, (int)i - (int)timestampbuf); - */ -} - -void MovEncoderWriter::write_video_header(unsigned short int psize) -{ - // PES Header startcode - char startcode[] = { - 0x00, 0x00, 0x01 - }; - - // Video stream, index = 0 - char streamID[] = { - 0xE0 - }; - - char packetsize[] = { 0x00, 0x00 }; - - char stuffing_bytes[] = { - 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x0F - }; - - file->Write(startcode, sizeof(startcode)); - - file->Write(streamID, sizeof(streamID)); - - psize += - sizeof(stuffing_bytes); - packetsize[0] = ((char*)&psize)[1]; - packetsize[1] = ((char*)&psize)[0]; - file->Write(packetsize, sizeof(packetsize)); - - file->Write(stuffing_bytes, sizeof(stuffing_bytes)); -} - -void MovEncoderWriter::write_audio_header(unsigned short int psize) -{ - // PES Header startcode - char startcode[] = { - 0x00, 0x00, 0x01 - }; - - // Audio stream, index = 0 - char streamID[] = { - 0xC0 - }; - - char packetsize[] = { 0x00, 0x00 }; - - char stuffing_bytes[] = { - 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF - }; - - char std_buffer[] = { - 0x40, // STD_buffer_scale - 0x20 // STD_buffer_size - }; - - char PTS[] = { - 0x21, // SCR-32 thru 30, marker bit - 0x00, 0x01, // SCR-29 thru 15, marker bit - 0xCE, 0x37 // SCR-14 thru 0, marker bit - }; - - file->Write(startcode, sizeof(startcode)); - - file->Write(streamID, sizeof(streamID)); - - psize += sizeof(stuffing_bytes) + sizeof(std_buffer) + sizeof(PTS); - packetsize[0] = ((char*)&psize)[1]; - packetsize[1] = ((char*)&psize)[0]; - file->Write(packetsize, sizeof(packetsize)); - - file->Write(stuffing_bytes, sizeof(stuffing_bytes)); - - file->Write(std_buffer, sizeof(std_buffer)); - - file->Write(PTS, sizeof(PTS)); - -} - -#endif /*0*/ -- cgit v1.2.3