LEADTOOLS Multimedia (Leadtools.Multimedia assembly) Send comments on this topic. | Back to Introduction | Help Version 17.0.3.22
EstimateOutputSize Method
See Also 
Leadtools.Multimedia Namespace > ConvertCtrl Class : EstimateOutputSize Method



duration
Value that represents the duration in seconds for which to calculate the estimated output size. Pass the value -1 to estimate the conversion output size for the whole file duration.
duration
Value that represents the duration in seconds for which to calculate the estimated output size. Pass the value -1 to estimate the conversion output size for the whole file duration.
Gets the estimated conversion output size for the specified duration, in bytes.

Syntax

Visual Basic (Declaration) 
Public Overridable Function EstimateOutputSize( _
   ByVal duration As Double _
) As Double
Visual Basic (Usage)Copy Code
Dim instance As ConvertCtrl
Dim duration As Double
Dim value As Double
 
value = instance.EstimateOutputSize(duration)
C# 
public virtual double EstimateOutputSize( 
   double duration
)
C++/CLI 
public:
virtual double EstimateOutputSize( 
   double duration
) 

Parameters

duration
Value that represents the duration in seconds for which to calculate the estimated output size. Pass the value -1 to estimate the conversion output size for the whole file duration.

Return Value

A value that represents the conversion estimated output size.

Example

Visual BasicCopy Code
Public _result As Boolean = False
      Public _form As ConvertCtrlForm = New ConvertCtrlForm()
      Public _convertctrl As ConvertCtrl
      Public _estBitRate As Integer = 0
      Public _estFileSize As Double = 0.0
      Public Sub EstimateExample()
         ' reference the convert control
         _convertctrl = _form.ConvertCtrl

         ' input and output files
         Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_Source.avi")
         Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_EstimateOutputBitRateExample.avi")

         Try
            ' set the source video
            _convertctrl.SourceFile = inFile

            ' set video and audio compressors
            _convertctrl.VideoCompressors.H264.Selected = True
            _convertctrl.AudioCompressors.AC3.Selected = True

            ' subscribe to the progress event
            AddHandler _convertctrl.Progress, AddressOf ConvertCtrl_Progress

            ' set the capture target file
            _convertctrl.TargetFile = outFile

            ' set the capture mode to still and start
            _convertctrl.StartConvert()

            ' 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 _convertctrl.State = ConvertState.Running
               Application.DoEvents()
            Loop

            ' set the result to what we expect
            _result = (_estBitRate <> 0 AndAlso _estFileSize <> 0.0)
         Catch e1 As Exception
            _result = False
         End Try
      End Sub

      Private Sub ConvertCtrl_Progress(ByVal sender As Object, ByVal e As ProgressEventArgs)
         ' get the bit rate estimate
         ' we will get called multiple time throughout the conversion process
         ' but for this example it is ok just to use the last received estimate
         _estBitRate = _convertctrl.EstimateOutputBitRate()

         ' get the file size estimate
         _estFileSize = _convertctrl.EstimateOutputSize(CDbl(e.time))
      End Sub

Public NotInheritable Class LEAD_VARS
   Public Const MediaDir As String = "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 17\Media"
End Class
C#Copy Code
public bool _result = false;
      public ConvertCtrlForm _form = new ConvertCtrlForm();
      public ConvertCtrl _convertctrl;
      public int _estBitRate = 0;
      public double _estFileSize = 0.0;
      public void EstimateExample()
      {
         // reference the convert control
         _convertctrl = _form.ConvertCtrl;

         // input and output files
         string inFile = Path.Combine(LEAD_VARS.MediaDir,"ConvertCtrl_Source.avi");
         string outFile = Path.Combine(LEAD_VARS.MediaDir,"ConvertCtrl_EstimateOutputBitRateExample.avi");

         try
         {
            // set the source video
            _convertctrl.SourceFile = inFile;

            // set video and audio compressors
            _convertctrl.VideoCompressors.H264.Selected = true;
            _convertctrl.AudioCompressors.AC3.Selected = true;

            // subscribe to the progress event
            _convertctrl.Progress += new ProgressEventHandler(ConvertCtrl_Progress);

            // set the capture target file
            _convertctrl.TargetFile = outFile;

            // set the capture mode to still and start
            _convertctrl.StartConvert();

            // 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 (_convertctrl.State == ConvertState.Running)
               Application.DoEvents();

            // set the result to what we expect
            _result = (_estBitRate != 0 && _estFileSize != 0.0);
         }
         catch (Exception)
         {
            _result = false;
         }
      }

      void ConvertCtrl_Progress(object sender, ProgressEventArgs e)
      {
         // get the bit rate estimate
         // we will get called multiple time throughout the conversion process
         // but for this example it is ok just to use the last received estimate
         _estBitRate = _convertctrl.EstimateOutputBitRate();

         // get the file size estimate
         _estFileSize = _convertctrl.EstimateOutputSize((double)e.time);
      }

static class LEAD_VARS
{
   public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 17\Media";
}

Remarks

The estimated output size is calculated using the following equation: Size = (Bitrate * Duration) / 8. The retrieved size depends on the state of the convert object. If the object is in the running state, the retrieved size is related to the actual number of bytes that have been written. If the object is not running, the retrieved size is a theoretical value dependent on the conversion settings and the chosen encoding settings.

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7

See Also