Пример #1
0
        private void Start_Click(object sender, RoutedEventArgs e)
        {
            Console.WriteLine("Inside StartCall Button");

            string sIP = "192.168.57.121";

            //string sIP = "38.127.68.60";
            //string sIP = "60.68.127.38";
            int        iFriendPort = 60002;
            int        iRet        = 0;
            P2PWrapper p2pWrapper  = P2PWrapper.GetInstance();

            iRet = p2pWrapper.InitializeLibraryR(100 /*UserID*/);
            System.Console.WriteLine("MediaEngineLib==> InitializeLibrary, iRet = " + iRet);
            p2pWrapper.CreateSessionR(200 /*FriendID*/, 1 /*Audio*/, sIP, iFriendPort);
            p2pWrapper.CreateSessionR(200, 2 /*Video*/, sIP, iFriendPort);
            p2pWrapper.SetRelayServerInformationR(200, 1, sIP, iFriendPort);
            p2pWrapper.SetRelayServerInformationR(200, 2, sIP, iFriendPort);
            iRet = p2pWrapper.StartAudioCallR(200);
            iRet = p2pWrapper.StartVideoCallR(200, 288 /*Height*/, 352 /*Width*/);
            System.Diagnostics.Debug.WriteLine("MediaEngineLib==> StartVideoCall, iRet = " + iRet);
            p2pWrapper.SetLoggingStateR(true, 5);
            p2pWrapper.LinkWithConnectivityLib(null);

            AudioSender oAlpha = new AudioSender();

            oAlpha.AudioData = System.IO.File.ReadAllBytes(@"AudioSending(1).pcm");
            //oAlpha.bStartSending = true;

            Thread oThread = new Thread(new ThreadStart(oAlpha.StartSendingAudio));

            oThread.Start();
        }
Пример #2
0
        private void Button_CreateS(object sender, RoutedEventArgs e)
        {
            SessionStatus sessionStatus = P2PWrapper.ipv_CreateSession(friendID, ConfigFile.MediaType.IPV_MEDIA_AUDIO, ip, port);

            if (sessionStatus == SessionStatus.SESSION_CREATE_SUCCESSFULLY)
            {
                System.Diagnostics.Debug.WriteLine("Session created Successfully");
            }
        }
Пример #3
0
        private void Stop_Click_1(object sender, RoutedEventArgs e)
        {
            Console.WriteLine("Inside EndCall Button");
            P2PWrapper p2pWrapper = P2PWrapper.GetInstance();

            p2pWrapper.StopAudioCallR(200);
            p2pWrapper.StopAudioCallR(200);
            p2pWrapper.CloseSessionR(200, 1);
            p2pWrapper.CloseSessionR(200, 2);
        }
Пример #4
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            P2PWrapper p2pWrapper = P2PWrapper.GetInstance();

            Console.WriteLine("Inside CheckCap Button");
            p2pWrapper.InitializeLibraryR(100 /*UserID*/);
            p2pWrapper.LinkWithConnectivityLib(null);
            //p2pWrapper.CheckDeviceCapabilityR(100, 640, 480, 352, 288);

            p2pWrapper.CheckDeviceCapabilityR(100, 480, 640, 288, 352);
        }
Пример #5
0
            public void StartSendingAudio()
            {
                while (true)
                {
                    const int iFixedLengthAudio = 1920;
                    short[]   dataToSendAudio   = new short[iFixedLengthAudio + 5];
                    ushort[]  dataToSendAudio2  = new ushort[iFixedLengthAudio + 5];

                    if (AudioDataIndx == 0)
                    {
                        System.Console.WriteLine("C# audio data for the 1st frame");
                    }
                    for (int i = 0; i < iFixedLengthAudio / 2; i++)
                    {
                        if ((AudioDataIndx + 2 * i + 1) >= iFixedLengthAudio / 2)
                        {
                            break;
                        }
                        ushort left  = (ushort)AudioData[AudioDataIndx + 2 * i + 1];
                        ushort right = (ushort)AudioData[AudioDataIndx + 2 * i];
                        dataToSendAudio[i]  = (short)(right | (left << 8));
                        dataToSendAudio2[i] = (ushort)(right | (left << 8));

                        if (AudioDataIndx == 0 && i < 30)
                        {
                            System.Console.Write(" " + (uint)dataToSendAudio2[i]);
                        }
                    }

                    AudioDataIndx += iFixedLengthAudio;
                    if (AudioDataIndx >= AudioData.Length)
                    {
                        AudioDataIndx = 0;
                    }

                    int iRet = P2PWrapper.SendAudioData(200, dataToSendAudio, iFixedLengthAudio / 2);
                    System.IO.File.AppendAllText("log.txt", "P2PWrapper.SendAudioData = " + iRet + "\r\n");
                    Thread.Sleep(100);
                }
            }
Пример #6
0
        public void InitRingIDSDKLib()
        {
            //string sIP = "192.168.8.29";
            string sIP = "38.127.68.60";
            //string sIP = "60.68.127.38";
            int iFriendPort = 60007;

            int        iRet       = 0;
            P2PWrapper p2pWrapper = P2PWrapper.GetInstance();

            iRet = p2pWrapper.InitializeLibraryR(100 /*UserID*/);
            System.Console.WriteLine("MediaEngineLib==> InitializeLibrary, iRet = " + iRet);
            p2pWrapper.CreateSessionR(200 /*FriendID*/, 1 /*Audio*/, sIP, iFriendPort);
            p2pWrapper.CreateSessionR(200, 2 /*Video*/, sIP, iFriendPort);
            p2pWrapper.SetRelayServerInformationR(200, 1, sIP, iFriendPort);
            p2pWrapper.SetRelayServerInformationR(200, 2, sIP, iFriendPort);
            iRet = p2pWrapper.StartAudioCallR(200);
            iRet = p2pWrapper.StartVideoCallR(200, height /*Height*/, width /*Width*/);
            System.Diagnostics.Debug.WriteLine("MediaEngineLib==> StartVideoCall, iRet = " + iRet);
            p2pWrapper.SetLoggingStateR(true, 5);
            p2pWrapper.LinkWithConnectivityLib(null);
        }
Пример #7
0
            public void TestShortData(short[] dataToSendAudio, int iLen)
            {
                for (int i = 0; i < iLen; i++)
                {
                    byte left  = (byte)(dataToSendAudio[i] >> 8);
                    byte right = (byte)(dataToSendAudio[i]);
                    tempByte[i * 2]     = left;
                    tempByte[i * 2 + 1] = right;
                }


                if (tempByteCheck == 0)
                {
                    System.IO.File.WriteAllBytes("TestShortData.pcm", tempByte);
                    tempByteCheck++;
                }
                else
                {
                    System.Console.WriteLine("Writing to TestShortData.pcm");
                    P2PWrapper.AppendAllBytes("TestShortData.pcm", tempByte);
                }
            }
Пример #8
0
        public int BufferCB(double sampleTime, IntPtr pBuffer, int bufferLen)
        {
            Console.WriteLine("VampireEngg--> TimeDiff = " + (GetCurrentTimeStamp() - lastFrame));
            lastFrame = GetCurrentTimeStamp();
            iFpsControl++;
            //if (iFpsControl % 2 == 1) return 0;
            Marshal.Copy(pBuffer, TempFrameRGB24, 0, bufferLen);

            //P2PWrapper.iRenderHeight = height;
            //P2PWrapper.iRenderWidth = width;
            //P2PWrapper.framesQueue.Enqueue(TempFrameRGB24);

            int iRet = P2PWrapper.GetInstance().SendVideoDataR(200, TempFrameRGB24, bufferLen, 1, 0);

            //Console.WriteLine("VampireENgg--> Capturing RGB24 Data..... bufferLen = " + bufferLen + ", Returned = " + iRet);
            return(0);

            /*
             * //Console.WriteLine("VampireENgg--> bufferLen = " + (bufferLen - width * height * 3) );
             *
             *
             * byte[] TempFrame = new byte[width * height * 3];
             * byte[] YUVI420 = new byte[width * height * 3/2];
             *
             * //capturedYUY2Buffer = new byte[bufferLen];
             * // Marshal.Copy(pBuffer, capturedYUY2Buffer, 0, bufferLen);
             *
             * Marshal.Copy(pBuffer, TempFrame, 0, bufferLen);
             *
             * //YUY2ToI420(capturedYUY2Buffer, outputYUV420, width, height);
             *
             * //P2PWrapper.SendVideoData(200, capturedYUY2Buffer, capturedYUY2Buffer.Length, 1);
             * long milliseconds, milliseconds2;
             *
             * milliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
             * TransformRGB24(TempFrame, YUVI420, width, height);
             * milliseconds2 = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond - milliseconds;
             * Console.WriteLine("RGB2YUV420Managed2 time = " + milliseconds2);
             *
             * if (iTemp == 0)
             * {
             *  System.IO.File.WriteAllBytes("TestYuv420.yuv", YUVI420);
             *  iTemp = 1;
             * }
             * else
             * {
             *  P2PWrapper.AppendAllBytes("TestYuv420.yuv", YUVI420);
             * }
             *
             *
             * milliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
             * YUV2RGBManaged2(outputYUV420, TempFrame, width, height);
             * milliseconds2 = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond - milliseconds;
             * Console.WriteLine("YUV2RGBManaged2 time = " + milliseconds2);
             *
             *
             *
             *
             *
             *
             * Console.WriteLine("TheKing-->BufferCB: " + bufferLen);
             * for (int i = 0; i < 10; i++)
             * {
             *  Console.Write(TempFrame[i] + " ");
             * }
             * Console.WriteLine("");
             *
             * P2PWrapper.framesQueue.Enqueue(TempFrame);
             * //frameArrived = true;
             *
             * return 0;
             */
        }
Пример #9
0
            public void Beta()
            {
                const int iFixedLength      = 640 * 480 * 3 / 2;
                const int iFixedLengthAudio = 160;

                TestB = new byte[20];
                TestS = new short[10];

                for (int i = 0; i < 20; i++)
                {
                    TestB[i] = (byte)i;
                }


                for (int i = 0; i < 10; i++)
                {
                    short right = (short)TestB[2 * i + 1];
                    short left  = (short)TestB[2 * i];
                    TestS[i] = (short)(right | (left << 8));
                }

                //Array.Copy(TestB, TestS, TestS.Length);

                byte[]   dataToSend       = new byte[iFixedLength + 5];
                short[]  dataToSendAudio  = new short[iFixedLengthAudio + 5];
                ushort[] dataToSendAudio2 = new ushort[iFixedLengthAudio + 5];


                while (true)
                {
                    //  Console.WriteLine("Alpha.Beta is running in its own thread.");
                    if (icounttttt == 0)
                    {
                        System.IO.File.WriteAllText("log.txt", "running\r\n");
                    }
                    else
                    {
                        System.IO.File.AppendAllText("log.txt", "running\r\n");
                    }
                    icounttttt++;

                    //MediaEngineWork


                    for (int i = VideoDataIndx, indx = 0; i < VideoDataIndx + iFixedLength && i < VideoData.Length; i++, indx++)
                    {
                        dataToSend[indx] = VideoData[i];
                    }

                    VideoDataIndx += iFixedLength;
                    if (VideoDataIndx >= VideoData.Length)
                    {
                        VideoDataIndx = 0;
                    }
                    Thread.Sleep(33);

                    /*for(int i=AudioDataIndx, indx = 0; i <AudioDataIndx+iFixedLengthAudio && i<AudioData.Length; i+=2, indx++)
                     * {
                     *  short right = (short)AudioData[i + 1];
                     *  short left = (short)AudioData[i];
                     *  dataToSendAudio[indx] = (short)(right | (left << 8));
                     *
                     * }*/

                    if (AudioDataIndx == 0)
                    {
                        System.Console.WriteLine("C# audio data for the 1st frame");
                    }
                    for (int i = 0; i < iFixedLengthAudio / 2; i++)
                    {
                        ushort left  = (ushort)AudioData[AudioDataIndx + 2 * i + 1];
                        ushort right = (ushort)AudioData[AudioDataIndx + 2 * i];
                        dataToSendAudio[i]  = (short)(right | (left << 8));
                        dataToSendAudio2[i] = (ushort)(right | (left << 8));

                        if (AudioDataIndx == 0 && i < 30)
                        {
                            System.Console.Write(" " + (uint)dataToSendAudio2[i]);
                        }
                    }

                    AudioDataIndx += iFixedLengthAudio;
                    if (AudioDataIndx >= AudioData.Length)
                    {
                        AudioDataIndx = 0;
                    }

                    //TestShortData(dataToSendAudio, iFixedLengthAudio / 2);

                    int iRet;
                    iRet = P2PWrapper.SendVideoData(200, dataToSend, iFixedLength, 0, 0);
                    iRet = P2PWrapper.SendAudioData(200, dataToSendAudio, iFixedLengthAudio / 2);
                    System.IO.File.AppendAllText("log.txt", "P2PWrapper.SendAudioData = " + iRet + "\r\n");
                    Thread.Sleep(33);
                }
            }
Пример #10
0
 private void Button_Destroy(object sender, RoutedEventArgs e)
 {
     P2PWrapper.ipv_Release();
 }
Пример #11
0
 private void Button_Disconnect(object sender, RoutedEventArgs e)
 {
     P2PWrapper.ipv_CloseSession(friendID, ConfigFile.MediaType.IPV_MEDIA_AUDIO);
 }