xine-lib 1.2.13-20230125hg15249
Data Structures | Macros | Functions
alterh264_decode.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <xine/xine_internal.h>
#include <xine/video_out.h>
#include <xine/buffer.h>
#include <xine/xineutils.h>
#include "accel_vdpau.h"
#include <vdpau/vdpau.h>
#include "group_vdpau.h"
#include "vdec_hw_h264.h"

Data Structures

struct  vdpau_h264_alter_decoder_t
 

Macros

#define LOG_MODULE   "vdpau_h264"
 

Functions

static VdpDecoderProfile vdpau_h264_map_profile (int profile_idc)
 
static __attribute__ ((format(printf, 3, 4)))
 
static int vdpau_h264_alter_frame_new (void *user_data, vdec_hw_h264_frame_t *frame)
 
static int vdpau_h264_alter_int_reset (vdpau_h264_alter_decoder_t *this)
 
static int vdpau_h264_alter_frame_render (void *user_data, vdec_hw_h264_frame_t *frame)
 
static int vdpau_h264_alter_frame_ready (void *user_data, vdec_hw_h264_frame_t *frame)
 
static void vdpau_h264_alter_frame_delete (void *user_data, vdec_hw_h264_frame_t *frame)
 
static void vdpau_h264_alter_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
 
static void vdpau_h264_alter_flush (video_decoder_t *this_gen)
 
static void vdpau_h264_alter_reset (video_decoder_t *this_gen)
 
static void vdpau_h264_alter_discontinuity (video_decoder_t *this_gen)
 
static void vdpau_h264_alter_dispose (video_decoder_t *this_gen)
 
static void vdpau_h264_alter_safe_seek (void *this_gen, xine_cfg_entry_t *entry)
 
static video_decoder_topen_plugin (video_decoder_class_t *class_gen, xine_stream_t *stream)
 
void * h264_alter_init_plugin (xine_t *xine, const void *data)
 

Macro Definition Documentation

◆ LOG_MODULE

#define LOG_MODULE   "vdpau_h264"

Function Documentation

◆ __attribute__()

static __attribute__ ( (format(printf, 3, 4)) )
static

◆ h264_alter_init_plugin()

void * h264_alter_init_plugin ( xine_t * xine,
const void * data )

◆ open_plugin()

static video_decoder_t * open_plugin ( video_decoder_class_t * class_gen,
xine_stream_t * stream )
static

◆ vdpau_h264_alter_decode_data()

static void vdpau_h264_alter_decode_data ( video_decoder_t * this_gen,
buf_element_t * buf )
static

◆ vdpau_h264_alter_discontinuity()

static void vdpau_h264_alter_discontinuity ( video_decoder_t * this_gen)
static

References lprintf, and vdec_hw_h264_zero_pts().

Referenced by open_plugin().

◆ vdpau_h264_alter_dispose()

static void vdpau_h264_alter_dispose ( video_decoder_t * this_gen)
static

◆ vdpau_h264_alter_flush()

static void vdpau_h264_alter_flush ( video_decoder_t * this_gen)
static

References lprintf, and vdec_hw_h264_flush().

Referenced by open_plugin().

◆ vdpau_h264_alter_frame_delete()

static void vdpau_h264_alter_frame_delete ( void * user_data,
vdec_hw_h264_frame_t * frame )
static

◆ vdpau_h264_alter_frame_new()

static int vdpau_h264_alter_frame_new ( void * user_data,
vdec_hw_h264_frame_t * frame )
static

◆ vdpau_h264_alter_frame_ready()

static int vdpau_h264_alter_frame_ready ( void * user_data,
vdec_hw_h264_frame_t * frame )
static

◆ vdpau_h264_alter_frame_render()

static int vdpau_h264_alter_frame_render ( void * user_data,
vdec_hw_h264_frame_t * frame )
static

References _x_meta_info_set_utf8(), _x_stream_info_set(), vo_frame_s::accel_data, xine_format_change_data_t::aspect, vdec_hw_h264_frame_info_s::bottom_field_flag, vdec_hw_h264_info_ref_frame_t::bottom_is_reference, CAST_VdpPictureInfo_PTR, vdec_hw_h264_frame_info_s::chroma_qp_index_offset, vdec_hw_h264_frame_info_s::constrained_intra_pred_flag, vdec_hw_h264_frame_info_s::deblocking_filter_control_present_flag, vdec_hw_h264_frame_info_s::delta_pic_order_always_zero_flag, vdec_hw_h264_frame_info_s::direct_8x8_inference_flag, vdec_hw_h264_frame_t::duration, vdec_hw_h264_frame_info_s::entropy_coding_mode_flag, vdec_hw_h264_info_ref_frame_t::field_order_cnt, vdec_hw_h264_frame_info_s::field_order_cnt, vdec_hw_h264_frame_info_s::field_pic_flag, vdec_hw_h264_info_ref_frame_t::frame, vdec_hw_h264_info_ref_frame_t::frame_idx, vdec_hw_h264_frame_info_s::frame_mbs_only_flag, vdec_hw_h264_frame_info_s::frame_num, xine_format_change_data_t::height, vdec_hw_h264_frame_t::height, vdec_hw_h264_frame_t::info, vdec_hw_h264_frame_info_s::is_reference, vdpau_accel_t::lock, vdec_hw_h264_frame_info_s::log2_max_frame_num_minus4, vdec_hw_h264_frame_info_s::log2_max_pic_order_cnt_lsb_minus4, LOG_MODULE, lprintf, vdec_hw_h264_frame_info_s::mb_adaptive_frame_field_flag, vdec_hw_h264_frame_t::num_ref_frames, vdec_hw_h264_frame_info_s::num_ref_frames, vdec_hw_h264_frame_info_s::num_ref_idx_l0_active_minus1, vdec_hw_h264_frame_info_s::num_ref_idx_l1_active_minus1, vdec_hw_h264_frame_info_s::pic_init_qp_minus26, vdec_hw_h264_frame_info_s::pic_order_cnt_type, vdec_hw_h264_frame_info_s::pic_order_present_flag, vdec_hw_h264_frame_t::profile, vdec_hw_h264_frame_t::ratio, vdec_hw_h264_frame_info_s::redundant_pic_cnt_present_flag, vdec_hw_h264_frame_info_s::referenceFrames, vdec_hw_h264_frame_info_s::scaling_lists_4x4, vdec_hw_h264_frame_info_s::scaling_lists_8x8, vdec_hw_h264_frame_info_s::second_chroma_qp_index_offset, vdec_hw_h264_frame_info_s::slice_count, vdec_hw_h264_frame_info_s::slices_bitstream, vdec_hw_h264_frame_info_s::slices_bytes, vdpau_accel_t::surface, vdec_hw_h264_info_ref_frame_t::top_is_reference, vdec_hw_h264_frame_info_s::transform_8x8_mode_flag, vdpau_accel_t::unlock, vdec_hw_h264_frame_t::user_data, user_data(), vdpau_accel_t::vdp_decoder_create, vdpau_accel_t::vdp_decoder_destroy, vdpau_accel_t::vdp_decoder_render, vdpau_accel_t::vdp_device, vdpau_accel_t::vdp_get_error_string, vdpau_accel_t::vdp_runtime_nr, vdpau_h264_map_profile(), vdpau_accel_t::vo_frame, vdec_hw_h264_frame_info_s::weighted_bipred_idc, vdec_hw_h264_frame_info_s::weighted_pred_flag, xine_format_change_data_t::width, vdec_hw_h264_frame_t::width, XINE_EVENT_FRAME_FORMAT_CHANGE, xine_event_send(), xine_fast_memcpy, XINE_META_INFO_VIDEOCODEC, XINE_STREAM_INFO_FRAME_DURATION, XINE_STREAM_INFO_VIDEO_HEIGHT, XINE_STREAM_INFO_VIDEO_RATIO, XINE_STREAM_INFO_VIDEO_WIDTH, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, and xprintf.

Referenced by open_plugin().

◆ vdpau_h264_alter_int_reset()

static int vdpau_h264_alter_int_reset ( vdpau_h264_alter_decoder_t * this)
static

vdpau.h says that a ref frame

  • starts being usable when it is decoded, and
  • stops when it is no longer mentioned in a decode call. lets try to misuse that for a internal reset here ;-)

References CAST_VdpPictureInfo_PTR, and NULL.

Referenced by vdpau_h264_alter_reset().

◆ vdpau_h264_alter_reset()

static void vdpau_h264_alter_reset ( video_decoder_t * this_gen)
static

◆ vdpau_h264_alter_safe_seek()

static void vdpau_h264_alter_safe_seek ( void * this_gen,
xine_cfg_entry_t * entry )
static

References xine_cfg_entry_s::num_value.

Referenced by open_plugin().

◆ vdpau_h264_map_profile()

static VdpDecoderProfile vdpau_h264_map_profile ( int profile_idc)
static