Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
        }