FFmpeg
Loading...
Searching...
No Matches
vdpau_hevc.c File Reference
#include <vdpau/vdpau.h>
#include "avcodec.h"
#include "hevc/data.h"
#include "hevc/hevcdec.h"
#include "hwaccel_internal.h"
#include "vdpau.h"
#include "vdpau_internal.h"
#include "h265_profile_level.h"

Go to the source code of this file.

Macros

#define copy_field(name)
 

Functions

static int vdpau_hevc_start_frame (AVCodecContext *avctx, const AVBufferRef *buffer_ref, const uint8_t *buffer, uint32_t size)
 
static int vdpau_hevc_decode_slice (AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
 
static int vdpau_hevc_end_frame (AVCodecContext *avctx)
 
static int ptl_convert (const PTLCommon *general_ptl, H265RawProfileTierLevel *h265_raw_ptl)
 
static int vdpau_hevc_parse_rext_profile (AVCodecContext *avctx, VdpDecoderProfile *vdp_profile)
 
static av_cold int vdpau_hevc_init (AVCodecContext *avctx)
 

Variables

static const uint8_t start_code_prefix [3] = { 0x00, 0x00, 0x01 }
 
const FFHWAccel ff_hevc_vdpau_hwaccel
 

Macro Definition Documentation

◆ copy_field

#define copy_field ( name)
Value:
h265_raw_ptl->general_ ## name = general_ptl->name
const char * name
Definition qsvenc.c:142

Referenced by ptl_convert().

Function Documentation

◆ vdpau_hevc_start_frame()

static int vdpau_hevc_start_frame ( AVCodecContext * avctx,
const AVBufferRef * buffer_ref,
const uint8_t * buffer,
uint32_t size )
static

Definition at line 34 of file vdpau_hevc.c.

◆ vdpau_hevc_decode_slice()

static int vdpau_hevc_decode_slice ( AVCodecContext * avctx,
const uint8_t * buffer,
uint32_t size )
static

Definition at line 404 of file vdpau_hevc.c.

◆ vdpau_hevc_end_frame()

static int vdpau_hevc_end_frame ( AVCodecContext * avctx)
static

Definition at line 422 of file vdpau_hevc.c.

◆ ptl_convert()

static int ptl_convert ( const PTLCommon * general_ptl,
H265RawProfileTierLevel * h265_raw_ptl )
static

Definition at line 437 of file vdpau_hevc.c.

Referenced by vdpau_hevc_parse_rext_profile().

◆ vdpau_hevc_parse_rext_profile()

static int vdpau_hevc_parse_rext_profile ( AVCodecContext * avctx,
VdpDecoderProfile * vdp_profile )
static

Definition at line 471 of file vdpau_hevc.c.

Referenced by vdpau_hevc_init().

◆ vdpau_hevc_init()

static av_cold int vdpau_hevc_init ( AVCodecContext * avctx)
static

Definition at line 517 of file vdpau_hevc.c.

Variable Documentation

◆ start_code_prefix

const uint8_t start_code_prefix[3] = { 0x00, 0x00, 0x01 }
static

Definition at line 402 of file vdpau_hevc.c.

◆ ff_hevc_vdpau_hwaccel

const FFHWAccel ff_hevc_vdpau_hwaccel
Initial value:
= {
.p.name = "hevc_vdpau",
.p.type = AVMEDIA_TYPE_VIDEO,
.p.pix_fmt = AV_PIX_FMT_VDPAU,
.start_frame = vdpau_hevc_start_frame,
.end_frame = vdpau_hevc_end_frame,
.decode_slice = vdpau_hevc_decode_slice,
.frame_priv_data_size = sizeof(struct vdpau_picture_context),
.priv_data_size = sizeof(VDPAUContext),
.caps_internal = HWACCEL_CAP_ASYNC_SAFE,
}
int(* init)(AVBSFContext *ctx)
Definition dts2pts.c:608
av_cold int ff_vdpau_common_uninit(AVCodecContext *avctx)
Definition vdpau.c:278
int ff_vdpau_common_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx)
Definition vdpau.c:108
@ AV_CODEC_ID_HEVC
Definition codec_id.h:223
@ AVMEDIA_TYPE_VIDEO
Definition avutil.h:200
#define HWACCEL_CAP_ASYNC_SAFE
Header providing the internals of AVHWAccel.
@ AV_PIX_FMT_VDPAU
HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface.
Definition pixfmt.h:194
static int vdpau_hevc_start_frame(AVCodecContext *avctx, const AVBufferRef *buffer_ref, const uint8_t *buffer, uint32_t size)
Definition vdpau_hevc.c:34
static int vdpau_hevc_end_frame(AVCodecContext *avctx)
Definition vdpau_hevc.c:422
static int vdpau_hevc_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
Definition vdpau_hevc.c:404
static av_cold int vdpau_hevc_init(AVCodecContext *avctx)
Definition vdpau_hevc.c:517

Definition at line 545 of file vdpau_hevc.c.