Class VideoWriter
Represents a video writer
Implements
Inherited Members
Namespace: ic4
Assembly: ic4dotnet.dll
Syntax
public class VideoWriter : HandleObject, IDisposable
Remarks
To create a video writer, use the VideoWriter(VideoWriterType) constructor, passing the type of the desired video file.
After creating the video writer, call BeginFile(string, ImageType, double) to start writing a new video file. Call AddFrame(ImageBuffer) to add images to the video file. To complete the recording, call FinishFile().
Use PropertyMap to access encoder configuration options.
Constructors
VideoWriter(VideoWriterType)
Creates a new video writer.
Declaration
public VideoWriter(VideoWriterType type)
Parameters
| Type | Name | Description |
|---|---|---|
| VideoWriterType | type | The type of video file to create a writer for |
Exceptions
| Type | Condition |
|---|---|
| IC4Exception | Check ErrorCode and ToString() for details. |
Properties
PropertyMap
The video writer's property map for encoder configuration
Declaration
public PropertyMap PropertyMap { get; }
Property Value
| Type | Description |
|---|---|
| PropertyMap | The video writer's property map |
Exceptions
| Type | Condition |
|---|---|
| IC4Exception | Check ErrorCode and ToString() for details. |
Methods
AddFrame(ImageBuffer)
Adds an image to the currently open video file.
Declaration
public void AddFrame(ImageBuffer buffer)
Parameters
| Type | Name | Description |
|---|---|---|
| ImageBuffer | buffer | Image buffer to be added to the video file |
Remarks
BeginFile(string, ImageType, double) must be called before adding images to the video file.
The image buffer's ImageType must be equal to the imageType parameter passed to BeginFile(string, ImageType, double) when starting the file.
The video writer can retain a reference to the image buffer. This can delay the release and possible reuse of the image buffer. In this case, the buffer becomes shared, and is no longer safely writable (IsWritable). Use AddFrameCopy(ImageBuffer) to always let the video writer immediately copy the data out of the image buffer.
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException |
|
| InvalidOperationException | BeginFile(string, ImageType, double) was not called. |
| IC4Exception | Check ErrorCode and ToString() for details. |
AddFrameCopy(ImageBuffer)
Adds an image to the currently open video file, copying the image data in the process.
Declaration
public void AddFrameCopy(ImageBuffer buffer)
Parameters
| Type | Name | Description |
|---|---|---|
| ImageBuffer | buffer | Image buffer to be added to the video file |
Remarks
BeginFile(string, ImageType, double) must be called before adding images to the video file.
The image buffer's ImageType must be equal to the imageType parameter passed to BeginFile(string, ImageType, double) when starting the file.
The image buffer's contents will be copied, so that the buffer's reference count is not increased and it can be reused immedietely if the final reference is released. Use AddFrame(ImageBuffer) to avoid the copy operation if it is not necessary.
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException |
|
| InvalidOperationException | BeginFile(string, ImageType, double) was not called. |
| IC4Exception | Check ErrorCode and ToString() for details. |
BeginFile(string, ImageType, double)
Opens a new video file ready to write images into.
Declaration
public void BeginFile(string fileName, ImageType imageType, double frameRate)
Parameters
| Type | Name | Description |
|---|---|---|
| string | fileName | Name of the new video file |
| ImageType | imageType | Image type of the images that are going to be written |
| double | frameRate | Playback frame rate of the video file |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | |
| InvalidOperationException | BeginFile was already called without a matching call to FinishFile(). |
| IC4Exception | Check ErrorCode and ToString() for details. |
FinishFile()
Finishes writing a video file.
Declaration
public void FinishFile()
Exceptions
| Type | Condition |
|---|---|
| InvalidOperationException | BeginFile(string, ImageType, double) was not called. |
| IC4Exception | Check ErrorCode and ToString() for details. |


