FFmpeg
4.0
|
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. More... | |
static void | fill_vaapi_pic (VAPictureH264 *va_pic, const H264Picture *pic, int pic_structure) |
Translate an FFmpeg Picture into its VA API form. More... | |
static int | dpb_add (DPB *dpb, const H264Picture *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. More... | |
static int | fill_vaapi_ReferenceFrames (VAPictureParameterBufferH264 *pic_param, const H264Context *h) |
Fill in VA API reference frames array. More... | |
static void | fill_vaapi_RefPicList (VAPictureH264 RefPicList[32], const H264Ref *ref_list, unsigned int ref_count) |
Fill in VA API reference picture lists from the FFmpeg reference picture list. More... | |
static void | fill_vaapi_plain_pred_weight_table (const 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. More... | |
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. More... | |
static int | vaapi_h264_end_frame (AVCodecContext *avctx) |
End a hardware decoding based frame. More... | |
static int | vaapi_h264_decode_slice (AVCodecContext *avctx, const uint8_t *buffer, uint32_t size) |
Decode the given H.264 slice with VA API. More... | |
Variables | |
const 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 39 of file vaapi_h264.c.
Referenced by fill_vaapi_ReferenceFrames(), and fill_vaapi_RefPicList().
|
static |
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 55 of file vaapi_h264.c.
Referenced by dpb_add(), fill_vaapi_RefPicList(), and vaapi_h264_start_frame().
|
static |
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 94 of file vaapi_h264.c.
Referenced by fill_vaapi_ReferenceFrames().
|
static |
Fill in VA API reference frames array.
Definition at line 125 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 159 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 188 of file vaapi_h264.c.
Referenced by vaapi_h264_decode_slice().
|
static |
Initialize and start decoding a frame with VA API.
Definition at line 226 of file vaapi_h264.c.
|
static |
End a hardware decoding based frame.
Definition at line 313 of file vaapi_h264.c.
|
static |
Decode the given H.264 slice with VA API.
Definition at line 331 of file vaapi_h264.c.
const AVHWAccel ff_h264_vaapi_hwaccel |
Definition at line 391 of file vaapi_h264.c.