public void DealVoipAuidoFrame(IntPtr ip, uint dwContextEnc) { FrameHeadrDec pFrmHdrDec = (FrameHeadrDec)Marshal.PtrToStructure(ip, typeof(FrameHeadrDec)); if (pFrmHdrDec.data == IntPtr.Zero) { return; } PLAYFRAMEHDR hdr = new PLAYFRAMEHDR { m_byMediaType = pFrmHdrDec.mediaType, m_dwDataSize = pFrmHdrDec.data_size, m_byFrameRate = 0, m_dwFrameID = 0, m_dwTimeStamp = pFrmHdrDec.m_dwTimeStamp, union1 = new Anonymous_3d5d69df_3122_4137_83f1_a9b198afad7b { m_tAudioParam = new Anonymous_0584d86c_3910_4038_bad0_69ed09db9a8d { m_byAudioMode = pFrmHdrDec.audio_mode, } } }; int Temp_int = Marshal.SizeOf(hdr); byte[] pD = new byte[pFrmHdrDec.data_size]; Marshal.Copy(pFrmHdrDec.data, pD, 0, (int)pFrmHdrDec.data_size); byte[] pl = PubMethod.StructToBytes(hdr); byte[] bytes = pl.Concat(pD).ToArray(); uint len = Convert.ToUInt32(pFrmHdrDec.data_size + 40); bool bol = SDK_TLi.TLPlay_InputAudioData(m_hPlayPort, ref bytes[0], len); }
public void get_encframe(IntPtr ip, uint dwContextEnc) { VideoPlayState = Enum_VideoPlayState.InPlayState; FrameHeadr pFrmHdr = (FrameHeadr)Marshal.PtrToStructure(ip, typeof(FrameHeadr)); PLAYFRAMEHDR pLAYFRAMEHDR = new PLAYFRAMEHDR { m_byMediaType = pFrmHdr.mediaType, m_dwDataSize = pFrmHdr.dataSize, m_byFrameRate = pFrmHdr.frameRate, m_dwFrameID = pFrmHdr.frameID, m_dwTimeStamp = pFrmHdr.timeStamp }; pLAYFRAMEHDR.union1.m_tVideoParam.m_bKeyFrame = pFrmHdr.videoParam.keyFrame; pLAYFRAMEHDR.union1.m_tVideoParam.m_wVideoWidth = pFrmHdr.videoParam.videoWidth; pLAYFRAMEHDR.union1.m_tVideoParam.m_wVideoHeight = pFrmHdr.videoParam.videoHeight; byte[] pl = StructToBytes(pLAYFRAMEHDR); byte[] pD = new byte[pFrmHdr.dataSize]; Marshal.Copy(pFrmHdr.pData, pD, 0, (int)pFrmHdr.dataSize); byte[] bytes = pl.Concat(pD).ToArray(); if (pFrmHdr.mediaType == 98) { uint len = Convert.ToUInt32(pFrmHdr.dataSize + 40); TLPlay_InputVideoData(m_hPlayPort, ref bytes[0], len); } }
public void aduiocallback1(IntPtr ip, uint dwContextEnc) { Console.WriteLine("aduiocallback1"); FrameHeadr pFrmHdr = (FrameHeadr)Marshal.PtrToStructure(ip, typeof(FrameHeadr)); PLAYFRAMEHDR hdr = new PLAYFRAMEHDR { m_byMediaType = pFrmHdr.mediaType, m_dwDataSize = pFrmHdr.dataSize, m_byFrameRate = pFrmHdr.frameRate, m_dwFrameID = pFrmHdr.frameID, m_dwTimeStamp = pFrmHdr.timeStamp }; hdr.union1.m_tVideoParam.m_bKeyFrame = pFrmHdr.videoParam.keyFrame; hdr.union1.m_tVideoParam.m_wVideoWidth = pFrmHdr.videoParam.videoWidth; hdr.union1.m_tVideoParam.m_wVideoHeight = pFrmHdr.videoParam.videoHeight; if (hdr.m_byMediaType == 22) { hdr.union1.m_tAudioParam.m_byAudioMode = 16; hdr.union1.m_tAudioParam.m_byAudioRate = 8000; hdr.union1.m_tAudioParam.m_byAudioEncType = 22; hdr.union1.m_tAudioParam.m_byAudioDuration = 40; } else if (hdr.m_byMediaType == 22) { hdr.union1.m_tAudioParam.m_byAudioMode = 16; hdr.union1.m_tAudioParam.m_byAudioRate = 8000; hdr.union1.m_tAudioParam.m_byAudioEncType = 23; hdr.union1.m_tAudioParam.m_byAudioDuration = 40; } byte[] pl = StructToBytes(hdr); byte[] pD = new byte[pFrmHdr.dataSize]; Marshal.Copy(pFrmHdr.pData, pD, 0, (int)pFrmHdr.dataSize); byte[] bytes = pl.Concat(pD).ToArray(); uint len = Convert.ToUInt32(pFrmHdr.dataSize + 40); TLPlay_InputVideoData(m_hPlayPort, ref bytes[0], len); }