Exemplo n.º 1
0
        public bool HwUnInitialize()
        {
            m_bIsStreaming = false;

            for (i = 0; i < n; i++)
            {
                if (m_hCapDev[0] != 0)
                {
                    EXPORTS.QCAP_STOP(m_hCapDev[i]); EXPORTS.QCAP_DESTROY(m_hCapDev[i]);
                }
            }

            for (i = 0; i < n; i++)
            {
                b_bitmap[i] = false;
            }
            unsafe
            {
                memory.free(pDstABGRBuffer);
            }



            EXPORTS.QCAP_DESTROY_BROADCAST_SERVER(m_hRtspCapDev);

            return(true);
        }
Exemplo n.º 2
0
        private void m_btnStopStreaming_Click(object sender, EventArgs e)
        {
            m_pMainForm.m_pMainForm.m_bIsStreaming = false;

            m_pMainForm.m_pMainForm.m_hRtspCapDev = 0;

            //CRITICAL SECTION

            lock (m_pMainForm.m_pMainForm.m_hNetworkServerAccessCriticalSection_v0)
            {
                m_pMainForm.m_pMainForm.m_nNetworkServerState_v[0] = 0x00000000;
            }

            lock (m_pMainForm.m_pMainForm.m_hNetworkServerAccessCriticalSection_a0)
            {
                m_pMainForm.m_pMainForm.m_nNetworkServerState_a[0] = 0x00000000;
            }

            lock (m_pMainForm.m_pMainForm.m_hNetworkServerAccessCriticalSection_v1)
            {
                m_pMainForm.m_pMainForm.m_nNetworkServerState_v[1] = 0x00000000;
            }

            lock (m_pMainForm.m_pMainForm.m_hNetworkServerAccessCriticalSection_a1)
            {
                m_pMainForm.m_pMainForm.m_nNetworkServerState_a[1] = 0x00000000;
            }

            lock (m_pMainForm.m_pMainForm.m_hNetworkServerAccessCriticalSection_v2)
            {
                m_pMainForm.m_pMainForm.m_nNetworkServerState_v[2] = 0x00000000;
            }

            lock (m_pMainForm.m_pMainForm.m_hNetworkServerAccessCriticalSection_a2)
            {
                m_pMainForm.m_pMainForm.m_nNetworkServerState_a[2] = 0x00000000;
            }

            lock (m_pMainForm.m_pMainForm.m_hNetworkServerAccessCriticalSection_v3)
            {
                m_pMainForm.m_pMainForm.m_nNetworkServerState_v[3] = 0x00000000;
            }

            lock (m_pMainForm.m_pMainForm.m_hNetworkServerAccessCriticalSection_a3)
            {
                m_pMainForm.m_pMainForm.m_nNetworkServerState_a[3] = 0x00000000;
            }

            // STOP RTSP STREAMING
            //
            EXPORTS.QCAP_STOP_BROADCAST_SERVER(m_hRtspCapDev);

            EXPORTS.QCAP_DESTROY_BROADCAST_SERVER(m_hRtspCapDev);

            m_btnStartStreaming.Enabled = true;

            m_btnStopStreaming.Enabled = false;
        }
Exemplo n.º 3
0
        private void MyStreamingControl_FormClosed(object sender, FormClosedEventArgs e)
        {
            m_pMainForm.m_pMainForm.m_bIsStreaming = false;

            m_pMainForm.m_pMainForm.m_hRtspCapDev = 0;

            if (m_hRtspCapDev != 0)
            {
                // STOP RTSP STREAMING
                //
                EXPORTS.QCAP_STOP_BROADCAST_SERVER(m_hRtspCapDev);

                EXPORTS.QCAP_DESTROY_BROADCAST_SERVER(m_hRtspCapDev);
            }
        }
Exemplo n.º 4
0
        private void m_btnStartStreaming_Click(object sender, EventArgs e)
        {
            m_bSupportSoftwareEncoder = m_checkSoftwareEncoder.Checked;

            m_bSupportHardwareEncoder = m_checkHardwareEncoder.Checked;

            m_bSupportIntelGPUEncoder = m_checkIntelGPUEncoder.Checked;

            // CREATE RTSP SERVER
            //
            String strAccount = "root";

            String strPassword = "******";

            EXPORTS.QCAP_CREATE_BROADCAST_RTSP_SERVER(0, 4, ref m_hRtspCapDev, ref strAccount, ref strPassword, 554);

            if (m_bSupportSoftwareEncoder)
            {
                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 0, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_SOFTWARE, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));

                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 1, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_SOFTWARE, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));

                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 2, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_SOFTWARE, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));

                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 3, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_SOFTWARE, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));
            }

            if (m_bSupportHardwareEncoder)
            {
                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 0, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_HARDWARE, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));

                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 1, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_HARDWARE, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));

                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 2, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_HARDWARE, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));

                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 3, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_HARDWARE, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));
            }

            if (m_bSupportIntelGPUEncoder)
            {
                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 0, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_INTEL_MEDIA_SDK, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));

                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 1, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_INTEL_MEDIA_SDK, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));

                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 2, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_INTEL_MEDIA_SDK, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));

                EXPORTS.QCAP_SET_VIDEO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 3, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_INTEL_MEDIA_SDK, (uint)EXPORTS.VideoEncoderFormatEnum.QCAP_ENCODER_FORMAT_H264, MAKEFOURCC('Y', 'V', '1', '2'), m_nVideoWidth / 2, m_nVideoHeight / 2, m_dVideoFrameRate, (uint)EXPORTS.RecordModeEnum.QCAP_RECORD_MODE_CBR, 8000, 12582912, 30, 0, 0, 0, 0, 0, (uint)(EXPORTS.BroadCastFlagEnum.QCAP_BROADCAST_FLAG_FULL));
            }

            EXPORTS.QCAP_SET_AUDIO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 0, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_SOFTWARE, (uint)EXPORTS.AudioEncoderFormatEnum.QCAP_ENCODER_FORMAT_PCM, 2, 16, 48000);

            EXPORTS.QCAP_SET_AUDIO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 1, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_SOFTWARE, (uint)EXPORTS.AudioEncoderFormatEnum.QCAP_ENCODER_FORMAT_PCM, 2, 16, 48000);

            EXPORTS.QCAP_SET_AUDIO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 2, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_SOFTWARE, (uint)EXPORTS.AudioEncoderFormatEnum.QCAP_ENCODER_FORMAT_PCM, 2, 16, 48000);

            EXPORTS.QCAP_SET_AUDIO_BROADCAST_SERVER_PROPERTY(m_hRtspCapDev, 3, (uint)EXPORTS.EncoderTypeEnum.QCAP_ENCODER_TYPE_SOFTWARE, (uint)EXPORTS.AudioEncoderFormatEnum.QCAP_ENCODER_FORMAT_PCM, 2, 16, 48000);

            if (m_hRtspCapDev != 0)
            {
                m_pMainForm.m_pMainForm.m_bIsStreaming = true;

                m_pMainForm.m_pMainForm.m_hRtspCapDev = m_hRtspCapDev;
            }

            EXPORTS.QCAP_START_BROADCAST_SERVER(m_hRtspCapDev);

            //CRITICAL SECTION



            if (m_hRtspCapDev != 0)
            {
                // STOP RTSP STREAMING
                //
                EXPORTS.QCAP_STOP_BROADCAST_SERVER(m_hRtspCapDev);

                EXPORTS.QCAP_DESTROY_BROADCAST_SERVER(m_hRtspCapDev);
            }

            m_btnStartStreaming.Enabled = true;

            m_btnStopStreaming.Enabled = false;
        }