diff options
author | naga <naga@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-04-12 00:09:26 +0000 |
---|---|---|
committer | naga <naga@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-04-12 00:09:26 +0000 |
commit | 4adec9278b7746cd2314100eb922d2d4c0c54283 (patch) | |
tree | 02e06c1db5db7cf4fe2d6a3d82f6c516c8f62791 | |
parent | 556629ddecba44387a9e944b6037320c3136e868 (diff) | |
download | ATCD-4adec9278b7746cd2314100eb922d2d4c0c54283.tar.gz |
*** empty log message ***
6 files changed, 263 insertions, 27 deletions
diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/Command_Handler.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/Command_Handler.cpp index 5781baaab1b..16e42e628a2 100644 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/Command_Handler.cpp +++ b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/Command_Handler.cpp @@ -258,7 +258,8 @@ Command_Handler::init_video (void) shared->totalSamples = 0; } else - { + { + ACE_DEBUG ((LM_DEBUG,"(%P|%t) Initialized audio\n")); shared->nextSample = 0; if (shared->config.maxSPS < shared->audioPara.samplesPerSecond) shared->config.maxSPS < shared->audioPara.samplesPerSecond; @@ -271,7 +272,7 @@ Command_Handler::init_video (void) } if (vf[0] != 0) { - + ACE_DEBUG ((LM_DEBUG,"(%P|%t) Initializing video\n")); if (this->init_video_channel(vh, vf)) { shared->totalFrames = 0; /* disable video channel */ @@ -1271,7 +1272,7 @@ Command_Handler::connect_to_server (char *address, -1); // Write the CmdINITvideo to tell the server that this is a video // client. - unsigned char tmp; + int tmp; tmp = CmdINITvideo; this->stream_.send_n (&tmp, sizeof (tmp)); int ack; diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ctr.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ctr.cpp index e81852fe3fe..b84cdd32ce3 100644 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ctr.cpp +++ b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ctr.cpp @@ -689,8 +689,8 @@ static int InitAudioChannel(char * phostname, char * af) INITaudioPara para; INITaudioReply reply; unsigned char tmp; - tmp = CmdINITaudio; - AudioWrite(&tmp, 1); + // tmp = CmdINITaudio; + // AudioWrite(&tmp, 1); para.sn = htonl(shared->cmdsn); para.version = htonl(VERSION); para.para.encodeType = htonl(shared->AFPara.encodeType); diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Makefile b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Makefile index 7e643a2f98d..49a803517ea 100644 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Makefile +++ b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Makefile @@ -11,7 +11,7 @@ SHLIB = $(LIBNAME).$(SOEXT) # On non-Windows environment, we should at least define # the export_include IDL flag. -FILES= as las lvs vs Globals Video_Server Video_Control_State Video_Control_i +FILES= as las lvs vs Globals Video_Server Video_Control_State Video_Control_i Audio_Server DEFS = $(addsuffix .h,$(FILES)) LSRC = $(addsuffix .cpp,$(FILES)) @@ -262,8 +262,9 @@ realclean: clean $(ACE_ROOT)/ace/Version.h \ $(ACE_ROOT)/ace/ACE.i \ $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i server_proto.h \ - Globals.h $(ACE_ROOT)/ace/SOCK_CODgram.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + server_proto.h Globals.h \ + $(ACE_ROOT)/ace/SOCK_CODgram.h \ $(ACE_ROOT)/ace/SOCK_IO.h \ $(ACE_ROOT)/ace/SOCK.h \ $(ACE_ROOT)/ace/Addr.h \ @@ -1603,5 +1604,199 @@ realclean: clean $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h \ $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_State.h \ $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_i.h +.obj/Audio_Server.o .obj/Audio_Server.so .shobj/Audio_Server.o .shobj/Audio_Server.so: Audio_Server.cpp Audio_Server.h \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/include/common.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/inc_user_config.h \ + $(ACE_ROOT)/ace/config.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Version.h \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.h \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.h \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.h \ + server_proto.h Globals.h \ + $(ACE_ROOT)/ace/SOCK_CODgram.h \ + $(ACE_ROOT)/ace/SOCK_IO.h \ + $(ACE_ROOT)/ace/SOCK.h \ + $(ACE_ROOT)/ace/Addr.h \ + $(ACE_ROOT)/ace/Addr.i \ + $(ACE_ROOT)/ace/IPC_SAP.h \ + $(ACE_ROOT)/ace/IPC_SAP.i \ + $(ACE_ROOT)/ace/SOCK.i \ + $(ACE_ROOT)/ace/SOCK_IO.i \ + $(ACE_ROOT)/ace/SOCK_CODgram.i \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Singleton.i \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.h \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/server_proto.h \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Globals.h \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(TAO_ROOT)/tao/TAO.h \ + $(TAO_ROOT)/tao/corba.h \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/Get_Opt.i \ + $(ACE_ROOT)/ace/SOCK_Stream.h \ + $(ACE_ROOT)/ace/INET_Addr.h \ + $(ACE_ROOT)/ace/INET_Addr.i \ + $(ACE_ROOT)/ace/SOCK_Stream.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/SOCK_Acceptor.h \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/SOCK_Acceptor.i \ + $(ACE_ROOT)/ace/SOCK_Connector.h \ + $(ACE_ROOT)/ace/SOCK_Connector.i \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Connector.h \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Svc_Handler.h \ + $(ACE_ROOT)/ace/Task.h \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/ace/Task.i \ + $(ACE_ROOT)/ace/Task_T.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/Task_T.i \ + $(ACE_ROOT)/ace/Dynamic.h \ + $(ACE_ROOT)/ace/Dynamic.i \ + $(ACE_ROOT)/ace/Svc_Handler.i \ + $(ACE_ROOT)/ace/Connector.i \ + $(ACE_ROOT)/ace/Acceptor.h \ + $(ACE_ROOT)/ace/Acceptor.i \ + $(TAO_ROOT)/tao/compat/objbase.h \ + $(TAO_ROOT)/tao/compat/initguid.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(TAO_ROOT)/tao/Align.h \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/default_client.h \ + $(TAO_ROOT)/tao/default_client.i \ + $(TAO_ROOT)/tao/default_server.h \ + $(TAO_ROOT)/tao/ORB_Strategies_T.h \ + $(TAO_ROOT)/tao/ORB_Strategies_T.i \ + $(TAO_ROOT)/tao/default_server.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/Request.h \ + $(TAO_ROOT)/tao/Request.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/Server_Request.h \ + $(TAO_ROOT)/tao/Server_Request.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/POA.h \ + $(TAO_ROOT)/tao/POAC.h \ + $(TAO_ROOT)/tao/POAC.i \ + $(TAO_ROOT)/tao/Servant_Base.h \ + $(TAO_ROOT)/tao/POAS.h \ + $(TAO_ROOT)/tao/POAS.i \ + $(TAO_ROOT)/tao/Object_Table.h \ + $(TAO_ROOT)/tao/Connect.h \ + $(TAO_ROOT)/tao/Connect.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(ACE_ROOT)/ace/Dynamic_Service.h \ + $(TAO_ROOT)/tao/Operation_Table.h \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/IIOP_Object.h \ + $(TAO_ROOT)/tao/IIOP_Object.i \ + $(TAO_ROOT)/tao/IIOP_ORB.h \ + $(TAO_ROOT)/tao/IIOP_ORB.i \ + $(TAO_ROOT)/tao/IIOP_Interpreter.h \ + $(TAO_ROOT)/tao/GIOP.h \ + $(TAO_ROOT)/tao/GIOP.i \ + $(TAO_ROOT)/tao/singletons.h \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS.h \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlC.h \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlC.i \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS.i \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_State.h \ + $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_i.h # IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.cpp index 7264a3e1ae0..7c219eb1d1b 100644 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.cpp +++ b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.cpp @@ -194,6 +194,10 @@ int ComCloseConn(int fd) int ComOpenConnPair(char * address, int *ctr_fd, int *data_fd, int *max_pkt_size) { + + // This is right now called only by the audio client. + // The protocol is slightly modified as after connecting we need to + // inform that we are a audio client so that it can fork a process. int i; int cfd, dfd, csocktype, dsocktype; int conn_tag = !(*max_pkt_size); @@ -428,6 +432,18 @@ int ComOpenConnPair(char * address, int *ctr_fd, int *data_fd, int *max_pkt_size *max_pkt_size = 0; } else { /* create a UDP socket for data */ + // Write a byte saying that we are a audio client. + + if (time_write_int(cfd,CmdINITaudio) == -1) { + fprintf(stderr, + "Error ComOpenConnPair: pid %d failed to write -2 to TCP cfd:", + getpid()); + perror(""); + close(cfd); + close(dfd); + return -1; + } + dfd = socket(AF_INET, SOCK_DGRAM, 0); if (dfd == -1) { fprintf(stderr, @@ -491,8 +507,8 @@ int ComOpenConnPair(char * address, int *ctr_fd, int *data_fd, int *max_pkt_size return -1; } - fprintf(stderr, "ComOpenConnPair local UDP socket: addr - %s, port - %u.\n", - inet_ntoa(addressIn.sin_addr), ntohs(addressIn.sin_port)); + fprintf(stderr, "ComOpenConnPair local UDP socket: addr - %s,%d, port - %u.\n", + inet_ntoa(addressIn.sin_addr), addressIn.sin_addr.s_addr,ntohs(addressIn.sin_port)); fprintf(stderr, "ComOpenConnPair UDP port %d (should be > 0)\n", @@ -726,6 +742,7 @@ int ComOpenConnPair(char * address, int *ctr_fd, int *data_fd, int *max_pkt_size } *ctr_fd = cfd; *data_fd = dfd; + ACE_DEBUG ((LM_DEBUG,"(%P|%t)Returning from ComOpenConnpair\n")); return 0; } diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.cpp index a31df60b5d8..a632d0a4c49 100644 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.cpp +++ b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.cpp @@ -43,9 +43,9 @@ int AV_Svc_Handler::handle_connection (ACE_HANDLE) { // Client is sending us a command - u_char cmd; + int cmd; if (this->peer ().recv_n (&cmd, - 1) == -1) + sizeof (cmd)) == -1) ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) Command recieve failed: %p\n"), -1); @@ -121,22 +121,41 @@ AV_Svc_Handler::handle_connection (ACE_HANDLE) // close down the connected socket in the main process this->destroy (); break; - default: + case CmdINITaudio: + ACE_DEBUG ((LM_DEBUG,"(%P|%t)Received CmdINITaudio\n")); // %% need to fork here - if (Mpeg_Global::live_audio) - LeaveLiveAudio (); - int result = AudioServer (this->peer ().get_handle (), - this->dgram_.get_handle (), - Mpeg_Global::rttag, - -INET_SOCKET_BUFFER_SIZE); - // ACE_Reactor::instance ()->end_event_loop (); - TAO_ORB_Core_instance ()->reactor ()->end_event_loop (); - if (result != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t)handle_connection : "), - result); - return result; - + switch (ACE_OS::fork ("child")) + { + case 0: + ACE_DEBUG ((LM_DEBUG,"(%P|%t)New process forked \n")); + if (Mpeg_Global::live_audio) + LeaveLiveAudio (); + ACE_NEW_RETURN (this->as_, + Audio_Server, + -1); + ACE_DEBUG ((LM_DEBUG,"(%P|%t) AudioServer created\n")); + int result; + result = this->as_->init (this->peer (), + Mpeg_Global::rttag, + -INET_SOCKET_BUFFER_SIZE); + if (result < 0) + ACE_ERROR_RETURN ((LM_ERROR,"(%P|%t)Audio_Server init failed ()\n"),-1); + result = as_->run (); + // ACE_Reactor::instance ()->end_event_loop (); + TAO_ORB_Core_instance ()->reactor ()->end_event_loop (); + if (result != 0) + ACE_ERROR_RETURN ((LM_ERROR, + "(%P|%t)handle_connection : "), + result); + return result; + break; + default: + return 0; + } + break; + default: + ACE_ERROR_RETURN ((LM_ERROR,"(%P|%t)Unknown command received\n"),-1); + break; } return 0; diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.h index e64f305d357..dca16183315 100644 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.h +++ b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.h @@ -42,6 +42,7 @@ #endif /* NATIVE_ATM */ #include "mpeg_server/Video_Server.h" +#include "mpeg_server/Audio_Server.h" // Forward declaration. class AV_Svc_Handler; @@ -108,6 +109,9 @@ private: Video_Server *vs_; // @@ need a similar component for audio! + + Audio_Server *as_; + // the audio server. }; class AV_Server_Sig_Handler |