Exemple #1
0
        public bool AttachVideoDevice(MPlaylistClass m_objPlaylist)
        {
            if (this._mrenderer == null)
            {
                return(false);
            }

            try
            {
                string name       = string.Empty;
                string parameters = string.Empty;
                int    index      = -1;
                this._mrenderer.DeviceGet("renderer", out name, out parameters, out index);
                if (!string.IsNullOrEmpty(name))
                {
                    this._mrenderer.ObjectStart(m_objPlaylist);
                }
            }
            catch (System.Exception ex)
            {
                this._mrenderer.ObjectClose();
                Marshal.ReleaseComObject(_mrenderer);
                _mrenderer = null;
                return(false);
            }
            return(true);
        }
Exemple #2
0
 public void Dispose()
 {
     if (this._mrenderer != null)
     {
         this._mrenderer.ObjectClose();
         Marshal.ReleaseComObject(_mrenderer);
         this._mrenderer = null;
     }
 }
Exemple #3
0
 public bool DetachVideoDevice()
 {
     if (this._mrenderer != null)
     {
         this._mrenderer.ObjectClose();
         Marshal.ReleaseComObject(_mrenderer);
         _mrenderer = null;
     }
     return(true);
 }
        private void RendererWindow_Loaded(object sender, RoutedEventArgs e)
        {
            _mrenderer = new MRendererClass();
            this.rendererComboBox.MDevice = _mrenderer;

            if (!string.IsNullOrEmpty(_deviceName))
            {
                this.rendererComboBox.SelectedItem = _deviceName;
                //this.rendererComboBox.SelectedDevice = _deviceName;
            }
        }
Exemple #5
0
        private void Form1_Load(object sender, EventArgs e)
        {
            m_objFile = new MFileClass();

            m_objRenderer = new MRendererClass();

            m_objFile.PreviewWindowSet("", panelFile.Handle.ToInt32());
            m_objFile.PreviewEnable("", 0, 1);



            FileRenList();
            FileFormats();
        }
Exemple #6
0
        private void Form1_Load(object sender, EventArgs e)
        {
            m_objRenderer = new MRendererClass();

            m_objLiveScreenCapture = new MLiveClass();
            m_objLiveNDI           = new MLiveClass();

            m_objLiveScreenCapture.PreviewWindowSet("", panel1.Handle.ToInt32());
            m_objLiveScreenCapture.PreviewEnable("", 0, 1);


            m_objLiveNDI.PreviewWindowSet("", panel2.Handle.ToInt32());
            m_objLiveNDI.PreviewEnable("", 0, 1);

            m_objLiveScreenCapture.DeviceSet("video", "Medialooks DXGI/DX11 ScreenCapture", "");
            m_objLiveScreenCapture.ObjectStart(null);
        }
Exemple #7
0
        private void Form1_Load(object sender, EventArgs e)
        {
            m_objPlaylist = new MPlaylistClass();
            m_objLive     = new MLiveClass();
            m_objRenderer = new MRendererClass();

            m_objPlaylist.PreviewWindowSet("", panelPlaylist.Handle.ToInt32());
            m_objPlaylist.PreviewEnable("", 0, 1);

            m_objLive.PreviewWindowSet("", panelLive.Handle.ToInt32());
            m_objLive.PreviewEnable("", 0, 1);

            m_objLive.PropsSet("object::timecode.time_sync", "1");
            m_objLive.PropsSet("object::on_frame.sync", "false");

            m_objLive.OnFrameSafe += M_objLive_OnFrameSafe;
        }
Exemple #8
0
        public MRendererManager(MRendererSettings info /*, int instance*/)
        {
            //_instance = instance;

            _mrendererInfo = info;

            _mrenderer = new MRendererClass();
            if (!string.IsNullOrEmpty(this.VideoDevice))
            {
                _mrenderer.PropsSet("rate-control", "true");
                _mrenderer.DeviceSet("renderer", this.VideoDevice, "");
                if (this.ExternalKeyMode)
                {
                    _mrenderer.DeviceSet("renderer::keying", "external", "");
                }
            }

            AppDomain.CurrentDomain.ProcessExit        += CurrentDomain_ProcessExit;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            AppDomain.CurrentDomain.DomainUnload       += CurrentDomain_DomainUnload;
        }
 private void RendererWindow_Closed(object sender, EventArgs e)
 {
     Marshal.ReleaseComObject(_mrenderer);
     _mrenderer = null;
 }
Exemple #10
0
        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                if (Properties.Settings.Default.UrlHistory != null)
                {
                    object[] strHistory = NetworkPlaybackSample.Properties.Settings.Default.UrlHistory.ToArray();
                }
                m_objFile = new MFileClass();
                m_objFile.PreviewWindowSet("", panelPreview.Handle.ToInt32());
                m_objFile.PreviewEnable("", 1, 1);
                m_objRenderer = new MRendererClass();
                FillVideoFormats();
                FillAudioFormats();
                comboBoxVF.SelectedIndex = startVideoFormat;
                comboBoxAF.SelectedIndex = startAudioFormat;
                FillRenderers();
                UpdateDelay();
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Application.Exit();
            }
            string JSON = "{ \"Number of Input Ports\": \"1\", \"Device List\": [";

            for (int i = 0; i < comboBoxRenderer.Items.Count; i++)
            {
                if (i != comboBoxRenderer.Items.Count - 1)
                {
                    JSON += "\"" + comboBoxRenderer.Items[i] + "\",";
                }
                else
                {
                    JSON += "\"" + comboBoxRenderer.Items[i] + "\"]}";
                }
            }
            var    client        = new HttpClient();
            string serverIP      = textBox1.Text;
            string serverPort    = textBox2.Text;
            var    stringContent = new StringContent(JSON);

            client.PostAsync("http://" + serverIP + ":" + serverPort + "/device_list", stringContent);
            var    data       = GetIP(serverIP, serverPort).Result;
            var    sdpContent = GetSDP(serverIP, serverPort).Result;
            string sdp        = sdpContent.Replace("\\n", Environment.NewLine);

            sdp = sdp.Replace("\"", "");
            string[] lines  = Regex.Split(sdp, "\r\n|\r|\n");
            string   result = "";

            foreach (string line in lines)
            {
                result += line.Trim() + Environment.NewLine;
            }
            if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\stream.sdp"))
            {
                File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\stream.sdp");
            }
            System.IO.File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\stream.sdp", result);
            try
            {
                string filePath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\stream.sdp";
                m_objFile.FileNameSet(filePath, "");
                m_objFile.FilePlayStart();
                m_arrBufferMinMax[0] = GetDblProps(m_objFile, "file::network.buffer_min");
                m_arrBufferMinMax[1] = GetDblProps(m_objFile, "file::network.buffer_max");
                timerStat.Enabled    = true;
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\settings.json"))
            {
                string numberPorts = System.IO.File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\settings.json");
                textBox3.Text = numberPorts;
            }
        }
        /// <summary>
        /// Initialization of Medialooks objects and form controls
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                this.Text += " - MPlatform SDK " + CheckVersionClass.GetVersion();
            }
            catch { }

            try
            {
                //Initialize objects
                m_objMixer         = new MMixerClass();
                m_objRenderer      = new MRendererClass();
                m_objMixerInternal = new MMixerClass();
                m_objrenderIN      = new MRendererClass();
                m_objLive          = new MLiveClass();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Can't create MPlatform objects: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
                return;
            }

            //Initialize preview
            m_objMixer.PreviewWindowSet("", panelPreview.Handle.ToInt32());
            m_objMixer.PreviewEnable("", checkBoxAudio.Checked ? 1 : 0, checkBoxVideo.Checked ? 1 : 0);

            //Start mixer object
            m_objMixer.ObjectStart(null);
            m_objMixer.FilePlayStart();

            //Look for renderers
            int nDevices = 0;

            m_objRenderer.DeviceGetCount(0, "renderer", out nDevices);
            if (nDevices > 0)
            {
                checkBoxOutput.Enabled   = true;
                comboBoxRenderer.Enabled = true;
                for (int i = 0; i < nDevices; i++)
                {
                    string strName;
                    string strXML;
                    m_objRenderer.DeviceGetByIndex(0, "renderer", i, out strName, out strXML);
                    comboBoxRenderer.Items.Add(strName);
                }
                comboBoxRenderer.SelectedIndex = 0;
            }
            else
            {
                checkBoxOutput.Enabled   = false;
                comboBoxRenderer.Enabled = false;
            }

            //Fill audio and video formats
            FillVideoFormats();
            FillAudioFormats();

            comboBoxVF.SelectedIndex = startVideoFormat;
            comboBoxAF.SelectedIndex = startAudioFormat;
            //Fill scenen tree
            mElementsTree.SetControlledObject(m_objMixer);
            MElement rootNode;

            m_objMixer.ElementsGetByIndex(0, out rootNode);
            if (rootNode != null)
            {
                mElementsTree.SetSelectedElement(rootNode);
            }

            if (rootNode == null)
            {
                return;
            }
            System.Runtime.InteropServices.Marshal.ReleaseComObject(rootNode);
            GC.Collect();
        }
Exemple #12
0
        /// <summary>
        /// Initialization of Medialooks objects and form controls
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                this.Text += " - MPlatform SDK " + CheckVersionClass.GetVersion();
            }
            catch { }

            try
            {
                //Initialize objects
                m_objPlaylist = new MPlaylistClass();

                //m_objFile = new MFileClass();
                m_objRenderer = new MRendererClass();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Can't create MPlatform objects: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
                return;
            }

            //Loop playlist
            m_objPlaylist.PropsSet("loop", "true");
            m_objPlaylist.PropsSet("object::on_frame.sync", "true");
            m_objPlaylist.OnEvent     += new IMEvents_OnEventEventHandler(m_objFile_OnEvent);
            m_objPlaylist.OnFrameSafe += M_objPlaylist_OnFrameSafe;
            //Initialize preview
            m_objPlaylist.PreviewWindowSet("", panelPreview.Handle.ToInt32());
            m_objPlaylist.PreviewEnable("", checkBoxAudio.Checked ? 1 : 0, checkBoxVideo.Checked ? 1 : 0);

            //Start mFile object
            m_objPlaylist.ObjectStart(new object());

            //Look for renderers
            int nDevices = 0;

            m_objRenderer.DeviceGetCount(0, "renderer", out nDevices);
            if (nDevices > 0)
            {
                checkBoxOutput.Enabled   = true;
                comboBoxRenderer.Enabled = true;
                for (int i = 0; i < nDevices; i++)
                {
                    string strName;
                    string strXML;
                    m_objRenderer.DeviceGetByIndex(0, "renderer", i, out strName, out strXML);
                    comboBoxRenderer.Items.Add(strName);
                }
                comboBoxRenderer.SelectedIndex = 0;
            }
            else
            {
                checkBoxOutput.Enabled   = false;
                comboBoxRenderer.Enabled = false;
            }

            //Fill audio and video formats
            FillVideoFormats();
            FillAudioFormats();

            comboBoxVF.SelectedIndex = startVideoFormat;
            comboBoxAF.SelectedIndex = startAudioFormat;

            //Start playlist
            m_objPlaylist.FilePlayStart();
        }