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. |