LEADTOOLS Multimedia (Leadtools.MediaFoundation assembly)

Compression Property

Show in webframe
Example 



This property is updated with the video compression of the video format.
Syntax
'Declaration
 
Public ReadOnly Property Compression As Integer
'Usage
 
Dim instance As VideoFormat
Dim value As Integer
 
value = instance.Compression
public int Compression {get;}
public:
property int Compression {
   int get();
}

Property Value

A value that represents the video compression of the video format.
Remarks

This property is the video compression type of the video format.

For compressed video and YUV formats, this member is a FOURCC code, specified as a DWORD value in little-endian order. For example, YUYV video has the FOURCC 'VYUY' or 0x56595559. For more information, see the Microsoft documentation on FOURCC Codes.

For uncompressed RGB formats, the following values are possible:
Value Meaning
BI_RGB (0) Uncompressed RGB.
BI_BITFIELDS (3) Uncompressed RGB with color masks. Valid for 16-bpp and 32-bpp bitmaps.

For 16-bpp bitmaps, if biCompression equals BI_RGB, the format is always RGB 555. If biCompression equals BI_BITFIELDS, the format is either RGB 555 or RGB 565. Use the media subtype GUID to determine the specific RGB type.

Use the CaptureCtrl.VideoCaptureFormats property to access the VideoFormats object that contains all of the formats available for the current capture device. The VideoFormats indexer obtains a VideoFormat object for each of the supported video formats. The properties of each object, obtained using the VideoFormats indexer, are updated with information about that specific video format. This information includes the following information:

Example
Copy Code  
Imports Leadtools
Imports Leadtools.MediaFoundation
Imports LeadtoolsMediaFoundationExamples.Fixtures

Public _form As CaptureCtrlForm = New CaptureCtrlForm()
Public _result As Boolean = False
Public Sub VideoFormatExample()
   ' reference the capture control
   Dim capturectrl As CaptureCtrl = _form.CaptureCtrl

   Dim count As Integer, compression As Integer = 0, bits As Integer = 0, width As Integer = 0, height As Integer = 0
   Dim found As Integer, selected As Integer = -1

   ' set a video device, use the name of your device here
   If Not capturectrl.VideoDevices("USB") Is Nothing Then
      capturectrl.VideoDevices("USB").Selected = True
   End If

   ' reference the videoformats property
   Dim videoformats As VideoFormats = capturectrl.VideoCaptureFormats

   Try
      ' get count of available video formats
      count = videoformats.Count

      ' enumerate formats and select one
      For Each vf As VideoFormat In videoformats
         ' get the properties
         bits = vf.BitCount
         compression = vf.Compression
         width = vf.Width
         height = vf.Height

         ' select the format if it matches some criteria
         If bits = 16 AndAlso width = 640 AndAlso height = 480 Then
            vf.Selected = True
            Exit For
         End If
      Next vf

      ' reset the current item
      videoformats.Reset()

      ' get the currently selected format
      selected = videoformats.Selection

      ' find a format based on subtype name, width and height (YUY2 320 x 240 video)
      found = videoformats.IndexOf(Leadtools.MediaFoundation.Constants.MEDIASUBTYPE_YUY2, 320, 240)

      ' our found format is not selected, so select it
      If found <> selected Then
         videoformats.Selection = found
      End If

      ' get the new selected format
      selected = videoformats.Selection

      ' set our result based on what we expect
      _result = (count > 0 AndAlso selected = found)
   Catch e1 As Exception
      _result = False
   End Try
End Sub
using Leadtools;
using Leadtools.MediaFoundation;
using LeadtoolsMediaFoundationExamples.Fixtures;

public CaptureCtrlForm _form = new CaptureCtrlForm();
public bool _result = false;
public void VideoFormatExample()
{
   // reference the capture control
   CaptureCtrl capturectrl = _form.CaptureCtrl;

   int count, compression = 0, bits = 0, width = 0, height = 0;
   int found, selected = -1;

   // set a video device, use the name of your device here
   if (capturectrl.VideoDevices["USB"] != null)
      capturectrl.VideoDevices["USB"].Selected = true;

   // reference the videoformats property
   VideoFormats videoformats = capturectrl.VideoCaptureFormats;

   try
   {
      // get count of available video formats
      count = videoformats.Count;

      // enumerate formats and select one
      foreach (VideoFormat vf in videoformats)
      {
         // get the properties
         bits = vf.BitCount;
         compression = vf.Compression;
         width = vf.Width;
         height = vf.Height;

         // select the format if it matches some criteria
         if (bits == 16 && width == 640 && height == 480)
         {
            vf.Selected = true;
            break;
         }
      }

      // reset the current item
      videoformats.Reset();

      // get the currently selected format
      selected = videoformats.Selection;

      // find a format based on subtype name, width and height (YUY2 320 x 240 video)
      found = videoformats.IndexOf(Constants.MEDIASUBTYPE_YUY2, 320, 240);

      // our found format is not selected, so select it
      if (found != selected)
         videoformats.Selection = found;

      // get the new selected format
      selected = videoformats.Selection;

      // set our result based on what we expect
      _result = (count > 0 && selected == found);
   }
   catch (Exception)
   {
      _result = false;
   }
}
Requirements

Target Platforms

See Also

Reference

VideoFormat Class
VideoFormat Members

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.MediaFoundation requires a Multimedia or Multimedia Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features