FFMpeg video encode codec.
Inherits Rx::FileIO::IVideoEncode, and Rx::FileIO::IParameterVideoEncode.
|
| CFFmpegEnc_Impl () |
| Default constructor. Applies all necessary options for the encoder and initializes the FFMpeg libraries. More...
|
|
| ~CFFmpegEnc_Impl () |
| Destructor. Frees all by the constructor allocated memory and finalizes the FFmpeg libraries. More...
|
|
virtual void | AddImage (const Rx::Interop::Runtime28::IImage *pSrcImg) |
| Adds a single picture for encoding to video data. The picture must have the same format as specified in the image format in Open(). More...
|
|
virtual void | Close () |
| Closes the video file. If there some delayed pictures in the encoding pipeline, they will be encoded before the video is closed. More...
|
|
virtual void | Destroy () |
| Destroys this object. More...
|
|
virtual void | GetParameters (H264 &xParameters) |
| Gets the current parameters and writes them into the given H264 struct. When this function is called the first time without calling SetParameters() before it will fill the struct with the default values for the used video encoder. This function may be called at any state of the object. More...
|
|
virtual void | Open (const Rx::CRxString &sxOutputVideopath, const Rx::CRxImageFormat &xFormat) |
| Opens the video file at the specified path and sets last option based on the provided image format. More...
|
|
virtual void | SetParameters (const H264 &xParameters) |
| Sets the new parameters for the video encoder from the H264 struct. This function must not be called after the first image was added, but it is not necessary to call GetParameters() before this function. More...
|
|
Rx::FileIO::CFFmpegEnc_Impl::CFFmpegEnc_Impl |
( |
| ) |
|
Default constructor. Applies all necessary options for the encoder and initializes the FFMpeg libraries.
Rx::FileIO::CFFmpegEnc_Impl::~CFFmpegEnc_Impl |
( |
| ) |
|
Destructor. Frees all by the constructor allocated memory and finalizes the FFmpeg libraries.
Adds a single picture for encoding to video data. The picture must have the same format as specified in the image format in Open().
- Parameters
-
pSrcImg | [in] Source image. |
Implements Rx::FileIO::IVideoEncode.
virtual void Rx::FileIO::CFFmpegEnc_Impl::Close |
( |
| ) |
|
|
virtual |
Closes the video file. If there some delayed pictures in the encoding pipeline, they will be encoded before the video is closed.
Implements Rx::FileIO::IVideoEncode.
virtual void Rx::FileIO::CFFmpegEnc_Impl::Destroy |
( |
| ) |
|
|
virtual |
void Rx::FileIO::CFFmpegEnc_Impl::GenerateFilterString |
( |
Rx::CRxString & |
sxFilterString, |
|
|
bool |
bCrop, |
|
|
int |
iTransposeLvl |
|
) |
| |
|
protected |
Generates the string containing the commands used for initializing the filter chain. This function is called by SetupAndOpenEncoder() as part of the setup.
- Parameters
-
sxFilterString | [out] The string containing the generated filter chain. |
bCrop | [in] True to allow frame cropping. |
iTransposeLvl | [in] The transpose level. |
virtual void Rx::FileIO::CFFmpegEnc_Impl::GetParameters |
( |
H264 & |
xParameters | ) |
|
|
virtual |
Gets the current parameters and writes them into the given H264 struct. When this function is called the first time without calling SetParameters() before it will fill the struct with the default values for the used video encoder. This function may be called at any state of the object.
- Parameters
-
xParameters | [out] The H264 struct which contains the current parameters. |
Implements Rx::FileIO::IParameterVideoEncode.
void Rx::FileIO::CFFmpegEnc_Impl::InitFilters |
( |
const Rx::CRxString & |
sxFilterDescription | ) |
|
|
protected |
Opens the video file at the specified path and sets last option based on the provided image format.
- Parameters
-
sxOutputVideopath | [in] The path for the output video file. |
xFormat | [in] Describes the format of the input images. |
Implements Rx::FileIO::IVideoEncode.
void Rx::FileIO::CFFmpegEnc_Impl::RxPixelFormatToAVPixelFormat |
( |
AVPixelFormat & |
avFormat, |
|
|
const Rx::CRxImageFormat & |
rxFormat |
|
) |
| |
|
protected |
Converts Raytrix pixel format to Libav pixel format. This function is called by Open().
- Parameters
-
avFormat | [out] The av format. |
rxFormat | [in] The raytrix format. |
virtual void Rx::FileIO::CFFmpegEnc_Impl::SetParameters |
( |
const H264 & |
xParameters | ) |
|
|
virtual |
Sets the new parameters for the video encoder from the H264 struct. This function must not be called after the first image was added, but it is not necessary to call GetParameters() before this function.
- Parameters
-
xParameters | [in] The H264 struct containing the new parameters. |
Implements Rx::FileIO::IParameterVideoEncode.
void Rx::FileIO::CFFmpegEnc_Impl::SetupAndOpenEncoder |
( |
AVFormatContext * |
pxAVFormatContext, |
|
|
AVCodec * |
pxAVCodec, |
|
|
AVStream * |
pxAVStream |
|
) |
| |
|
protected |
Opens the video encoder, setups the filter chain and allocates the image buffer inside the frames. This function is called once when the first image is added via AddImage().
- Parameters
-
pxAVFormatContext | [in] The AV format context. |
pxAVCodec | [in] The AV codec. |
pxAVStream | [in] The AV stream. |