xine-lib 1.2.13-20230125hg15249
Data Structures | Macros | Typedefs | Enumerations | Functions
vdec_hw_h264.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
#include <sys/types.h>

Go to the source code of this file.

Data Structures

struct  vdec_hw_h264_frame_t
 
struct  vdec_hw_h264_info_ref_frame_t
 
struct  vdec_hw_h264_frame_info_s
 

Macros

#define VDEC_HW_H264_FRAME_TOP_FIELD   1
 
#define VDEC_HW_H264_FRAME_BOTTOM_FIELD   2
 
#define VDEC_HW_H264_FRAME_NEW_SEQ   4
 

Typedefs

typedef struct vdec_hw_h264_s vdec_hw_h264_t
 
typedef struct vdec_hw_h264_frame_info_s vdec_hw_h264_frame_info_t
 

Enumerations

enum  vdec_hw_h264_logg_t { VDEC_HW_H264_LOGG_ERR = 0 , VDEC_HW_H264_LOGG_INFO , VDEC_HW_H264_LOGG_DEBUG }
 

Functions

vdec_hw_h264_tvdec_hw_h264_new (int __attribute__((format(printf, 3, 4)))(*logg)(void *user_data, vdec_hw_h264_logg_t level, const char *fmt,...), void *user_data, int(*frame_new)(void *user_data, vdec_hw_h264_frame_t *frame), int(*frame_render)(void *user_data, vdec_hw_h264_frame_t *frame), int(*frame_ready)(void *user_data, vdec_hw_h264_frame_t *frame), void(*frame_delete)(void *user_data, vdec_hw_h264_frame_t *frame), int num_frames)
 
int vdec_hw_h264_reset (vdec_hw_h264_t *dec)
 
int vdec_hw_h264_zero_pts (vdec_hw_h264_t *dec)
 
int vdec_hw_h264_flush (vdec_hw_h264_t *dec)
 
int vdec_hw_h264_put_container_info (vdec_hw_h264_t *dec, int width, int height, int duration, double ratio)
 
int vdec_hw_h264_put_config (vdec_hw_h264_t *dec, const uint8_t *bitstream, uint32_t num_bytes)
 
int vdec_hw_h264_put_frame (vdec_hw_h264_t *dec, int64_t pts, const uint8_t *bitstream, uint32_t num_bytes, int frame_end)
 
void vdec_hw_h264_delete (vdec_hw_h264_t **dec)
 

Macro Definition Documentation

◆ VDEC_HW_H264_FRAME_BOTTOM_FIELD

#define VDEC_HW_H264_FRAME_BOTTOM_FIELD   2

◆ VDEC_HW_H264_FRAME_NEW_SEQ

#define VDEC_HW_H264_FRAME_NEW_SEQ   4

◆ VDEC_HW_H264_FRAME_TOP_FIELD

#define VDEC_HW_H264_FRAME_TOP_FIELD   1

Typedef Documentation

◆ vdec_hw_h264_frame_info_t

◆ vdec_hw_h264_t

Enumeration Type Documentation

◆ vdec_hw_h264_logg_t

Enumerator
VDEC_HW_H264_LOGG_ERR 
VDEC_HW_H264_LOGG_INFO 
VDEC_HW_H264_LOGG_DEBUG 

Function Documentation

◆ vdec_hw_h264_delete()

void vdec_hw_h264_delete ( vdec_hw_h264_t ** dec)

◆ vdec_hw_h264_flush()

int vdec_hw_h264_flush ( vdec_hw_h264_t * dec)

◆ vdec_hw_h264_new()

vdec_hw_h264_t * vdec_hw_h264_new ( int __attribute__((format(printf, 3, 4)))(*)(void *user_data, vdec_hw_h264_logg_t level, const char *fmt,...) logg,
void * user_data,
int(*)(void *user_data, vdec_hw_h264_frame_t *frame) frame_new,
int(*)(void *user_data, vdec_hw_h264_frame_t *frame) frame_render,
int(*)(void *user_data, vdec_hw_h264_frame_t *frame) frame_ready,
void(*)(void *user_data, vdec_hw_h264_frame_t *frame) frame_delete,
int num_frames )
Parameters
user_data<< can be NULL
frame_new<< passed to logg () and frame_* () verbatim
frame_render<< get user part of this frame
frame_ready<< perform hw decoding based on info
frame_delete<< put this frame to output queue
num_frames<< unref/free user part << max frames to use

◆ vdec_hw_h264_put_config()

int vdec_hw_h264_put_config ( vdec_hw_h264_t * dec,
const uint8_t * bitstream,
uint32_t num_bytes )

◆ vdec_hw_h264_put_container_info()

int vdec_hw_h264_put_container_info ( vdec_hw_h264_t * dec,
int width,
int height,
int duration,
double ratio )

optional, 0 means "no change".

References height, and width.

Referenced by vdpau_h264_alter_decode_data().

◆ vdec_hw_h264_put_frame()

int vdec_hw_h264_put_frame ( vdec_hw_h264_t * dec,
int64_t pts,
const uint8_t * bitstream,
uint32_t num_bytes,
int frame_end )

◆ vdec_hw_h264_reset()

int vdec_hw_h264_reset ( vdec_hw_h264_t * dec)

frame_delete () any held frames, set defaults

References _vdec_hw_h264_reset_sequence(), and vdec_hw_h264_s::ref_frames_used.

Referenced by vdec_hw_h264_delete(), and vdpau_h264_alter_reset().

◆ vdec_hw_h264_zero_pts()

int vdec_hw_h264_zero_pts ( vdec_hw_h264_t * dec)