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; }
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 }
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(); }
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(); }
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(); }
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; } } } }
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; } } }
public LiveControl(ref MFLiveClass _objLive) { InitializeComponent(); m_objLive = _objLive; }