#include <icy/av/videocontext.h>Subclassed by:
VideoDecoder,VideoEncoder
Base video context from which all video encoders and decoders derive.
| Return | Name | Description |
|---|---|---|
PacketSignal | emitter | |
VideoCodec | iparams | input parameters |
VideoCodec | oparams | output parameters |
AVStream * | stream | encoder or decoder stream |
AVCodecContext * | ctx | encoder or decoder context |
const AVCodec * | codec | encoder or decoder codec |
AVFrame * | frame | encoder or decoder frame |
std::unique_ptr< VideoConverter > | conv | video conversion context |
int64_t | time | stream time in codec time base |
int64_t | pts | last packet pts value |
double | seconds | video time in seconds |
std::string | error | error message |
PacketSignal emitterVideoCodec iparamsinput parameters
VideoCodec oparamsoutput parameters
AVStream * streamencoder or decoder stream
AVCodecContext * ctxencoder or decoder context
const AVCodec * codecencoder or decoder codec
AVFrame * frameencoder or decoder frame
std::unique_ptr< VideoConverter > convvideo conversion context
int64_t timestream time in codec time base
int64_t ptslast packet pts value
double secondsvideo time in seconds
std::string errorerror message
| Return | Name | Description |
|---|---|---|
VideoContext | ||
VideoContext | Deleted constructor. | |
VideoContext | Deleted constructor. | |
void | create virtual | Initialise the AVCodecContext with codec-specific defaults. Overridden by VideoEncoder and VideoDecoder. |
void | open virtual | Open the codec and create the pixel format conversion context if required. Throws std::runtime_error if the codec context has not been created. |
void | close virtual | Close the codec context, free the frame, and reset timestamps. |
bool | decode virtual | Decode a compressed video packet and emit the resulting frame. |
bool | encode virtual | Encode a buffer of interleaved video data. |
bool | encode virtual | Encode a planar video frame. |
bool | encode virtual | Encode a single AVFrame. |
void | flush virtual | Flush any frames buffered inside the codec and emit remaining output. |
AVFrame * | convert virtual | Convert the video frame and return the result. |
bool | recreateConverter virtual | Recreate the VideoConverter if the input or output parameters have changed. Called automatically by open() and convert(). |
VideoContext()VideoContext(const VideoContext &) = deleteDeleted constructor.
VideoContext(VideoContext &&) = deleteDeleted constructor.
virtual
virtual void create()Initialise the AVCodecContext with codec-specific defaults. Overridden by VideoEncoder and VideoDecoder.
virtual
virtual void open()Open the codec and create the pixel format conversion context if required. Throws std::runtime_error if the codec context has not been created.
virtual
virtual void close()Close the codec context, free the frame, and reset timestamps.
virtual
virtual bool decode(AVPacket & ipacket)Decode a compressed video packet and emit the resulting frame.
ipacket The compressed video packet to decode.True if an output frame was decoded and emitted, false otherwise.
virtual
virtual bool encode(uint8_t * data, int size, int64_t pts)Encode a buffer of interleaved video data.
data Pointer to the interleaved frame buffer.
size Size of the buffer in bytes.
pts Presentation timestamp in stream time base units.
True if an encoded packet was produced and emitted.
virtual
virtual bool encode(uint8_t * data, int linesize, int64_t pts)Encode a planar video frame.
data Array of per-plane data pointers (up to 4 planes).
linesize Array of per-plane byte strides.
pts Presentation timestamp in stream time base units.
True if an encoded packet was produced and emitted.
virtual
virtual bool encode(AVFrame * iframe)Encode a single AVFrame.
iframe The source video frame; must have all fields set correctly.True if an encoded packet was produced and emitted.
virtual
virtual void flush()Flush any frames buffered inside the codec and emit remaining output.
virtual
virtual AVFrame * convert(AVFrame * iframe)Convert the video frame and return the result.
The input frame will only be converted if it doesn't match the output format. If the frame is not converted the input frame will be returned. If the input frame format does not match the [VideoConverter](icy-av-VideoConverter.html#videoconverter) context then the [VideoConverter](icy-av-VideoConverter.html#videoconverter) will be recreated with the input frame params.
virtual
virtual bool recreateConverter()Recreate the VideoConverter if the input or output parameters have changed. Called automatically by open() and convert().
True if the converter was (re)created, false if it is already up to date.