mirror of
https://github.com/nyanmisaka/ffmpeg-rockchip.git
synced 2025-10-14 21:06:58 +08:00
lavc: Add device context field to AVCodecContext
For use by codec implementations which can allocate frames internally.
This commit is contained in:
@@ -3093,7 +3093,8 @@ typedef struct AVCodecContext {
|
||||
/**
|
||||
* A reference to the AVHWFramesContext describing the input (for encoding)
|
||||
* or output (decoding) frames. The reference is set by the caller and
|
||||
* afterwards owned (and freed) by libavcodec.
|
||||
* afterwards owned (and freed) by libavcodec - it should never be read by
|
||||
* the caller after being set.
|
||||
*
|
||||
* - decoding: This field should be set by the caller from the get_format()
|
||||
* callback. The previous reference (if any) will always be
|
||||
@@ -3139,6 +3140,28 @@ typedef struct AVCodecContext {
|
||||
* (with the display dimensions being determined by the crop_* fields).
|
||||
*/
|
||||
int apply_cropping;
|
||||
|
||||
/**
|
||||
* A reference to the AVHWDeviceContext describing the device which will
|
||||
* be used by a hardware encoder/decoder. The reference is set by the
|
||||
* caller and afterwards owned (and freed) by libavcodec.
|
||||
*
|
||||
* This should be used if either the codec device does not require
|
||||
* hardware frames or any that are used are to be allocated internally by
|
||||
* libavcodec. If the user wishes to supply any of the frames used as
|
||||
* encoder input or decoder output then hw_frames_ctx should be used
|
||||
* instead. When hw_frames_ctx is set in get_format() for a decoder, this
|
||||
* field will be ignored while decoding the associated stream segment, but
|
||||
* may again be used on a following one after another get_format() call.
|
||||
*
|
||||
* For both encoders and decoders this field should be set before
|
||||
* avcodec_open2() is called and must not be written to thereafter.
|
||||
*
|
||||
* Note that some decoders may require this field to be set initially in
|
||||
* order to support hw_frames_ctx at all - in that case, all frames
|
||||
* contexts used must be created on the same device.
|
||||
*/
|
||||
AVBufferRef *hw_device_ctx;
|
||||
} AVCodecContext;
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user