xine-lib 1.2.13-20230125hg15249
Data Structures | Macros | Typedefs | Functions | Variables
vdec_hw_h264.c File Reference
#include <stdio.h>
#include <stdarg.h>
#include "vdec_hw_h264.h"
#include "vdec_hw_bits_reader.h"

Data Structures

struct  vdec_hw_h264_vui_t
 
struct  vdec_hw_h264_sps_t
 
struct  vdec_hw_h264_pps_t
 
struct  vdec_hw_h264_lps_t
 
struct  vdec_hw_h264_frame_int_s
 
struct  vdec_hw_h264_sequence_t
 
struct  vdec_hw_h264_s
 

Macros

#define LOG_MODULE   "vdec_hw_h264"
 
#define lprintf(_fmt, ...)   /* nothing */
 
#define PICTURE_TOP_DONE   1
 
#define PICTURE_BOTTOM_DONE   2
 
#define PICTURE_DONE   3
 
#define SHORT_TERM_REF   1
 
#define LONG_TERM_REF   2
 
#define MAX_SPS   32
 
#define MAX_PPS   256
 
#define MAX_SLICES   80 /* 68? */
 
#define MAX_REF_FRAMES   16
 
#define MIN_BUFFER_SIZE   10000
 
#define MAX_BUFFER_SIZE   3145728
 
#define BUF_PAD   8
 
#define NAL_UNSPECIFIED   0
 
#define NAL_SLICE_NO_IDR   1
 
#define NAL_SLICE_IDR   5
 
#define NAL_SEI   6
 
#define NAL_SEQUENCE   7
 
#define NAL_PICTURE   8
 
#define NAL_SEEK_POINT   9
 
#define NAL_END_SEQUENCE   10
 
#define NAL_END_STREAM   11
 
#define NAL_FILLER   12
 
#define NAL_SEQUENCE_EXT   13
 
#define SLICE_TYPE_P   0
 
#define SLICE_TYPE_B   1
 
#define SLICE_TYPE_I   2
 
#define SLICE_TYPE_SP   3
 
#define SLICE_TYPE_SI   4
 
#define START_IDR_FLAG   1000
 
#define MAX_POC   2147483647
 
#define DPB_DRAW_CLEAR   1
 
#define DPB_DRAW_REFS   2
 
#define DPB_DRAW_CURRENT   3
 
#define VDEC_HW_H264_MAX_SLICE_GROUPS   80
 

Typedefs

typedef struct vdec_hw_h264_frame_int_s vdec_hw_h264_frame_int_t
 

Functions

static __attribute__ ((format(printf, 3, 4)))
 
static uint32_t _vdec_hw_h264_unescape (uint8_t *b, uint32_t len)
 
static void _vdec_hw_h264_frame_free (vdec_hw_h264_t *vdec, vdec_hw_h264_frame_int_t *frame, int zero)
 
static void _vdec_hw_h264_frame_new (vdec_hw_h264_t *vdec, vdec_hw_h264_frame_int_t *frame)
 
static void _vdec_hw_h264_frame_link (vdec_hw_h264_t *vdec, vdec_hw_h264_frame_int_t *frame, vdec_hw_h264_frame_int_t *to)
 
static void _vdec_hw_h264_frame_draw (vdec_hw_h264_t *vdec, vdec_hw_h264_frame_int_t *frame)
 
int vdec_hw_h264_zero_pts (vdec_hw_h264_t *vdec)
 
static void _vdec_hw_h264_dpb_reset (vdec_hw_h264_t *vdec)
 
static void _vdec_hw_h264_dpb_remove (vdec_hw_h264_t *vdec, uint32_t index)
 
static vdec_hw_h264_frame_int_t_vdec_hw_h264_dpb_get_prev_ref (vdec_hw_h264_t *vdec)
 
static void _vdec_hw_h264_dpb_draw_frames (vdec_hw_h264_t *vdec, int32_t curpoc, int draw_mode)
 
static vdec_hw_h264_frame_int_t_vdec_hw_h264_dpb_get_PicNum (vdec_hw_h264_t *vdec, int32_t pic_num, int *index)
 
static void _vdec_hw_h264_dpb_mmc1 (vdec_hw_h264_t *vdec, int32_t picnum)
 
static vdec_hw_h264_sps_t_vdec_hw_h264_get_sps (vdec_hw_h264_t *vdec)
 
static void _vdec_hw_h264_dbp_append (vdec_hw_h264_t *vdec, int second_field)
 
static void _vdec_hw_h264_reset_slices (vdec_hw_h264_t *vdec)
 
static void _vdec_hw_h264_reset_sequence (vdec_hw_h264_t *vdec)
 
static void _vdec_hw_h264_set_ratio (vdec_hw_h264_t *vdec, vdec_hw_h264_sps_t *sps)
 
static void parse_scaling_list (bits_reader_t *br, uint8_t *scaling_list, int len, int index)
 
static void _vdec_hw_h264_scaling_list_fallback_A (uint8_t *scaling_lists_4x4, uint8_t *scaling_lists_8x8, int i)
 
static void _vdec_hw_h264_scaling_list_fallback_B (vdec_hw_h264_sps_t *sps, vdec_hw_h264_pps_t *pps, int i)
 
static void _vdec_hw_h264_read_vui (vdec_hw_h264_t *vdec, vdec_hw_h264_vui_t *vui)
 
static vdec_hw_h264_sps_t_vdec_hw_h264_read_sps (vdec_hw_h264_t *vdec)
 
static vdec_hw_h264_pps_t_vdec_hw_h264_read_pps (vdec_hw_h264_t *vdec)
 
static void _vdec_hw_h264_pred_weight_table (vdec_hw_h264_t *vdec, uint32_t slice_type, uint32_t ChromaArrayType, uint32_t l0, uint32_t l1)
 
static void _vdec_hw_h264_ref_pic_list_reordering (vdec_hw_h264_t *vdec)
 
static void _vdec_hw_h264_dec_ref_pic_marking (vdec_hw_h264_t *vdec, uint8_t idr)
 
static void _vdec_hw_h264_slice_header (vdec_hw_h264_t *vdec, uint8_t nal_ref_idc, uint8_t nal_unit_type)
 
static void _vdec_hw_h264_slice_header_post (vdec_hw_h264_t *vdec)
 
static void _vdec_hw_h264_decode_poc (vdec_hw_h264_t *vdec)
 
static void _vdec_hw_h264_decode_picnum (vdec_hw_h264_t *vdec)
 
static int _vdec_hw_h264_check_ref_list (vdec_hw_h264_t *vdec)
 
static int _vdec_hw_h264_render (vdec_hw_h264_t *vdec, int bad_frame)
 
static int _vdec_hw_h264_decode_picture (vdec_hw_h264_t *vdec)
 
static int _vdec_hw_h264_flush_slices (vdec_hw_h264_t *vdec, uint32_t new_type)
 
static int _vdec_hw_h264_nal_unit (vdec_hw_h264_t *vdec, uint8_t *buf, uint32_t len)
 
int vdec_hw_h264_put_config (vdec_hw_h264_t *vdec, const uint8_t *bitstream, uint32_t num_bytes)
 
static void _vdec_hw_h264_flush_buffer (vdec_hw_h264_t *vdec)
 
int vdec_hw_h264_put_frame (vdec_hw_h264_t *vdec, int64_t pts, const uint8_t *bitstream, uint32_t num_bytes, int frame_end)
 
int vdec_hw_h264_flush (vdec_hw_h264_t *vdec)
 
vdec_hw_h264_tvdec_hw_h264_new (int(*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 *vdec)
 
int vdec_hw_h264_put_container_info (vdec_hw_h264_t *vdec, int width, int height, int duration, double ratio)
 
void vdec_hw_h264_delete (vdec_hw_h264_t **dec)
 

Variables

static const uint8_t zigzag_4x4 [16]
 
static const uint8_t zigzag_8x8 [64]
 
static const uint8_t default_4x4_intra [16]
 
static const uint8_t default_4x4_inter [16]
 
static const uint8_t default_8x8_intra [64]
 
static const uint8_t default_8x8_inter [64]
 

Macro Definition Documentation

◆ BUF_PAD

#define BUF_PAD   8

◆ DPB_DRAW_CLEAR

#define DPB_DRAW_CLEAR   1

◆ DPB_DRAW_CURRENT

#define DPB_DRAW_CURRENT   3

◆ DPB_DRAW_REFS

#define DPB_DRAW_REFS   2

◆ LOG_MODULE

#define LOG_MODULE   "vdec_hw_h264"

◆ LONG_TERM_REF

#define LONG_TERM_REF   2

◆ lprintf

#define lprintf ( _fmt,
... )   /* nothing */

Referenced by _cdda_cddb_socket_open(), _egl_dispose(), _fill(), _get_files(), _image_decode_data(), _insert_node(), _jpeg_decode_data(), _load_plugin_class(), _load_required_plugins(), _module_dispose(), _opensles_delay(), _opensles_open_plugin(), _osd_hide(), _osd_show(), _read_response(), _register_plugins_internal(), _sparse_array_sort(), _unload_unref_plugin(), _vdec_hw_h264_dbp_append(), _vdec_hw_h264_dec_ref_pic_marking(), _vdec_hw_h264_decode_picture(), _vdec_hw_h264_dpb_mmc1(), _vdec_hw_h264_dpb_remove(), _vdec_hw_h264_nal_unit(), _vdec_hw_h264_read_pps(), _vdec_hw_h264_read_sps(), _vdec_hw_h264_read_vui(), _vdec_hw_h264_slice_header(), _write_command(), _x_demux_control_headers_done(), _x_demux_start_thread(), _x_demux_stop_thread(), _x_find_demux_plugin_last_probe(), _x_get_audio_decoder(), _x_get_spu_decoder(), _x_get_video_decoder(), _x_new_refcounter(), _x_osd_renderer_init(), _x_real_codecs_init(), _x_refcounter_dec(), _x_rip_plugin_get_instance(), _x_scan_plugins(), _x_select_spu_channel(), _x_use_proxy(), _x_va_alloc_surface(), _x_va_create_image(), _x_va_destroy_image(), _x_va_frame_duplicate_frame_data(), _x_va_frame_provide_standard_frame_data(), _x_va_frame_update_frame_format(), _x_video_decoder_shutdown(), _x_vo_scale_compute_output_size(), _xine_buffer_copyin(), _xine_buffer_ensure_size(), _xine_buffer_free(), _xine_buffer_set(), _xine_buffer_strcpy(), _yuv2rgb_set_csc_levels(), a52dec_decode_data(), a52dec_decode_frame(), add_top_level_entry(), alloc_aud_frame(), alloc_vid_frame(), ao_directx_close(), ao_directx_delay(), ao_directx_exit(), ao_directx_open(), ao_directx_set_property(), ao_directx_write(), ao_dx2_bytes_per_frame(), ao_dx2_close(), ao_dx2_control(), ao_dx2_delay(), ao_dx2_exit(), ao_dx2_num_channels(), ao_dx2_open(), ao_dx2_set_property(), ao_dx2_write(), ao_file_init_class(), ao_file_open_plugin(), ao_fusionsound_control(), ao_fusionsound_open(), ao_fusionsound_write(), ao_loop(), ao_none_init_class(), ao_none_open_plugin(), ao_oss_ctrl(), ao_oss_delay(), ao_oss_open(), ao_oss_write(), ao_put_buffer(), ao_update_av_sync_method(), ao_update_resample_factor(), argb_overlay_proc(), asf_header_choose_streams(), asf_header_disable_streams(), asf_header_get_stream_id(), asf_header_new(), asf_header_parse_content_description(), asf_header_parse_file_properties(), asf_header_parse_header_extension(), asf_header_parse_stream_bitrate_properties(), asf_header_parse_stream_extended_properties(), asf_header_parse_stream_properties(), asf_parse_packet_align(), asf_parse_packet_compressed_payload(), asf_parse_packet_ecd(), asf_parse_packet_payload(), asf_parse_packet_payload_common(), asf_parse_packet_payload_header(), asf_read_header(), asf_reader_get_string(), asf_send_audio_header(), asf_send_buffer_defrag(), asf_send_buffer_nodefrag(), asmrp_assignment(), asmrp_comp_expression(), asmrp_condition(), asmrp_eval(), asmrp_getch(), asmrp_operand(), asmrp_rule(), asmrp_set_id(), audio_create_buffers(), audio_decoder_loop(), audio_fill(), audio_filter_compress(), audio_set_volume(), bandwidth_changed_cb(), bluray_class_get_dir(), bluray_plugin_open(), bluray_plugin_seek(), bluray_plugin_seek_time(), buffer_service(), cache_plugin_dispose(), cache_plugin_new(), cache_plugin_read(), cache_plugin_seek(), cache_plugin_seek_time(), calc_response(), call_hash(), cdda_class_get_autoplay_list(), cdda_class_get_instance(), cdda_open(), cdda_plugin_open(), check_newpts(), check_newpts(), check_newpts(), check_newpts(), check_newpts(), CheckPixelFormat(), close_overlay(), collect_plugins(), config_dispose(), config_register_key(), config_update_num(), config_update_string(), convert_overlay(), copy_chunk(), create_histogram(), create_ximage(), CreateDirectSound(), CreateSecondary(), CreateSoundBuffer(), crypto_plugin_seek(), dec_file_ref(), dec_node_ref(), decode_annodex_header(), decode_anxdata_header(), decode_audio_header(), decode_dshow_header(), decode_picture(), decode_picture(), decode_render(), decode_render(), decode_render(), decode_speex_header(), decode_text_header(), decode_theora_header(), decode_video_header(), deinterlace_draw(), demux_asf_seek(), demux_asf_send_headers(), demux_dts_get_stream_length(), demux_eawve_send_chunk(), demux_flac_dispose(), demux_flac_get_capabilities(), demux_flac_get_optional_data(), demux_flac_get_status(), demux_flac_get_stream_length(), demux_flac_init_class(), demux_flac_seek(), demux_flac_send_chunk(), demux_flac_send_headers(), demux_flv_send_headers(), demux_fourxm_send_chunk(), demux_idcin_send_chunk(), demux_idcin_send_headers(), demux_ivf_send_chunk(), demux_loop(), demux_matroska_get_optional_data(), demux_matroska_seek(), demux_mng_send_chunk(), demux_mpc_send_chunk(), demux_mpeg_block_parse_pack(), demux_mpeg_elem_next(), demux_mpeg_elem_seek(), demux_mpeg_pes_parse_pack(), demux_mpgaudio_next(), demux_mpgaudio_seek(), demux_mpgaudio_send_headers(), demux_mve_send_chunk(), demux_nsv_seek(), demux_nsv_send_chunk(), demux_ogg_get_optional_data(), demux_ogg_seek(), demux_ogg_send_chunk(), demux_ogg_send_headers(), demux_playlist_send_chunk(), demux_real_parse_references(), demux_real_seek(), demux_real_send_chunk(), demux_roq_send_chunk(), demux_slave_next(), demux_sputext_seek(), demux_sputext_send_headers(), demux_str_seek(), demux_ts_parse_pes_header(), demux_unstick_ao_loop(), demux_vc1_es_seek(), demux_wv_send_chunk(), DestroyDirectSound(), DestroySoundBuffer(), detect_mpgaudio_file(), directfb_display_frame(), directfb_display_frame2(), directfb_gui_data_exchange(), directfb_overlay_begin(), directfb_overlay_blend(), directfb_overlay_end(), directfb_redraw_needed(), directfb_subpicture_paint(), directfb_update_frame_format(), dispose_plugin_list(), do_swab(), dpb_add_picture(), draw_subtitle(), draw_subtitles(), dts_decode_data(), dts_decode_frame(), dvd_class_get_autoplay_list(), dvd_class_get_instance(), dvd_plugin_dispose(), dvd_plugin_get_blocksize(), dvd_plugin_get_capabilities(), dvd_plugin_get_current_pos(), dvd_plugin_get_length(), dvd_plugin_get_mrl(), dvd_plugin_open(), dvd_plugin_seek(), dvd_plugin_seek_time(), dxr3_lavc_init(), dxr3_scr_adjust(), dxr3_scr_init(), dxr3_scr_set_speed(), dxr3_scr_start(), dxr3_spu_encode(), dxr3_spu_encoder_init(), ebml_check_header(), ebml_get_next_level(), ebml_read_master(), entry_point(), event_handler(), extract_mrl(), faad_decode_audio(), faad_decode_data(), faad_open_dec(), fb_compute_rgb_size(), fb_update_frame_format(), ff_decode_data(), ff_discontinuity(), ff_dispose(), ff_flush(), ff_flush_internal(), ff_handle_buffer(), ff_handle_header_buffer(), ff_handle_mpeg12_buffer(), ff_handle_mpeg_sequence(), ff_handle_preview_buffer(), ff_handle_special_buffer(), ff_reset(), ff_vc1_find_header(), ff_video_open_plugin(), file_input_get_file_type(), file_input_get_instance(), file_input_open(), FillSoundBuffer(), filter_deinterlace_methods(), find_overlay(), find_underlay(), flac_decode_data(), flac_discontinuity(), flac_eof_callback(), flac_error_callback(), flac_length_callback(), flac_metadata_callback(), flac_metadata_callback(), flac_read_callback(), flac_read_callback(), flac_seek_callback(), flac_tell_callback(), flac_write_callback(), flac_write_callback(), free_sequence(), free_sequence(), free_superindex(), generate_clut(), get_answer(), get_asf_header(), get_buffer(), get_chunk_header(), get_disc_name(), get_header(), get_media_packet(), get_media_packet(), get_metadata(), get_packet_command(), get_packet_header(), goom_open_plugin(), handle_events(), handle_hdmv_textst(), handle_libbluray_event(), handle_realvideo(), handle_sub_ssa(), handle_sub_utf8(), handle_vobsub(), hash(), hls_input_get_instance(), http_plugin_handshake(), http_plugin_open(), http_plugin_read(), http_plugin_read_int(), http_plugin_read_metainf(), id3v1_parse_tag(), id3v22_interp_frame(), id3v22_parse_frame_header(), id3v23_interp_frame(), id3v23_parse_frame_ext_header(), id3v23_parse_frame_header(), id3v23_parse_tag(), id3v24_interp_frame(), id3v24_parse_ext_header(), id3v24_parse_frame_header(), id3v24_parse_genre(), id3v2_parse_genre(), id3v2_parse_header(), image_decode_data(), image_dispose(), image_dispose(), init_class(), init_class(), init_class(), init_class(), init_class(), init_class(), init_class(), init_codec(), init_codec(), init_codec_audio(), init_codec_vobsub(), init_plugin(), init_plugin(), init_routine(), init_sequence(), init_spu_decoder_plugin(), init_subpicture(), init_video_codec(), interp_header(), interpret_pps(), jpeg_dispose(), lavc_on_display_frame(), lavc_on_unneeded(), lavc_on_update_format(), lavc_prepare_frame(), lexer_get_token_d_r(), lexer_init_r(), load_plugin_list(), load_syms_linux(), lpcm_decode_data(), lrb_add(), lrb_feedback(), macosx_gui_data_exchange(), macosx_update_frame_format(), mad_decode_data(), map_decoder_list(), map_decoders(), matroska_parse_chapters(), metronom_got_audio_samples(), metronom_got_video_frame(), metronom_handle_discontinuity(), metronom_set_audio_rate(), metronom_start_clock(), mms_choose_best_streams(), mms_class_get_instance(), mms_connect(), mms_plugin_get_length(), mms_plugin_read(), mms_plugin_seek(), mms_plugin_seek_time(), mms_tcp_connect(), mmsh_close(), mmsh_connect(), mmsh_connect_int(), mmsh_connect_int2(), mmsh_peek_header(), mmsh_read(), mmsh_tcp_connect(), mmsh_valid_proto(), mmst_valid_proto(), mosaico_open_plugin(), mpc_decode_data(), mpc_decode_frame(), mpc_reader_canseek(), mpc_reader_get_size(), mpc_reader_read(), mpc_reader_seek(), mpc_reader_tell(), mpd_input_get_instance(), mpeg2_close(), mpeg2_flush(), mpeg2_xxmc_slice(), mpeg2dec_decode_data(), mpeg2dec_dispose(), mpeg2dec_flush(), nal_buffer_append(), nbc_alloc_cb(), nbc_get_cb(), nbc_put_cb(), net_plugin_read(), network_connect(), next_frame(), nsv_parse_framerate(), nsv_parse_payload(), nsv_read(), nsv_resync(), open_ac3_file(), open_argb_overlay(), open_audio_capture_device(), open_demux_plugin(), open_dts_file(), open_flac_file(), open_idcin_file(), open_internal(), open_ipmovie_file(), open_mpc_file(), open_mve_file(), open_nsv_file(), open_overlay(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_radio_capture_device(), open_str_file(), open_title(), open_video_capture_device(), open_wv_file(), osd_clear(), osd_draw_bitmap(), osd_filled_rect(), osd_get_text_size(), osd_line(), osd_lookup_native(), osd_new_object(), osd_point(), osd_render_text(), osd_renderer_load_font(), osd_renderer_unload_font(), osd_set_encoding(), osd_set_font(), overlay_and_display_frame(), overlay_proc(), parse_asx(), parse_attachments(), parse_audio_stream(), parse_audio_stream(), parse_audio_track(), parse_block(), parse_block_group(), parse_chapter_atom(), parse_chapter_display(), parse_chunk(), parse_chunk(), parse_cluster(), parse_code(), parse_code(), parse_code(), parse_content_compression(), parse_content_encoding(), parse_content_encodings(), parse_cue_point(), parse_cue_trackposition(), parse_cues(), parse_dec_ref_pic_marking(), parse_edition_entry(), parse_frame_header(), parse_frame_payload(), parse_info(), parse_m3u(), parse_mpeg1_packet(), parse_mpeg2_packet(), parse_mrl(), parse_pack(), parse_pack_preview(), parse_pes_for_pts(), parse_pes_for_pts(), parse_pls(), parse_pps(), parse_private_stream_1(), parse_private_stream_1(), parse_private_stream_2(), parse_program_stream_pack_header(), parse_program_stream_pack_header(), parse_qtl(), parse_ram(), parse_ref(), parse_rss(), parse_seek_entry(), parse_seekhead(), parse_segment(), parse_simpleblock(), parse_smi(), parse_tags(), parse_top_level(), parse_top_level_head(), parse_track_entry(), parse_tracks(), parse_vbri_header(), parse_video_stream(), parse_video_stream(), parse_video_track(), parse_xing_header(), parse_xspf(), picture_coding_extension(), picture_header(), picture_header(), picture_header_advanced(), pnm_calc_stream(), pnm_connect(), pnm_get_stream_chunk(), pnm_plugin_open(), pnm_plugin_read(), pnm_read(), prepare_samples(), probe_aac_file(), process_alt_CLUT_segment(), process_CLUT_definition_segment(), process_display_definition_segment(), process_header(), process_ipmovie_chunk(), process_page_composition_segment(), process_pixel_data_sub_block(), process_region_composition_segment(), protocol_changed_cb(), pvr_break_rec_page(), pvr_class_get_instance(), pvr_event_handler(), pvr_finish_recording(), pvr_play_file(), pvr_plugin_dispose(), qta_decode_data(), qta_dispose(), qta_init_driver(), qtv_decode_data(), qtv_dispose(), qtv_flush(), qtv_init_class(), qtv_init_driver(), quant_matrix_extension(), rbsp_trailing_bits(), read_chapter_comment(), read_flv_packet(), read_metadata(), read_ogg_packet(), real_get_rdt_chunk(), real_parse_headers(), real_parse_index(), real_parse_mdpr(), real_parse_sdp(), real_setup_and_get_header(), realdec_decode_data(), realdec_decode_data(), realdec_dispose(), realdec_dispose(), realdec_flush(), release_buffer(), remove_emulation_prevention(), render_help_image_tex(), render_help_image_tiledtex(), render_run(), reset_picture(), reset_picture(), reset_sequence(), rgb_decode_data(), rip_plugin_dispose(), rip_plugin_get_current_pos(), rip_plugin_get_optional_data(), rip_plugin_read(), rip_plugin_read_block(), rip_plugin_seek(), rip_plugin_seek_time(), rip_seek_original(), rmff_fix_header(), rtp_plugin_get_optional_data(), rtsp_connect(), rtsp_get(), rtsp_get_answers(), rtsp_plugin_open(), rtsp_plugin_read(), rtsp_plugin_seek(), rtsp_plugin_seek_time(), rtsp_put(), rtsp_read_data(), rtsp_session_read(), save_plugin_list(), scratch_get_content(), sdl_compute_output_size(), sdl_gui_data_exchange(), sdl_update_frame_format(), sdpplin_parse(), sdpplin_parse_stream(), search_by_channel(), search_by_tuner(), search_field(), select_mlti_data(), send_command(), send_header(), send_ogg_buf(), sequence_extension(), sequence_header(), sequence_header(), sequence_header_advanced(), set_frequency(), sniff_buffer_looks_like_mp3(), speex_decode_data(), spucmml_class_open_plugin(), spudec_decode_data(), spudec_decode_data(), spudec_decode_data(), spudec_reset(), stdin_class_get_instance(), stdin_plugin_open(), stdin_plugin_read(), stdin_plugin_seek(), stk_compute_output_size(), stk_update_frame_format(), stop_internal(), store_aud_frame(), store_vid_frame(), stream_flush(), stream_reset(), switch_buf(), switch_open_plugin(), test_capabilities(), test_capability(), theora_decode_data(), theora_dispose(), ticket_release_internal(), unixscr_init(), unmute_audio(), update_chapter_display(), update_config_cb(), update_region(), update_text_palette(), v4l2_class_get_instance(), v4l2_input_blocksize(), v4l2_input_dispose(), v4l2_input_open(), v4l2_input_read_block(), v4l2_input_setup_video_streaming(), v4l_class_get_radio_instance(), v4l_class_get_video_instance(), v4l_event_handler(), v4l_plugin_dispose(), v4l_plugin_read(), v4l_plugin_read_block(), v4l_plugin_seek(), vaapi_alloc_frame(), vaapi_create_subpicture(), vaapi_destroy_subpicture(), vaapi_display_frame(), vaapi_dispose(), vaapi_get_property(), vaapi_gui_data_exchange(), vaapi_hardware_render_frame(), vaapi_overlay_begin(), vaapi_overlay_blend(), vaapi_overlay_end(), vaapi_ovl_associate(), vaapi_property_callback(), vaapi_set_property(), vaapi_software_render_frame(), vbri_get_seek_point(), vdec_hw_h264_flush(), vdec_hw_h264_put_config(), vdec_hw_h264_put_frame(), vdpau_alloc_frame(), vdpau_check_output_size(), vdpau_display_frame(), vdpau_grab_current_output_surface(), vdpau_h264_alter_decode_data(), vdpau_h264_alter_discontinuity(), vdpau_h264_alter_dispose(), vdpau_h264_alter_flush(), vdpau_h264_alter_frame_render(), vdpau_honor_progressive_flag(), vdpau_mpeg12_discontinuity(), vdpau_mpeg12_dispose(), vdpau_mpeg12_flush(), vdpau_mpeg12_reset(), vdpau_mpeg4_discontinuity(), vdpau_mpeg4_dispose(), vdpau_mpeg4_flush(), vdpau_mpeg4_reset(), vdpau_overlay_begin(), vdpau_overlay_blend(), vdpau_overlay_end(), vdpau_process_overlays(), vdpau_set_property(), vdpau_update_deinterlace_method_hd(), vdpau_update_deinterlace_method_sd(), vdpau_update_enable_inverse_telecine(), vdpau_update_frame_format(), vdpau_update_scaling_level(), vdpau_update_sd_only_properties(), vdpau_vc1_decode_data(), vdpau_vc1_discontinuity(), vdpau_vc1_dispose(), vdpau_vc1_flush(), vdpau_vc1_reset(), vdr_class_get_instance(), vdr_execute_rpc_command(), vdr_input_init_plugin(), vdr_main_read(), vdr_plugin_open(), vdr_plugin_open_fifo_mrl(), vdr_plugin_open_socket_mrl(), vdr_plugin_read(), vdr_plugin_seek(), vdr_video_draw(), video_decoder_loop(), video_object_layer(), video_out_loop(), vidix_config_playback(), vidix_display_frame(), vidix_get_property(), vidix_gui_data_exchange(), vidix_set_property(), visual_object(), vo_exit(), vo_frame_draw(), vo_free_queue_get(), vo_get_frame(), vobsub_parse_custom_colors(), vobsub_parse_forced_subs(), vobsub_parse_palette(), vobsub_parse_size(), vorbis_decode_data(), vorbis_dispose(), w32a_decode_audio(), w32a_decode_data(), w32v_decode_data(), w32v_init_codec(), wait_secs(), wavpack_decode_data(), wavpack_discontinuity(), win32_get_property(), x11osd_clear(), x11osd_drawable_changed(), x11osd_expose(), x11osd_resize(), xcbosd_clear(), xcbosd_drawable_changed(), xcbosd_expose(), xcbosd_resize(), xine_a52_parse_data(), xine_buffer_copyout(), xine_buffer_dup(), xine_buffer_get_size(), xine_buffer_strchr(), xine_buffer_write_bytes(), xine_config_load(), xine_config_save(), xine_dispose_internal(), xine_engine_get_param(), xine_engine_set_param(), XINE_FORMAT_PRINTF(), xine_get_next_audio_frame(), xine_get_param(), xine_get_pos_length(), xine_input_push_back_byte(), xine_input_write_bytes(), xine_monotonic_clock(), xine_nbc_init(), xine_new_framegrab_video_port(), xine_open(), xine_open_video_driver(), xine_set_param(), xine_side_dispose_internal(), xml_parser_build_tree_with_options_r(), xml_parser_free_tree(), xml_parser_free_tree_rec(), xml_parser_get_node_internal(), xml_parser_get_property(), xshm_compute_rgb_size(), xshm_compute_rgb_size(), xshm_display_frame(), xshm_display_frame(), xshm_frame_proc_slice(), xshm_frame_proc_slice(), xshm_gui_data_exchange(), xshm_gui_data_exchange(), xv_display_frame(), xv_display_frame(), xv_get_property(), xv_get_property(), xv_open_port(), xv_open_port(), xvmc_render_macro_blocks(), xxmc_display_frame(), xxmc_frame_field(), xxmc_get_property(), yuv2rgb_c_init(), yuv2rgb_factory_init(), yuv2rgb_single_pixel_init(), and yuy22rgb_c_init().

◆ MAX_BUFFER_SIZE

#define MAX_BUFFER_SIZE   3145728

Referenced by vdec_hw_h264_put_frame().

◆ MAX_POC

#define MAX_POC   2147483647

◆ MAX_PPS

#define MAX_PPS   256

◆ MAX_REF_FRAMES

#define MAX_REF_FRAMES   16

◆ MAX_SLICES

#define MAX_SLICES   80 /* 68? */

◆ MAX_SPS

#define MAX_SPS   32

◆ MIN_BUFFER_SIZE

#define MIN_BUFFER_SIZE   10000

Referenced by vdec_hw_h264_new().

◆ NAL_END_SEQUENCE

#define NAL_END_SEQUENCE   10

◆ NAL_END_STREAM

#define NAL_END_STREAM   11

◆ NAL_FILLER

#define NAL_FILLER   12

Referenced by _vdec_hw_h264_nal_unit().

◆ NAL_PICTURE

#define NAL_PICTURE   8

Referenced by _vdec_hw_h264_nal_unit().

◆ NAL_SEEK_POINT

#define NAL_SEEK_POINT   9

Referenced by _vdec_hw_h264_nal_unit().

◆ NAL_SEI

#define NAL_SEI   6

Referenced by _vdec_hw_h264_nal_unit().

◆ NAL_SEQUENCE

#define NAL_SEQUENCE   7

Referenced by _vdec_hw_h264_nal_unit().

◆ NAL_SEQUENCE_EXT

#define NAL_SEQUENCE_EXT   13

◆ NAL_SLICE_IDR

#define NAL_SLICE_IDR   5

◆ NAL_SLICE_NO_IDR

#define NAL_SLICE_NO_IDR   1

◆ NAL_UNSPECIFIED

#define NAL_UNSPECIFIED   0

◆ PICTURE_BOTTOM_DONE

#define PICTURE_BOTTOM_DONE   2

◆ PICTURE_DONE

#define PICTURE_DONE   3

◆ PICTURE_TOP_DONE

#define PICTURE_TOP_DONE   1

◆ SHORT_TERM_REF

#define SHORT_TERM_REF   1

◆ SLICE_TYPE_B

#define SLICE_TYPE_B   1

◆ SLICE_TYPE_I

#define SLICE_TYPE_I   2

◆ SLICE_TYPE_P

#define SLICE_TYPE_P   0

◆ SLICE_TYPE_SI

#define SLICE_TYPE_SI   4

◆ SLICE_TYPE_SP

#define SLICE_TYPE_SP   3

◆ START_IDR_FLAG

#define START_IDR_FLAG   1000

◆ VDEC_HW_H264_MAX_SLICE_GROUPS

#define VDEC_HW_H264_MAX_SLICE_GROUPS   80

Referenced by _vdec_hw_h264_read_pps().

Typedef Documentation

◆ vdec_hw_h264_frame_int_t

Function Documentation

◆ __attribute__()

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

◆ _vdec_hw_h264_check_ref_list()

static int _vdec_hw_h264_check_ref_list ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_dbp_append()

static void _vdec_hw_h264_dbp_append ( vdec_hw_h264_t * vdec,
int second_field )
static

◆ _vdec_hw_h264_dec_ref_pic_marking()

static void _vdec_hw_h264_dec_ref_pic_marking ( vdec_hw_h264_t * vdec,
uint8_t idr )
static

◆ _vdec_hw_h264_decode_picnum()

static void _vdec_hw_h264_decode_picnum ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_decode_picture()

static int _vdec_hw_h264_decode_picture ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_decode_poc()

static void _vdec_hw_h264_decode_poc ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_dpb_draw_frames()

static void _vdec_hw_h264_dpb_draw_frames ( vdec_hw_h264_t * vdec,
int32_t curpoc,
int draw_mode )
static

◆ _vdec_hw_h264_dpb_get_PicNum()

static vdec_hw_h264_frame_int_t * _vdec_hw_h264_dpb_get_PicNum ( vdec_hw_h264_t * vdec,
int32_t pic_num,
int * index )
static

◆ _vdec_hw_h264_dpb_get_prev_ref()

static vdec_hw_h264_frame_int_t * _vdec_hw_h264_dpb_get_prev_ref ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_dpb_mmc1()

static void _vdec_hw_h264_dpb_mmc1 ( vdec_hw_h264_t * vdec,
int32_t picnum )
static

◆ _vdec_hw_h264_dpb_remove()

static void _vdec_hw_h264_dpb_remove ( vdec_hw_h264_t * vdec,
uint32_t index )
static

◆ _vdec_hw_h264_dpb_reset()

static void _vdec_hw_h264_dpb_reset ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_flush_buffer()

static void _vdec_hw_h264_flush_buffer ( vdec_hw_h264_t * vdec)
static

Referenced by vdec_hw_h264_put_frame().

◆ _vdec_hw_h264_flush_slices()

static int _vdec_hw_h264_flush_slices ( vdec_hw_h264_t * vdec,
uint32_t new_type )
static

◆ _vdec_hw_h264_frame_draw()

static void _vdec_hw_h264_frame_draw ( vdec_hw_h264_t * vdec,
vdec_hw_h264_frame_int_t * frame )
static

◆ _vdec_hw_h264_frame_free()

static void _vdec_hw_h264_frame_free ( vdec_hw_h264_t * vdec,
vdec_hw_h264_frame_int_t * frame,
int zero )
static

◆ _vdec_hw_h264_frame_link()

static void _vdec_hw_h264_frame_link ( vdec_hw_h264_t * vdec,
vdec_hw_h264_frame_int_t * frame,
vdec_hw_h264_frame_int_t * to )
static

◆ _vdec_hw_h264_frame_new()

static void _vdec_hw_h264_frame_new ( vdec_hw_h264_t * vdec,
vdec_hw_h264_frame_int_t * frame )
static

◆ _vdec_hw_h264_get_sps()

static vdec_hw_h264_sps_t * _vdec_hw_h264_get_sps ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_nal_unit()

static int _vdec_hw_h264_nal_unit ( vdec_hw_h264_t * vdec,
uint8_t * buf,
uint32_t len )
static

◆ _vdec_hw_h264_pred_weight_table()

static void _vdec_hw_h264_pred_weight_table ( vdec_hw_h264_t * vdec,
uint32_t slice_type,
uint32_t ChromaArrayType,
uint32_t l0,
uint32_t l1 )
static

◆ _vdec_hw_h264_read_pps()

static vdec_hw_h264_pps_t * _vdec_hw_h264_read_pps ( vdec_hw_h264_t * vdec)
static

References _vdec_hw_h264_scaling_list_fallback_A(), _vdec_hw_h264_scaling_list_fallback_B(), bits, bits_exp_se(), bits_exp_ue(), bits_read(), bits_valid_left(), vdec_hw_h264_pps_t::chroma_qp_index_offset, vdec_hw_h264_pps_t::constrained_intra_pred_flag, vdec_hw_h264_pps_t::deblocking_filter_control_present_flag, vdec_hw_h264_pps_t::entropy_coding_mode_flag, vdec_hw_h264_pps_t::id, LOG_MODULE, lprintf, NULL, vdec_hw_h264_pps_t::num_ref_idx_l0_active_minus1, vdec_hw_h264_pps_t::num_ref_idx_l1_active_minus1, vdec_hw_h264_pps_t::num_slice_groups_minus1, parse_scaling_list(), vdec_hw_h264_pps_t::pic_init_qp_minus26, vdec_hw_h264_pps_t::pic_init_qs_minus26, vdec_hw_h264_pps_t::pic_order_present_flag, vdec_hw_h264_pps_t::pic_scaling_list_present_flag, vdec_hw_h264_pps_t::pic_scaling_matrix_present_flag, vdec_hw_h264_pps_t::pic_size_in_map_units_minus1, vdec_hw_h264_pps_t::pps_id, vdec_hw_h264_pps_t::redundant_pic_cnt_present_flag, vdec_hw_h264_pps_t::run_length_minus1, vdec_hw_h264_pps_t::scaling_lists_4x4, vdec_hw_h264_pps_t::scaling_lists_8x8, vdec_hw_h264_pps_t::second_chroma_qp_index_offset, vdec_hw_h264_sps_t::seq_scaling_matrix_present_flag, vdec_hw_h264_pps_t::slice_group_change_direction_flag, vdec_hw_h264_pps_t::slice_group_change_rate_minus1, vdec_hw_h264_pps_t::slice_group_map_type, vdec_hw_h264_pps_t::slice_groups, vdec_hw_h264_pps_t::sps_id, vdec_hw_h264_s::stats, vdec_hw_h264_pps_t::transform_8x8_mode_flag, VDEC_HW_H264_LOGG_ERR, VDEC_HW_H264_LOGG_INFO, VDEC_HW_H264_MAX_SLICE_GROUPS, vdec_hw_h264_pps_t::weighted_bipred_idc, and vdec_hw_h264_pps_t::weighted_pred_flag.

Referenced by _vdec_hw_h264_nal_unit(), and vdec_hw_h264_put_config().

◆ _vdec_hw_h264_read_sps()

static vdec_hw_h264_sps_t * _vdec_hw_h264_read_sps ( vdec_hw_h264_t * vdec)
static

References _vdec_hw_h264_read_vui(), _vdec_hw_h264_scaling_list_fallback_A(), _vdec_hw_h264_set_ratio(), vdec_hw_h264_sps_t::bit_depth_chroma_minus8, vdec_hw_h264_sps_t::bit_depth_luma_minus8, bits, bits_exp_se(), bits_exp_ue(), bits_read(), vdec_hw_h264_sps_t::chroma_format_idc, vdec_hw_h264_sps_t::constraint_set0_flag, vdec_hw_h264_sps_t::constraint_set1_flag, vdec_hw_h264_sps_t::constraint_set2_flag, vdec_hw_h264_sps_t::constraint_set3_flag, vdec_hw_h264_sps_t::delta_pic_order_always_zero_flag, vdec_hw_h264_sps_t::direct_8x8_inference_flag, vdec_hw_h264_sps_t::frame_crop_bottom_offset, vdec_hw_h264_sps_t::frame_crop_left_offset, vdec_hw_h264_sps_t::frame_crop_right_offset, vdec_hw_h264_sps_t::frame_crop_top_offset, vdec_hw_h264_sps_t::frame_cropping_flag, vdec_hw_h264_sps_t::frame_mbs_only_flag, vdec_hw_h264_sps_t::gaps_in_frame_num_value_allowed_flag, vdec_hw_h264_sps_t::level_idc, vdec_hw_h264_sps_t::log2_max_frame_num_minus4, vdec_hw_h264_sps_t::log2_max_pic_order_cnt_lsb_minus4, LOG_MODULE, lprintf, vdec_hw_h264_sps_t::mb_adaptive_frame_field_flag, NULL, vdec_hw_h264_sps_t::offset_for_non_ref_pic, vdec_hw_h264_sps_t::offset_for_ref_frame, vdec_hw_h264_sps_t::offset_for_top_to_bottom_field, parse_scaling_list(), vdec_hw_h264_sps_t::pic_height_in_map_units_minus1, vdec_hw_h264_sps_t::pic_order_cnt_type, vdec_hw_h264_sps_t::pic_width_in_mbs_minus1, vdec_hw_h264_sps_t::profile_idc, vdec_hw_h264_sps_t::qpprime_y_zero_transform_bypass_flag, vdec_hw_h264_sps_t::ref_frames_used, vdec_hw_h264_sps_t::ref_frames_used_in_pic_order_cnt_cycle, vdec_hw_h264_sps_t::reused, vdec_hw_h264_sps_t::scaling_lists_4x4, vdec_hw_h264_sps_t::scaling_lists_8x8, vdec_hw_h264_sps_t::separate_colour_plane_flag, vdec_hw_h264_sps_t::seq_scaling_matrix_present_flag, vdec_hw_h264_sps_t::sps_id, vdec_hw_h264_s::stats, VDEC_HW_H264_LOGG_ERR, VDEC_HW_H264_LOGG_INFO, vdec_hw_h264_sps_t::vui, and vdec_hw_h264_sps_t::vui_parameters_present_flag.

Referenced by _vdec_hw_h264_nal_unit(), and vdec_hw_h264_put_config().

◆ _vdec_hw_h264_read_vui()

static void _vdec_hw_h264_read_vui ( vdec_hw_h264_t * vdec,
vdec_hw_h264_vui_t * vui )
static

◆ _vdec_hw_h264_ref_pic_list_reordering()

static void _vdec_hw_h264_ref_pic_list_reordering ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_render()

static int _vdec_hw_h264_render ( vdec_hw_h264_t * vdec,
int bad_frame )
static

References _vdec_hw_h264_frame_new(), vdec_hw_h264_frame_t::bad_frame, vdec_hw_h264_sps_t::bit_depth_chroma_minus8, vdec_hw_h264_sps_t::bit_depth_luma_minus8, vdec_hw_h264_lps_t::bottom_field_flag, vdec_hw_h264_info_ref_frame_t::bottom_is_reference, vdec_hw_h264_frame_int_s::BottomFieldOrderCnt, vdec_hw_h264_sps_t::chroma_format_idc, vdec_hw_h264_pps_t::chroma_qp_index_offset, vdec_hw_h264_frame_t::color_matrix, vdec_hw_h264_frame_int_s::completed, vdec_hw_h264_pps_t::constrained_intra_pred_flag, vdec_hw_h264_pps_t::deblocking_filter_control_present_flag, vdec_hw_h264_sps_t::delta_pic_order_always_zero_flag, vdec_hw_h264_sps_t::direct_8x8_inference_flag, vdec_hw_h264_frame_int_s::drop_pts, vdec_hw_h264_frame_t::duration, vdec_hw_h264_pps_t::entropy_coding_mode_flag, vdec_hw_h264_frame_int_s::f, vdec_hw_h264_info_ref_frame_t::field_order_cnt, vdec_hw_h264_lps_t::field_pic_flag, vdec_hw_h264_frame_int_s::field_pic_flag, vdec_hw_h264_frame_t::flags, vdec_hw_h264_info_ref_frame_t::frame, vdec_hw_h264_info_ref_frame_t::frame_idx, vdec_hw_h264_sps_t::frame_mbs_only_flag, vdec_hw_h264_lps_t::frame_num, vdec_hw_h264_frame_int_s::FrameNum, vdec_hw_h264_s::frames, vdec_hw_h264_sps_t::gaps_in_frame_num_value_allowed_flag, vdec_hw_h264_frame_t::height, vdec_hw_h264_frame_t::info, vdec_hw_h264_info_ref_frame_t::is_long_term, vdec_hw_h264_frame_int_s::is_reference, vdec_hw_h264_frame_t::level, vdec_hw_h264_sps_t::level_idc, vdec_hw_h264_sps_t::log2_max_frame_num_minus4, vdec_hw_h264_sps_t::log2_max_pic_order_cnt_lsb_minus4, LOG_MODULE, MAX_REF_FRAMES, vdec_hw_h264_sps_t::mb_adaptive_frame_field_flag, vdec_hw_h264_lps_t::nal_ref_idc, NULL, vdec_hw_h264_frame_t::num_ref_frames, vdec_hw_h264_pps_t::num_ref_idx_l0_active_minus1, vdec_hw_h264_pps_t::num_ref_idx_l1_active_minus1, vdec_hw_h264_pps_t::num_slice_groups_minus1, vdec_hw_h264_pps_t::pic_init_qp_minus26, vdec_hw_h264_pps_t::pic_init_qs_minus26, vdec_hw_h264_sps_t::pic_order_cnt_type, vdec_hw_h264_pps_t::pic_order_present_flag, vdec_hw_h264_pps_t::pic_scaling_matrix_present_flag, PICTURE_DONE, vdec_hw_h264_lps_t::pps_id, vdec_hw_h264_frame_t::profile, vdec_hw_h264_sps_t::profile_idc, vdec_hw_h264_frame_t::progressive_frame, vdec_hw_h264_frame_t::pts, vdec_hw_h264_frame_t::ratio, vdec_hw_h264_pps_t::redundant_pic_cnt_present_flag, vdec_hw_h264_sps_t::ref_frames_used, vdec_hw_h264_s::ref_frames_used, vdec_hw_h264_sps_t::scaling_lists_4x4, vdec_hw_h264_pps_t::scaling_lists_4x4, vdec_hw_h264_sps_t::scaling_lists_8x8, vdec_hw_h264_pps_t::scaling_lists_8x8, vdec_hw_h264_pps_t::second_chroma_qp_index_offset, vdec_hw_h264_sps_t::separate_colour_plane_flag, vdec_hw_h264_pps_t::slice_group_map_type, vdec_hw_h264_pps_t::sps_id, vdec_hw_h264_info_ref_frame_t::top_is_reference, vdec_hw_h264_frame_int_s::TopFieldOrderCnt, vdec_hw_h264_pps_t::transform_8x8_mode_flag, VDEC_HW_H264_FRAME_BOTTOM_FIELD, VDEC_HW_H264_FRAME_TOP_FIELD, VDEC_HW_H264_LOGG_INFO, vdec_hw_h264_pps_t::weighted_bipred_idc, vdec_hw_h264_pps_t::weighted_pred_flag, and vdec_hw_h264_frame_t::width.

Referenced by _vdec_hw_h264_decode_picture().

◆ _vdec_hw_h264_reset_sequence()

static void _vdec_hw_h264_reset_sequence ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_reset_slices()

static void _vdec_hw_h264_reset_slices ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_scaling_list_fallback_A()

static void _vdec_hw_h264_scaling_list_fallback_A ( uint8_t * scaling_lists_4x4,
uint8_t * scaling_lists_8x8,
int i )
static

◆ _vdec_hw_h264_scaling_list_fallback_B()

static void _vdec_hw_h264_scaling_list_fallback_B ( vdec_hw_h264_sps_t * sps,
vdec_hw_h264_pps_t * pps,
int i )
static

◆ _vdec_hw_h264_set_ratio()

static void _vdec_hw_h264_set_ratio ( vdec_hw_h264_t * vdec,
vdec_hw_h264_sps_t * sps )
static

◆ _vdec_hw_h264_slice_header()

static void _vdec_hw_h264_slice_header ( vdec_hw_h264_t * vdec,
uint8_t nal_ref_idc,
uint8_t nal_unit_type )
static

◆ _vdec_hw_h264_slice_header_post()

static void _vdec_hw_h264_slice_header_post ( vdec_hw_h264_t * vdec)
static

◆ _vdec_hw_h264_unescape()

static uint32_t _vdec_hw_h264_unescape ( uint8_t * b,
uint32_t len )
static

00 00 03 foo -> 00 00 foo

References v.

Referenced by _vdec_hw_h264_nal_unit(), and vdec_hw_h264_put_config().

◆ parse_scaling_list()

static void parse_scaling_list ( bits_reader_t * br,
uint8_t * scaling_list,
int len,
int index )
static

◆ 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(*)(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 )

◆ 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)

Variable Documentation

◆ default_4x4_inter

const uint8_t default_4x4_inter[16]
static
Initial value:
= {
10, 14, 14, 20,
20, 20, 24, 24,
24, 24, 27, 27,
27, 30, 30, 34
}

Referenced by _vdec_hw_h264_scaling_list_fallback_A(), and parse_scaling_list().

◆ default_4x4_intra

const uint8_t default_4x4_intra[16]
static
Initial value:
= {
6, 13, 13, 20,
20, 20, 28, 28,
28, 28, 32, 32,
32, 37, 37, 42
}

Referenced by _vdec_hw_h264_scaling_list_fallback_A(), and parse_scaling_list().

◆ default_8x8_inter

const uint8_t default_8x8_inter[64]
static
Initial value:
= {
9, 13, 13, 15, 13, 15, 17, 17,
17, 17, 19, 19, 19, 19, 19, 21,
21, 21, 21, 21, 21, 22, 22, 22,
22, 22, 22, 22, 24, 24, 24, 24,
24, 24, 24, 24, 25, 25, 25, 25,
25, 25, 25, 27, 27, 27, 27, 27,
27, 28, 28, 28, 28, 28, 30, 30,
30, 30, 32, 32, 32, 33, 33, 35
}

Referenced by _vdec_hw_h264_scaling_list_fallback_A(), and parse_scaling_list().

◆ default_8x8_intra

const uint8_t default_8x8_intra[64]
static
Initial value:
= {
6, 10, 10, 13, 11, 13, 16, 16,
16, 16, 18, 18, 18, 18, 18, 23,
23, 23, 23, 23, 23, 25, 25, 25,
25, 25, 25, 25, 27, 27, 27, 27,
27, 27, 27, 27, 29, 29, 29, 29,
29, 29, 29, 31, 31, 31, 31, 31,
31, 33, 33, 33, 33, 33, 36, 36,
36, 36, 38, 38, 38, 40, 40, 42
}

Referenced by _vdec_hw_h264_scaling_list_fallback_A(), and parse_scaling_list().

◆ zigzag_4x4

const uint8_t zigzag_4x4[16]
static
Initial value:
= {
0, 1, 4, 8,
5, 2, 3, 6,
9, 12, 13, 10,
7, 11, 14, 15
}

Referenced by _vdec_hw_h264_scaling_list_fallback_A(), and parse_scaling_list().

◆ zigzag_8x8

const uint8_t zigzag_8x8[64]
static
Initial value:
= {
0, 1, 8, 16, 9, 2, 3, 10,
17, 24, 32, 25, 18, 11, 4, 5,
12, 19, 26, 33, 40, 48, 41, 34,
27, 20, 13, 6, 7, 14, 21, 28,
35, 42, 49, 56, 57, 50, 43, 36,
29, 22, 15, 23, 30, 37, 44, 51,
58, 59, 52, 45, 38, 31, 39, 46,
53, 60, 61, 54, 47, 55, 62, 63
}

Referenced by _vdec_hw_h264_scaling_list_fallback_A(), and parse_scaling_list().