LEADTOOLS Multimedia (Leadtools.Multimedia assembly)
LEAD Technologies, Inc

BitRate Property

Example 





Gets the average bit rate achieved by the multiplexer.
Syntax
[DispIdAttribute(1)]
int BitRate {get;}
'Declaration
 
<DispIdAttribute(1)>
ReadOnly Property BitRate As Integer
'Usage
 
Dim instance As ILMNetMux
Dim value As Integer
 
value = instance.BitRate
[DispIdAttribute(1)]
int BitRate {get;}
DispIdAttribute(1)
get_BitRate(); 
[DispIdAttribute(1)]
property int BitRate {
   int get();
}

Property Value

An System.Int32 value that represents the average bit rate achieved by the multiplexer.
Remarks
The average bit rate is affected dramatically by the input media type.

Compressed media has a much smaller bit rate.

Example
Copy CodeCopy Code  
Public _result As Boolean = False
Public _form As CaptureCtrlForm = New CaptureCtrlForm()
Public _captureCtrl As CaptureCtrl
Private Const MaxBitRate As Integer = 128
Private Const TestBitRate As Integer = MaxBitRate + 1

Public Sub NetworkMultiplexerExample()
   ' reference the capture control
   _captureCtrl = _form.CaptureCtrl

   ' output file
   Dim outFile As String = "ltsf://127.0.0.1:27015"

   Try
      ' try to find a USB camera
      If _captureCtrl.VideoDevices("Logitech") Is Nothing Then
         Throw New Exception("No Logitech video device available")
      End If

      _captureCtrl.VideoDevices("Logitech").Selected = True

      ' select a video compressor
      _captureCtrl.VideoCompressors.Mpeg4.Selected = True

      ' set the target output file
      _captureCtrl.TargetFormat = TargetFormatType.NET
      _captureCtrl.TargetFile = outFile

      If _captureCtrl.IsModeAvailable(CaptureMode.Video) Then
         ' just 10 seconds of capture time
         _captureCtrl.TimeLimit = 10
         _captureCtrl.UseTimeLimit = True

         ' ready the capture graph in order to get the LNMetMux instance
         _captureCtrl.ReadyCapture(CaptureMode.Video)

         ' get the network multiplexer reference
         Dim pMux As LMNetMux = TryCast(_captureCtrl.GetSubObject(CaptureObject.TargetFilter), LMNetMux)

         If Not pMux Is Nothing Then
            ' set live source (dropping samples is allowed if the sink is not sending fast enough to keep up)
            pMux.LiveSource = True

            ' atleast 10 seconds for the netmux sample queue
            If pMux.MaxQueueDuration < 10 Then
               pMux.MaxQueueDuration = 10
            End If

            ' 128 kbps max
            pMux.BitRateLimit = MaxBitRate * 1024

            ' set the result to what we expect
            _result = True
         End If

         ' start capture
         _captureCtrl.StartCapture(CaptureMode.Video)

         ' we'll loop on the state and pump messages for this example.
         ' but you should not need to if running from a Windows Forms application.
         Do While _captureCtrl.State = CaptureState.Running
            If Not pMux Is Nothing Then
               ' confirm that the actual bitrate does not exceed our max specified above
               _result = _result And (pMux.BitRate / 1024 < TestBitRate)
            End If
            Application.DoEvents()
         Loop

         ' release the mux since its a COM object
         If Not pMux Is Nothing Then
            Marshal.ReleaseComObject(pMux)
         End If
      End If
   Catch e1 As Exception
      _result = False
   End Try
End Sub
public bool _result = false;
public CaptureCtrlForm _form = new CaptureCtrlForm();
public CaptureCtrl _captureCtrl;
const int MaxBitRate = 128;
const int TestBitRate = MaxBitRate+1;

public void NetworkMultiplexerExample()
{
   // reference the capture control
   _captureCtrl = _form.CaptureCtrl;

   // output file
   string outFile = @"ltsf://127.0.0.1:27015";

   try
   {
      // try to find a USB camera
      if (_captureCtrl.VideoDevices["Logitech"] == null)
         throw new Exception("No Logitech video device available");

      _captureCtrl.VideoDevices["Logitech"].Selected = true;

      // select a video compressor
      _captureCtrl.VideoCompressors.Mpeg4.Selected = true;

      // set the target output file
      _captureCtrl.TargetFormat = TargetFormatType.NET;
      _captureCtrl.TargetFile = outFile;

      if (_captureCtrl.IsModeAvailable(CaptureMode.Video))
      {
         // just 10 seconds of capture time
         _captureCtrl.TimeLimit = 10;     
         _captureCtrl.UseTimeLimit = true;

         // ready the capture graph in order to get the LNMetMux instance
         _captureCtrl.ReadyCapture(CaptureMode.Video);

         // get the network multiplexer reference
         LMNetMux pMux = _captureCtrl.GetSubObject(CaptureObject.TargetFilter) as LMNetMux;

         if (pMux != null)
         {
            // set live source (dropping samples is allowed if the sink is not sending fast enough to keep up)
            pMux.LiveSource = true;

            // atleast 10 seconds for the netmux sample queue
            if (pMux.MaxQueueDuration < 10)
               pMux.MaxQueueDuration = 10;

            // 128 kbps max
            pMux.BitRateLimit = MaxBitRate * 1024;

            // set the result to what we expect
            _result = true;
         }

         // start capture
         _captureCtrl.StartCapture(CaptureMode.Video);

         // we'll loop on the state and pump messages for this example.
         // but you should not need to if running from a Windows Forms application.
         while (_captureCtrl.State == CaptureState.Running)
         {
            if (pMux != null)
            {
               // confirm that the actual bitrate does not exceed our max specified above
               _result &= (pMux.BitRate/1024 < TestBitRate);
            }
            Application.DoEvents();
         }

         // release the mux since its a COM object
         if (pMux != null)
            Marshal.ReleaseComObject(pMux);
      }
   }
   catch (Exception)
   {
      _result = false;
   }
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

ILMNetMux Interface
ILMNetMux Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.