Пример #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            mWriter  = new MFWriterClass();
            mReader  = new MFReaderClass();
            mPreview = new MFPreviewClass();
            //Preview = new MFPreviewClass();
            try
            {
                mLive = new MFLiveClass();
            }
            catch (Exception ex)
            {
                MessageBox.Show("No Live Devices Available: " + ex.ToString());
            }
            mPreview.PreviewWindowSet("", panelPreview.Handle.ToInt32());
            mPreview.PreviewEnable("", 1, 1);

            FillComboBox();

            cancelSource      = new CancellationTokenSource();
            threadWorker      = new Thread(() => thread_DoWork(cancelSource.Token));
            threadWorker.Name = "thread_DoWork";
            threadWorker.Start();

            avProps.vidProps.eVideoFormat = eMVideoFormat.eMVF_Custom;
            System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
        }
Пример #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            m_objPreview = new MFPreviewClass();
            m_objWriter  = new MFWriterClass();
            m_objReader  = new MFReaderClass();

            try
            {
                m_objLive   = new MFLiveClass();
                m_audioLive = new MFLiveClass();
                FillCombo(eMFDeviceType.eMFDT_Video, video, true);
            }
            catch (Exception ex)
            {
                MessageBox.Show("MLive device not found\n\n" + ex.ToString());
            }

            try
            {
                m_objCCDisplay = new MCCDisplayClass();
            }
            catch
            {
                MessageBox.Show("MCCDisplay module was not found.");
            }

            //Configure preview
            m_objPreview.PreviewWindowSet("", panelPreview.Handle.ToInt32());
            m_objPreview.PreviewEnable("", Convert.ToInt32(checkBoxAPrev.Checked), Convert.ToInt32(checkBoxVPrev.Checked));

            // Fill Senders
            FillSenders();

            FillVideoFormats();

            //Fill live devices
            FillMLiveDevices();

            //Fill formats
            FillMWriterFormats();

            // Create & config background worker

            cancelSource        = new CancellationTokenSource();
            m_threadWorker      = new Thread(() => thread_DoWork(cancelSource.Token));
            m_threadWorker.Name = "thread_DoWork";
            m_threadWorker.Start();

            System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;   //Need for use renderersCombobox in multithreading
        }
Пример #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            EncodingConf_lsb.Items.Add(" format='mp4' video::codec='n264' video::b='7M' video::profile='High' video::preset='high_quality' audio::codec='aac'");
            EncodingConf_lsb.Items.Add(" format='mp4' video::codec='n264' video::b='7M' video::profile='High' video::preset='high_quality' video::interlace='Progressive' audio::codec='aac'");
            EncodingConf_lsb.Items.Add(" format='mp4' video::codec='n264' video::b='6M' video::profile='High' video::preset='high_quality' video::interlace='Progressive' audio::codec='aac'");
            EncodingConf_lsb.Items.Add(" format='mp4' video::codec='n264' video::b='6M' video::profile='High' video::preset='high_quality' video::interlace='Progressive' audio::codec='aac'");
            EncodingConf_lsb.Items.Add(" format='mp4' video::codec='n264' video::b='5M' video::interlace='Progressive' audio::codec='aac'");


            currentEncodingConf = EncodingConf_lsb.Items[0].ToString();

            m_objLive1 = new MFLiveClass();
            m_objLive2 = new MFLiveClass();
            m_objLive3 = new MFLiveClass();
            m_objLive4 = new MFLiveClass();
            m_objLive5 = new MFLiveClass();

            m_objPrev1 = new MFPreviewClass();
            m_objPrev2 = new MFPreviewClass();
            m_objPrev3 = new MFPreviewClass();
            m_objPrev4 = new MFPreviewClass();
            m_objPrev5 = new MFPreviewClass();

            m_objPrev1.PreviewWindowSet("", panelPr1.Handle.ToInt32());
            m_objPrev1.PreviewEnable("", 0, 1);
            m_objPrev2.PreviewWindowSet("", panelPr2.Handle.ToInt32());
            m_objPrev2.PreviewEnable("", 0, 1);
            m_objPrev3.PreviewWindowSet("", panelPr3.Handle.ToInt32());
            m_objPrev3.PreviewEnable("", 0, 1);
            m_objPrev4.PreviewWindowSet("", panelPr4.Handle.ToInt32());
            m_objPrev4.PreviewEnable("", 0, 1);
            m_objPrev5.PreviewWindowSet("", panelPr5.Handle.ToInt32());
            m_objPrev5.PreviewEnable("", 0, 1);

            m_objWriter1 = new MFWriterClass();
            m_objWriter2 = new MFWriterClass();
            m_objWriter3 = new MFWriterClass();
            m_objWriter4 = new MFWriterClass();
            m_objWriter5 = new MFWriterClass();

            cancelSource        = new CancellationTokenSource();
            m_threadWorker      = new Thread(() => thread_DoWork(cancelSource.Token));
            m_threadWorker.Name = "thread_DoWork";
            m_threadWorker.Start();

            avProps.vidProps.eVideoFormat = eMVideoFormat.eMVF_HD1080_25p;

            UpdateTheListOfDevices();
        }
Пример #4
0
        private void Form1_Load(object sender, EventArgs e)
        {
            m_objPreview = new MFPreviewClass();
            m_objReader  = new MFReaderClass();
            m_objLive    = new MFLiveClass();

            m_objPreview.PreviewWindowSet("", panelPrev.Handle.ToInt32());
            m_objPreview.PreviewEnable("", 1, 1);

            LiveVideoUpdate();


            cancelSource        = new CancellationTokenSource();
            m_threadWorker      = new Thread(() => thread_DoWork(cancelSource.Token));
            m_threadWorker.Name = "thread_DoWork";
            m_threadWorker.Start();
        }
Пример #5
0
        private void Grid_Loaded(object sender, RoutedEventArgs e)
        {
            m_objPreview = new MFPreviewClass();
            m_objLive    = new MFLiveClass();
            m_objReader  = new MFReaderClass();

            m_objPreview.PropsSet("wpf_preview", "true");
            previewSource = new D3DImage();

            m_objPreview.PreviewEnable("", 1, 1);
            m_objPreview.OnEventSafe += M_objPreview_OnEventSafe;
            GetNoSignalFrame();

            cancelSource        = new CancellationTokenSource();
            m_threadWorker      = new Thread(() => thread_DoWork(cancelSource.Token));
            m_threadWorker.Name = "thread_DoWork";
            m_threadWorker.Start();
        }
Пример #6
0
        private void FillCombo(eMFDeviceType strType, ComboBox cbxType, bool test = false)
        {
            if (test)
            {
                MFLiveClass m_objLive = m_audioLive;
            }

            cbxType.Items.Clear();
            int nCount = 0;

            //Get device count / input line count
            m_objLive.DeviceGetCount(strType, out nCount);
            cbxType.Enabled = nCount > 0;
            if (nCount > 0)
            {
                for (int i = 0; i < nCount; i++)
                {
                    string strName;
                    int    pbBusy;
                    //Get deveice / input line
                    m_objLive.DeviceGetByIndex(strType, i, out strName, out pbBusy);
                    cbxType.Items.Add(strName);
                }
                string name   = "";
                int    nIndex = 0;
                try
                {
                    //Check if there is already selected device / input line
                    m_objLive.DeviceGet(strType, out nIndex, out name);
                    cbxType.SelectedIndex = nIndex >= 0 && nIndex < cbxType.Items.Count - 1 ? nIndex : 0;
                }
                catch
                {
                    if (strType == eMFDeviceType.eMFDT_Audio)
                    {
                        cbxType.SelectedIndex = cbxType.Items.Count > 1 ? cbxType.Items.Count - 2 : 0;
                    }
                    else
                    {
                        cbxType.SelectedIndex = 0;
                    }
                }
            }
        }
Пример #7
0
        private void Start1_btn_Click(object sender, EventArgs e)
        {
            int idx = Convert.ToInt32(((Button)sender).Tag);

            lock (m_objLock)
            {
                if (!m_arrLiveState[idx] || !m_arrLiveStateRestart[idx])
                {
                    if (m_arrLives[idx] == null)
                    {
                        m_arrLives[idx] = new MFLiveClass();
                    }
                    LiveControl Lc = new LiveControl(ref m_arrLives[idx]);
                    Lc.ShowDialog();

                    switch (idx)
                    {
                    case 0:
                        textBoxLiveName1.Text = Lc.GetName();
                        Start1_btn.BackColor  = m_arrLiveStateRestart[idx] ? Color.Red : Color.Green;
                        break;

                    case 1:
                        textBoxLiveName2.Text = Lc.GetName();
                        Start2_btn.BackColor  = m_arrLiveStateRestart[idx] ? Color.Red : Color.Green;
                        break;

                    case 2:
                        textBoxLiveName3.Text = Lc.GetName();
                        Start3_btn.BackColor  = m_arrLiveStateRestart[idx] ? Color.Red : Color.Green;
                        break;

                    case 3:
                        textBoxLiveName4.Text = Lc.GetName();
                        Start4_btn.BackColor  = m_arrLiveStateRestart[idx] ? Color.Red : Color.Green;
                        break;

                    case 4:
                        textBoxLiveName5.Text = Lc.GetName();
                        Start5_btn.BackColor  = m_arrLiveStateRestart[idx] ? Color.Red : Color.Green;
                        break;
                    }


                    m_arrWriters[idx].WriterSet(Path.Combine(SavePath_txb.Text, idx + ".mp4"), 0, EncodingConfigs_lsb.SelectedItem.ToString());
                    m_arrWritersState[idx]     = true;
                    m_arrLiveState[idx]        = true;
                    m_arrLiveStateRestart[idx] = true;
                }
                else if (m_arrWritersState[idx])
                {
                    switch (idx)
                    {
                    case 0:
                        m_arrWriters[idx].WriterClose(0);
                        Start1_btn.BackColor = m_arrLiveStateRestart[idx] ? Color.Red : Color.Green;
                        break;

                    case 1:
                        m_arrWriters[idx].WriterClose(0);
                        Start2_btn.BackColor = m_arrLiveStateRestart[idx] ? Color.Red : Color.Green;
                        break;

                    case 2:
                        m_arrWriters[idx].WriterClose(0);
                        Start3_btn.BackColor = m_arrLiveStateRestart[idx] ? Color.Red : Color.Green;
                        break;

                    case 3:
                        m_arrWriters[idx].WriterClose(0);
                        Start4_btn.BackColor = m_arrLiveStateRestart[idx] ? Color.Red : Color.Green;
                        break;

                    case 4:
                        m_arrWriters[idx].WriterClose(0);
                        Start5_btn.BackColor = m_arrLiveStateRestart[idx] ? Color.Red : Color.Green;
                        break;
                    }
                    m_arrWritersState[idx]     = false;
                    m_arrLiveStateRestart[idx] = false;
                }
            }
        }
Пример #8
0
 public LiveControl(ref MFLiveClass _objLive)
 {
     InitializeComponent();
     m_objLive = _objLive;
 }