示例#1
0
        private void Config()
        {
            IWMReader reader;

            WMUtils.WMCreateReader(IntPtr.Zero, Rights.Playback, out reader);
            burn = (IWMReaderPlaylistBurn)reader;
        }
示例#2
0
        private void TestAllocateForStream()
        {
            IWMReader read;

            m_AllocateForStream = false;
            m_Opened            = false;

            WMUtils.WMCreateReader(IntPtr.Zero, Rights.Playback, out read);

            read.Open(sFileName, this, new IntPtr(123));
            while (!m_Opened)
            {
                System.Threading.Thread.Sleep(0);
            }

            IWMReaderAdvanced ra = read as IWMReaderAdvanced;

            ra.SetAllocateForStream(1, true);
            ra.SetReceiveStreamSamples(1, true);

            read.Start(0, 0, 1.0f, IntPtr.Zero);
            while (!m_AllocateForStream)
            {
                System.Threading.Thread.Sleep(0);
            }

            read.Stop();
            read.Close();
        }
        private void Config()
        {
            IWMWriter         pWMWriter;
            IWMProfileManager pWMProfileManager = null;
            IWMProfile        pWMProfile        = null;
            INSSBuffer        pSample;

            // Profile id for "Windows Media Video 8 for Dial-up Modem (No audio, 56 Kbps)"
            Guid guidProfileID = new Guid(0x6E2A6955, 0x81DF, 0x4943, 0xBA, 0x50, 0x68, 0xA9, 0x86, 0xA7, 0x08, 0xF6);

            WMUtils.WMCreateProfileManager(out pWMProfileManager);
            IWMProfileManager2 pProfileManager2 = (IWMProfileManager2)pWMProfileManager;

            pProfileManager2.SetSystemProfileVersion(WMVersion.V8_0);
            pProfileManager2.LoadProfileByID(guidProfileID, out pWMProfile);

            WMUtils.WMCreateWriter(IntPtr.Zero, out pWMWriter);
            pWMWriter.SetProfile(pWMProfile);
            pWMWriter.SetOutputFilename("foo.out");

            Marshal.ReleaseComObject(pWMProfile);
            Marshal.ReleaseComObject(pWMProfileManager);

            pWMWriter.BeginWriting();
            pWMWriter.AllocateSample(MAXLENGTH, out pSample);
            m_pSample = (INSSBuffer3)pSample;
        }
示例#4
0
 private void Config()
 {
     WMUtils.WMCreateWriter(IntPtr.Zero, out m_Writer);
     m_Writer.SetProfileByID(g);
     m_Writer.SetOutputFilename(sFileName);
     m_wa3 = m_Writer as IWMWriterAdvanced3;
 }
        private void Config()
        {
            IWMWriterNetworkSink pWMWriterNetworkSink = null;

            WMUtils.WMCreateWriterNetworkSink(out pWMWriterNetworkSink);
            m_pAddressAccess = (IWMAddressAccess2)pWMWriterNetworkSink;
        }
示例#6
0
        private void Config()
        {
            IWMReader read;

            WMUtils.WMCreateReader(IntPtr.Zero, Rights.Playback, out read);
            m_pIWMReaderNetworkConfig2 = (IWMReaderNetworkConfig2)read;
        }
示例#7
0
        private void DoIndex(IndexerType it, bool b)
        {
            IWMIndexer pIndex;

            WMUtils.WMCreateIndexer(out pIndex);
            IWMIndexer2 pIndex2 = pIndex as IWMIndexer2;

            pIndex2.Configure(0, it, null, null);

            m_IndexComplete = false;
            m_MaxIndex      = 0;
            m_IndexError    = 0;
            pIndex2.StartIndexing(sFileName, this, IntPtr.Zero);
            while (!m_IndexComplete)
            {
                if (b)
                {
                    pIndex.Cancel();
                }
                else
                {
                    System.Threading.Thread.Sleep(0);
                }
            }
            if (m_IndexError != 0)
            {
                throw new COMException("Indexing error", m_IndexError);
            }
        }
示例#8
0
        private void TestOnStreamSelection()
        {
            IWMReader read;

            m_StreamSelection = false;
            m_Opened          = false;

            WMUtils.WMCreateReader(IntPtr.Zero, Rights.Playback, out read);
            IWMReaderAdvanced ra = read as IWMReaderAdvanced;

            ra.SetReceiveSelectionCallbacks(true);

            read.Open(sFileName, this, new IntPtr(123));
            while (!m_Opened)
            {
                System.Threading.Thread.Sleep(0);
            }

            ChangeSelected(ra);
            while (!m_StreamSelection)
            {
                System.Threading.Thread.Sleep(1);
            }
            read.Stop();
            read.Close();
        }
示例#9
0
        private void TestValid()
        {
            int i = 0;

            byte[] b = null;

            BinaryReader m_br;

            m_br = new BinaryReader(new FileStream(sFileName, FileMode.Open, FileAccess.Read));

            WMUtils.WMValidateData(b, ref i);
            b = new byte[i];
            m_br.Read(b, 0, i);
            WMUtils.WMValidateData(b, ref i);

            try
            {
                b[0] = 55;
                WMUtils.WMValidateData(b, ref i);
                Debug.Assert(false);
            }
            catch (Exception e)
            {
                int hr = Marshal.GetHRForException(e);
                Debug.Assert(hr == NSResults.E_INVALID_NAME);
            }
        }
        private void Config()
        {
            IWMLicenseBackup pLB = null;

            WMUtils.WMCreateBackupRestorer(this, out pLB);
            m_pIWMBackupRestoreProps = (IWMBackupRestoreProps)pLB;
        }
示例#11
0
 private void Config()
 {
     WMUtils.WMCreateReader(IntPtr.Zero, 0, out m_read);
     m_read.Open(sFileName, this, new IntPtr(123));
     System.Threading.Thread.Sleep(500);
     m_pIWMReaderStreamClock = (IWMReaderStreamClock)m_read;
 }
示例#12
0
        private IBaseFilter ConfigAsf(ICaptureGraphBuilder2 capGraph,
                                      string szOutputFileName,
                                      CaptureOptions.VideoCompression quality)
        {
            IFileSinkFilter pTmpSink  = null;
            IBaseFilter     asfWriter = null;

            int hr = capGraph.SetOutputFileName(MediaSubType.Asf, szOutputFileName, out asfWriter, out pTmpSink);

            Marshal.ThrowExceptionForHR(hr);

            try
            {
                IConfigAsfWriter lConfig = (IConfigAsfWriter)asfWriter;

                string profileData;
                int    bitRate;
                switch (quality)
                {
                case CaptureOptions.VideoCompression.MinimalSize:
                    bitRate = (int)(1000000.0 * (_inFrameWidth * _inFrameHeight * _FPS) / (720 * 1280 * 25));
                    break;

                case CaptureOptions.VideoCompression.Optimal:
                    bitRate = (int)(2000000.0 * (_inFrameWidth * _inFrameHeight * _FPS) / (720 * 1280 * 25));
                    break;

                case CaptureOptions.VideoCompression.BestQuality:
                    bitRate = (int)(4000000.0 * (_inFrameWidth * _inFrameHeight * _FPS) / (720 * 1280 * 25));
                    break;

                default:
                    throw new ApplicationException("Internal error: unknown type of the required video codec");
                }

                //Getting XML with profile.
                using (var reader = new StreamReader(Path.Combine(Directories.GetConfigDirectory(), "Encoder.prx")))
                {
                    profileData = reader.ReadToEnd();
                }
                profileData = profileData.Replace("__FRAME_WIDTH__", _inFrameWidth.ToString());
                profileData = profileData.Replace("__FRAME_HEIGHT__", _inFrameHeight.ToString());
                profileData = profileData.Replace("__BIT_RATE__", bitRate.ToString());

                // Get manager
                IWMProfileManager profileManager;
                WMUtils.WMCreateProfileManager(out profileManager);

                // Create profile
                IWMProfile profile;
                profileManager.LoadProfileByData(profileData, out profile);
                lConfig.ConfigureFilterUsingProfile(profile);
            }
            finally
            {
                Marshal.ReleaseComObject(pTmpSink);
            }

            return(asfWriter);
        }
示例#13
0
        private void TestMisc()
        {
            IWMWriterPushSink pSink;

            WMUtils.WMCreateWriterPushSink(out pSink);
            Debug.Assert(pSink != null);
        }
示例#14
0
        // Use Reader interface to access profile properties
        ///////////////////////////////////////////////////////////////////////////////
        void OpenFileWithReader(string pwszFileName)
        {
            IWMReader pReader;

            WMUtils.WMCreateReader(IntPtr.Zero, 0, out pReader);

            try
            {
                pReader.Open(pwszFileName, this, IntPtr.Zero);
                m_hOpenEvent.WaitOne();

                try
                {
                    GetPropertiesFromProfile((IWMProfile)pReader);
                }
                finally
                {
                    pReader.Close();
                    m_hCloseEvent.WaitOne();
                }
            }
            finally
            {
                Marshal.ReleaseComObject(pReader);
            }
        }
示例#15
0
        private void Config()
        {
            IWMProfileManager profileManager;

            WMUtils.WMCreateProfileManager(out profileManager);

            m_pCodecInfo = (IWMCodecInfo)profileManager;
        }
        private void Config()
        {
            IWMProfileManager pWMProfileManager;

            WMUtils.WMCreateProfileManager(out pWMProfileManager);

            m_pl = pWMProfileManager as IWMProfileManagerLanguage;
        }
示例#17
0
        //------------------------------------------------------------------------------
        // Name: CDRMHeaderQuery(()
        // Desc: Constructor.
        //------------------------------------------------------------------------------
        public CDrmHeaderQuery()
        {
            WMUtils.WMCreateEditor(out m_pEditor);

            m_pEditor2 = (IWMMetadataEditor2)m_pEditor;

            m_pDRMEditor = (IWMDRMEditor)m_pEditor;
        }
示例#18
0
        private void Config()
        {
            IWMProfileManager pWMProfileManager;

            WMUtils.WMCreateProfileManager(out pWMProfileManager);

            m_pWMProfileManager2 = (IWMProfileManager2)pWMProfileManager;
        }
        private void Config()
        {
            IWMMetadataEditor edit;

            WMUtils.WMCreateEditor(out edit);

            m_edit = edit as IWMMetadataEditor2;
        }
        private void Config()
        {
            IWMWriter m_Writer;

            WMUtils.WMCreateWriter(IntPtr.Zero, out m_Writer);
            m_Writer.SetProfileByID(g);
            m_Writer.GetInputProps(0, out m_Props);
        }
        private void Config()
        {
            WMUtils.WMCreateWriter(IntPtr.Zero, out m_pWriter);
            m_pWriter.SetProfileByID(g);
            m_pWriter.BeginWriting();

            m_preproc = m_pWriter as IWMWriterPreprocess;
        }
示例#22
0
        private void Config()
        {
            IWMWriter pWriter;

            WMUtils.WMCreateWriter(IntPtr.Zero, out pWriter);

            m_Writer = pWriter as IWMWriterAdvanced;
        }
        private void Config()
        {
            IWMWriter writer;

            WMUtils.WMCreateWriter(IntPtr.Zero, out writer);
            writer.SetProfileByID(g);
            m_Writer = writer as IWMWriterAdvanced2;
        }
        private void Config()
        {
            IWMMetadataEditor pEditor;

            WMUtils.WMCreateEditor(out pEditor);
            pEditor.Open(sFileName);
            m_head = (IWMHeaderInfo2)pEditor;
        }
        private void Config()
        {
            IWMReader read;

            WMUtils.WMCreateReader(IntPtr.Zero, 0, out read);

            m_read = read as IWMReaderAdvanced2;
        }
示例#26
0
        private void Config()
        {
            IWMWriterFileSink pSink;

            WMUtils.WMCreateWriterFileSink(out pSink);

            m_pSink = pSink as IWMWriterFileSink2;
        }
        private void Config()
        {
            IWMWriter pWriter;

            WMUtils.WMCreateWriter(IntPtr.Zero, out pWriter);
            m_Writer = pWriter as IWMWriterPostView;
            pWriter.SetProfileByID(g);
        }
示例#28
0
 public AsfImageLoader(AsfFile file)
 {
     stream = new AsfStream(file, AsfStreamType.asfImage, 0);
     WMUtils.WMCreateSyncReader(IntPtr.Zero, Rights.Playback, out syncReader);
     syncReader.OpenStream(new AsfIStream(stream));
     syncReader.SetReadStreamSamples((short)stream.Configuration.AsfVideoStreamId, false);
     Width  = stream.Configuration.ImageWidth;
     Height = stream.Configuration.ImageHeight;
 }
示例#29
0
        private void Config()
        {
            IWMSyncReader read;

            m_Status = 0;

            WMUtils.WMCreateSyncReader(IntPtr.Zero, Rights.Playback, out read);
            m_read2 = read as IWMSyncReader2;
        }
示例#30
0
        private void TestOffline()
        {
            bool b;

            WMUtils.WMIsAvailableOffline(sFileName, null, out b);
            Debug.Assert(b);
            WMUtils.WMIsAvailableOffline("http://85.25.144.234:3030", null, out b);
            Debug.Assert(!b);
        }