FFmpeg
|
This file implements the glue code between FFmpeg's and VA API's structures for H.264 decoding. More...
Go to the source code of this file.
Data Structures | |
struct | DPB |
Decoded Picture Buffer (DPB). More... | |
Functions | |
static void | init_vaapi_pic (VAPictureH264 *va_pic) |
Initialize an empty VA API picture. | |
static void | fill_vaapi_pic (VAPictureH264 *va_pic, Picture *pic, int pic_structure) |
Translate an FFmpeg Picture into its VA API form. | |
static int | dpb_add (DPB *dpb, Picture *pic) |
Append picture to the decoded picture buffer, in a VA API form that merges the second field picture attributes with the first, if available. | |
static int | fill_vaapi_ReferenceFrames (VAPictureParameterBufferH264 *pic_param, H264Context *h) |
Fill in VA API reference frames array. | |
static void | fill_vaapi_RefPicList (VAPictureH264 RefPicList[32], Picture *ref_list, unsigned int ref_count) |
Fill in VA API reference picture lists from the FFmpeg reference picture list. | |
static void | fill_vaapi_plain_pred_weight_table (H264Context *h, int list, unsigned char *luma_weight_flag, short luma_weight[32], short luma_offset[32], unsigned char *chroma_weight_flag, short chroma_weight[32][2], short chroma_offset[32][2]) |
Fill in prediction weight table. | |
static int | vaapi_h264_start_frame (AVCodecContext *avctx, av_unused const uint8_t *buffer, av_unused uint32_t size) |
Initialize and start decoding a frame with VA API. | |
static int | vaapi_h264_end_frame (AVCodecContext *avctx) |
End a hardware decoding based frame. | |
static int | vaapi_h264_decode_slice (AVCodecContext *avctx, const uint8_t *buffer, uint32_t size) |
Decode the given H.264 slice with VA API. | |
Variables | |
AVHWAccel | ff_h264_vaapi_hwaccel |
This file implements the glue code between FFmpeg's and VA API's structures for H.264 decoding.
Definition in file vaapi_h264.c.
|
static |
Initialize an empty VA API picture.
VA API requires a fixed-size reference picture array.
Definition at line 37 of file vaapi_h264.c.
Referenced by fill_vaapi_ReferenceFrames(), and fill_vaapi_RefPicList().
Translate an FFmpeg Picture into its VA API form.
[out] | va_pic | A pointer to VA API's own picture struct |
[in] | pic | A pointer to the FFmpeg picture struct to convert |
[in] | pic_structure | The picture field type (as defined in mpegvideo.h), supersedes pic's field type if nonzero. |
Definition at line 53 of file vaapi_h264.c.
Referenced by dpb_add(), fill_vaapi_RefPicList(), and vaapi_h264_start_frame().
Append picture to the decoded picture buffer, in a VA API form that merges the second field picture attributes with the first, if available.
The decoded picture buffer's size must be large enough to receive the new VA API picture object.
Definition at line 92 of file vaapi_h264.c.
Referenced by fill_vaapi_ReferenceFrames().
|
static |
Fill in VA API reference frames array.
Definition at line 123 of file vaapi_h264.c.
Referenced by vaapi_h264_start_frame().
|
static |
Fill in VA API reference picture lists from the FFmpeg reference picture list.
[out] | RefPicList | VA API internal reference picture list |
[in] | ref_list | A pointer to the FFmpeg reference list |
[in] | ref_count | The number of reference pictures in ref_list |
Definition at line 157 of file vaapi_h264.c.
Referenced by vaapi_h264_decode_slice().
|
static |
Fill in prediction weight table.
VA API requires a plain prediction weight table as it does not infer any value.
[in] | h | A pointer to the current H.264 context |
[in] | list | The reference frame list index to use |
[out] | luma_weight_flag | VA API plain luma weight flag |
[out] | luma_weight | VA API plain luma weight table |
[out] | luma_offset | VA API plain luma offset table |
[out] | chroma_weight_flag | VA API plain chroma weight flag |
[out] | chroma_weight | VA API plain chroma weight table |
[out] | chroma_offset | VA API plain chroma offset table |
Definition at line 185 of file vaapi_h264.c.
Referenced by vaapi_h264_decode_slice().
|
static |
Initialize and start decoding a frame with VA API.
Definition at line 222 of file vaapi_h264.c.
|
static |
End a hardware decoding based frame.
Definition at line 290 of file vaapi_h264.c.
|
static |
Decode the given H.264 slice with VA API.
Definition at line 313 of file vaapi_h264.c.
AVHWAccel ff_h264_vaapi_hwaccel |
Definition at line 353 of file vaapi_h264.c.