xine-lib: xine-lib-1.2.13/src/video_dec/libvdpau/vdec_hw_h264.c File Reference

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_t * | vdec_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

Referenced by vdec_hw_h264_new(), and vdec_hw_h264_put_frame().

## ◆ DPB_DRAW_CLEAR

#define DPB_DRAW_CLEAR 1

Referenced by _vdec_hw_h264_decode_picture(), _vdec_hw_h264_dpb_draw_frames(), _vdec_hw_h264_nal_unit(), and vdec_hw_h264_put_frame().

## ◆ DPB_DRAW_CURRENT

#define DPB_DRAW_CURRENT 3

Referenced by _vdec_hw_h264_decode_picture(), and _vdec_hw_h264_dpb_draw_frames().

## ◆ DPB_DRAW_REFS

#define DPB_DRAW_REFS 2

Referenced by _vdec_hw_h264_dbp_append(), _vdec_hw_h264_decode_picture(), _vdec_hw_h264_dpb_mmc1(), and vdec_hw_h264_flush().

## ◆ LOG_MODULE

#define LOG_MODULE "vdec_hw_h264"

Referenced by _vdec_hw_h264_check_ref_list(), _vdec_hw_h264_dbp_append(), _vdec_hw_h264_frame_free(), _vdec_hw_h264_frame_new(), _vdec_hw_h264_nal_unit(), _vdec_hw_h264_read_pps(), _vdec_hw_h264_read_sps(), _vdec_hw_h264_render(), _vdec_hw_h264_slice_header(), vdec_hw_h264_delete(), and vdec_hw_h264_put_frame().

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

Referenced by _vdec_hw_h264_dbp_append(), _vdec_hw_h264_decode_picture(), _vdec_hw_h264_nal_unit(), vdec_hw_h264_flush(), and vdec_hw_h264_put_frame().

## ◆ MAX_PPS

#define MAX_PPS 256

Referenced by vdec_hw_h264_delete(), and vdec_hw_h264_new().

## ◆ MAX_REF_FRAMES

#define MAX_REF_FRAMES 16

Referenced by _vdec_hw_h264_check_ref_list(), _vdec_hw_h264_dbp_append(), _vdec_hw_h264_dec_ref_pic_marking(), _vdec_hw_h264_decode_picnum(), _vdec_hw_h264_decode_picture(), _vdec_hw_h264_decode_poc(), _vdec_hw_h264_dpb_draw_frames(), _vdec_hw_h264_dpb_reset(), _vdec_hw_h264_render(), _vdec_hw_h264_reset_sequence(), _vdec_hw_h264_slice_header(), vdec_hw_h264_delete(), vdec_hw_h264_new(), and vdec_hw_h264_zero_pts().

## ◆ MAX_SLICES

#define MAX_SLICES 80 /* 68? */

Referenced by _vdec_hw_h264_flush_slices().

## ◆ MAX_SPS

#define MAX_SPS 32

Referenced by vdec_hw_h264_delete(), and vdec_hw_h264_new().

## ◆ MIN_BUFFER_SIZE

#define MIN_BUFFER_SIZE 10000

Referenced by vdec_hw_h264_new().

## ◆ NAL_END_SEQUENCE

#define NAL_END_SEQUENCE 10

Referenced by _vdec_hw_h264_nal_unit(), and vdec_hw_h264_put_frame().

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

Referenced by _vdec_hw_h264_decode_poc(), _vdec_hw_h264_nal_unit(), _vdec_hw_h264_slice_header(), and vdec_hw_h264_put_frame().

## ◆ NAL_SLICE_NO_IDR

#define NAL_SLICE_NO_IDR 1

Referenced by _vdec_hw_h264_nal_unit(), and vdec_hw_h264_put_frame().

## ◆ NAL_UNSPECIFIED

#define NAL_UNSPECIFIED 0

## ◆ PICTURE_BOTTOM_DONE

#define PICTURE_BOTTOM_DONE 2

Referenced by _vdec_hw_h264_decode_picture(), and _vdec_hw_h264_decode_poc().

## ◆ PICTURE_DONE

#define PICTURE_DONE 3

Referenced by _vdec_hw_h264_dec_ref_pic_marking(), _vdec_hw_h264_decode_picture(), _vdec_hw_h264_decode_poc(), and _vdec_hw_h264_render().

## ◆ PICTURE_TOP_DONE

#define PICTURE_TOP_DONE 1

Referenced by _vdec_hw_h264_decode_picture(), and _vdec_hw_h264_decode_poc().

## ◆ SHORT_TERM_REF

#define SHORT_TERM_REF 1

Referenced by _vdec_hw_h264_dec_ref_pic_marking().

## ◆ SLICE_TYPE_B

#define SLICE_TYPE_B 1

Referenced by _vdec_hw_h264_check_ref_list(), _vdec_hw_h264_pred_weight_table(), _vdec_hw_h264_ref_pic_list_reordering(), _vdec_hw_h264_slice_header(), and _vdec_hw_h264_slice_header_post().

## ◆ SLICE_TYPE_I

#define SLICE_TYPE_I 2

Referenced by _vdec_hw_h264_check_ref_list(), _vdec_hw_h264_ref_pic_list_reordering(), and _vdec_hw_h264_slice_header().

## ◆ SLICE_TYPE_P

#define SLICE_TYPE_P 0

Referenced by _vdec_hw_h264_slice_header(), and _vdec_hw_h264_slice_header_post().

## ◆ SLICE_TYPE_SI

#define SLICE_TYPE_SI 4

Referenced by _vdec_hw_h264_ref_pic_list_reordering().

## ◆ SLICE_TYPE_SP

#define SLICE_TYPE_SP 3

Referenced by _vdec_hw_h264_slice_header(), and _vdec_hw_h264_slice_header_post().

## ◆ START_IDR_FLAG

#define START_IDR_FLAG 1000

Referenced by _vdec_hw_h264_decode_picture().

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

typedef struct vdec_hw_h264_frame_int_s vdec_hw_h264_frame_int_t

## Function Documentation

## ◆ __attribute__()

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

References user_data(), and VDEC_HW_H264_LOGG_ERR.

## ◆ _vdec_hw_h264_check_ref_list()

static int _vdec_hw_h264_check_ref_list | ( | vdec_hw_h264_t * | vdec | ) |
| static

References vdec_hw_h264_frame_t::bad_frame, vdec_hw_h264_frame_int_s::BottomFieldOrderCnt, vdec_hw_h264_frame_int_s::f, vdec_hw_h264_frame_int_s::field_pic_flag, vdec_hw_h264_lps_t::field_pic_flag, vdec_hw_h264_s::frames, vdec_hw_h264_frame_int_s::is_reference, LOG_MODULE, MAX_REF_FRAMES, vdec_hw_h264_lps_t::num_ref_idx_l0_active_minus1, vdec_hw_h264_lps_t::num_ref_idx_l1_active_minus1, vdec_hw_h264_lps_t::pps_id, vdec_hw_h264_s::ref_frames_used, vdec_hw_h264_sps_t::ref_frames_used, vdec_hw_h264_lps_t::slice_type, SLICE_TYPE_B, SLICE_TYPE_I, vdec_hw_h264_pps_t::sps_id, vdec_hw_h264_frame_int_s::TopFieldOrderCnt, VDEC_HW_H264_LOGG_ERR, and VDEC_HW_H264_LOGG_INFO.

Referenced by _vdec_hw_h264_decode_picture().

## ◆ _vdec_hw_h264_dbp_append()

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

References _vdec_hw_h264_dpb_draw_frames(), _vdec_hw_h264_dpb_get_prev_ref(), _vdec_hw_h264_dpb_remove(), _vdec_hw_h264_frame_link(), _vdec_hw_h264_get_sps(), vdec_hw_h264_frame_int_s::BottomFieldOrderCnt, DPB_DRAW_REFS, vdec_hw_h264_frame_int_s::drawn, vdec_hw_h264_s::frames, vdec_hw_h264_frame_int_s::is_reference, LOG_MODULE, lprintf, MAX_POC, MAX_REF_FRAMES, NULL, vdec_hw_h264_s::ref_frames_max, vdec_hw_h264_s::ref_frames_used, vdec_hw_h264_sps_t::ref_frames_used, vdec_hw_h264_sps_t::sps_id, vdec_hw_h264_frame_int_s::TopFieldOrderCnt, VDEC_HW_H264_LOGG_ERR, and VDEC_HW_H264_LOGG_INFO.

Referenced by _vdec_hw_h264_decode_picture().

## ◆ _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

References _vdec_hw_h264_dpb_mmc1(), bits_exp_ue(), bits_read(), bits_skip(), vdec_hw_h264_frame_int_s::completed, vdec_hw_h264_frame_int_s::field_pic_flag, vdec_hw_h264_s::frames, vdec_hw_h264_frame_int_s::is_reference, lprintf, MAX_REF_FRAMES, vdec_hw_h264_frame_int_s::PicNum, PICTURE_DONE, and SHORT_TERM_REF.

Referenced by _vdec_hw_h264_slice_header_post().

## ◆ _vdec_hw_h264_decode_picnum()

static void _vdec_hw_h264_decode_picnum | ( | vdec_hw_h264_t * | vdec | ) |
| static

References vdec_hw_h264_lps_t::bottom_field_flag, vdec_hw_h264_frame_int_s::field_pic_flag, vdec_hw_h264_lps_t::field_pic_flag, vdec_hw_h264_frame_int_s::FrameNum, vdec_hw_h264_frame_int_s::FrameNumWrap, vdec_hw_h264_s::frames, MAX_REF_FRAMES, vdec_hw_h264_lps_t::MaxFrameNum, vdec_hw_h264_frame_int_s::PicNum, and vdec_hw_h264_s::ref_frames_used.

Referenced by _vdec_hw_h264_decode_picture().

## ◆ _vdec_hw_h264_decode_picture()

static int _vdec_hw_h264_decode_picture | ( | vdec_hw_h264_t * | vdec | ) |
| static

References _vdec_hw_h264_check_ref_list(), _vdec_hw_h264_dbp_append(), _vdec_hw_h264_decode_picnum(), _vdec_hw_h264_decode_poc(), _vdec_hw_h264_dpb_draw_frames(), _vdec_hw_h264_dpb_reset(), _vdec_hw_h264_frame_free(), _vdec_hw_h264_ref_pic_list_reordering(), _vdec_hw_h264_render(), _vdec_hw_h264_slice_header_post(), vdec_hw_h264_lps_t::bottom_field_flag, vdec_hw_h264_frame_int_s::BottomFieldOrderCnt, vdec_hw_h264_frame_int_s::completed, DPB_DRAW_CLEAR, DPB_DRAW_CURRENT, DPB_DRAW_REFS, vdec_hw_h264_frame_int_s::field_pic_flag, vdec_hw_h264_lps_t::field_pic_flag, vdec_hw_h264_lps_t::frame_num, vdec_hw_h264_frame_int_s::FrameNum, vdec_hw_h264_s::frames, vdec_hw_h264_frame_int_s::is_reference, lprintf, MAX_POC, MAX_REF_FRAMES, vdec_hw_h264_frame_int_s::missing_header, vdec_hw_h264_lps_t::nal_unit_type, PICTURE_BOTTOM_DONE, PICTURE_DONE, PICTURE_TOP_DONE, vdec_hw_h264_lps_t::pps_id, START_IDR_FLAG, and vdec_hw_h264_frame_int_s::TopFieldOrderCnt.

Referenced by _vdec_hw_h264_flush_slices().

## ◆ _vdec_hw_h264_decode_poc()

static void _vdec_hw_h264_decode_poc | ( | vdec_hw_h264_t * | vdec | ) |
| static

References _vdec_hw_h264_dpb_get_prev_ref(), vdec_hw_h264_lps_t::bottom_field_flag, vdec_hw_h264_frame_int_s::BottomFieldOrderCnt, vdec_hw_h264_frame_int_s::completed, vdec_hw_h264_lps_t::delta_pic_order_cnt, vdec_hw_h264_lps_t::delta_pic_order_cnt_bottom, vdec_hw_h264_frame_int_s::f, vdec_hw_h264_frame_int_s::field_pic_flag, vdec_hw_h264_lps_t::field_pic_flag, vdec_hw_h264_lps_t::frame_num, vdec_hw_h264_frame_int_s::FrameNum, vdec_hw_h264_s::frames, vdec_hw_h264_frame_int_s::is_reference, vdec_hw_h264_sps_t::log2_max_frame_num_minus4, vdec_hw_h264_sps_t::log2_max_pic_order_cnt_lsb_minus4, MAX_REF_FRAMES, vdec_hw_h264_frame_int_s::mmc5, vdec_hw_h264_lps_t::nal_ref_idc, NAL_SLICE_IDR, vdec_hw_h264_lps_t::nal_unit_type, 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, vdec_hw_h264_frame_int_s::pic_order_cnt_lsb, vdec_hw_h264_lps_t::pic_order_cnt_lsb, vdec_hw_h264_sps_t::pic_order_cnt_type, vdec_hw_h264_frame_int_s::PicOrderCntMsb, PICTURE_BOTTOM_DONE, PICTURE_DONE, PICTURE_TOP_DONE, vdec_hw_h264_lps_t::pps_id, vdec_hw_h264_sps_t::ref_frames_used_in_pic_order_cnt_cycle, vdec_hw_h264_pps_t::sps_id, vdec_hw_h264_frame_t::top_field_first, vdec_hw_h264_frame_int_s::TopFieldOrderCnt, and vdec_hw_h264_frame_int_s::used.

Referenced by _vdec_hw_h264_decode_picture().

## ◆ _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

References _vdec_hw_h264_dpb_remove(), _vdec_hw_h264_dpb_reset(), _vdec_hw_h264_frame_draw(), _vdec_hw_h264_frame_free(), vdec_hw_h264_frame_int_s::BottomFieldOrderCnt, DPB_DRAW_CLEAR, DPB_DRAW_CURRENT, vdec_hw_h264_frame_int_s::drawn, vdec_hw_h264_s::frames, vdec_hw_h264_frame_int_s::is_reference, MAX_REF_FRAMES, vdec_hw_h264_s::ref_frames_used, and vdec_hw_h264_frame_int_s::TopFieldOrderCnt.

Referenced by _vdec_hw_h264_dbp_append(), _vdec_hw_h264_decode_picture(), _vdec_hw_h264_dpb_mmc1(), _vdec_hw_h264_nal_unit(), vdec_hw_h264_flush(), and vdec_hw_h264_put_frame().

## ◆ _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

References NULL, vdec_hw_h264_frame_int_s::PicNum, and vdec_hw_h264_s::ref_frames_used.

Referenced by _vdec_hw_h264_dpb_mmc1().

## ◆ _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

References NULL, and vdec_hw_h264_s::ref_frames_used.

Referenced by _vdec_hw_h264_dbp_append(), and _vdec_hw_h264_decode_poc().

## ◆ _vdec_hw_h264_dpb_mmc1()

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

References _vdec_hw_h264_dpb_draw_frames(), _vdec_hw_h264_dpb_get_PicNum(), _vdec_hw_h264_dpb_remove(), vdec_hw_h264_frame_int_s::BottomFieldOrderCnt, DPB_DRAW_REFS, vdec_hw_h264_frame_int_s::drawn, vdec_hw_h264_frame_int_s::is_reference, lprintf, and vdec_hw_h264_frame_int_s::TopFieldOrderCnt.

Referenced by _vdec_hw_h264_dec_ref_pic_marking().

## ◆ _vdec_hw_h264_dpb_remove()

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

References _vdec_hw_h264_frame_free(), lprintf, and vdec_hw_h264_s::ref_frames_used.

Referenced by _vdec_hw_h264_dbp_append(), _vdec_hw_h264_dpb_draw_frames(), and _vdec_hw_h264_dpb_mmc1().

## ◆ _vdec_hw_h264_dpb_reset()

static void _vdec_hw_h264_dpb_reset | ( | vdec_hw_h264_t * | vdec | ) |
| static

References _vdec_hw_h264_frame_free(), vdec_hw_h264_s::frames, vdec_hw_h264_frame_int_s::is_reference, MAX_REF_FRAMES, and vdec_hw_h264_s::ref_frames_used.

Referenced by _vdec_hw_h264_decode_picture(), _vdec_hw_h264_dpb_draw_frames(), and _vdec_hw_h264_reset_sequence().

## ◆ _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

References _vdec_hw_h264_decode_picture(), and MAX_SLICES.

Referenced by _vdec_hw_h264_nal_unit(), vdec_hw_h264_flush(), and vdec_hw_h264_put_frame().

## ◆ _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

References vdec_hw_h264_frame_int_s::drawn, vdec_hw_h264_frame_int_s::f, vdec_hw_h264_frame_int_s::link, and vdec_hw_h264_s::stats.

Referenced by _vdec_hw_h264_dpb_draw_frames().

## ◆ _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

References vdec_hw_h264_frame_int_s::f, vdec_hw_h264_frame_int_s::link, LOG_MODULE, NULL, vdec_hw_h264_frame_t::user_data, vdec_hw_h264_s::user_frames, vdec_hw_h264_frame_t::vdec, and VDEC_HW_H264_LOGG_ERR.

Referenced by _vdec_hw_h264_decode_picture(), _vdec_hw_h264_dpb_draw_frames(), _vdec_hw_h264_dpb_remove(), _vdec_hw_h264_dpb_reset(), _vdec_hw_h264_frame_link(), _vdec_hw_h264_frame_new(), _vdec_hw_h264_reset_sequence(), and vdec_hw_h264_delete().

## ◆ _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

References _vdec_hw_h264_frame_free(), vdec_hw_h264_frame_int_s::f, vdec_hw_h264_frame_int_s::link, and vdec_hw_h264_frame_t::user_data.

Referenced by _vdec_hw_h264_dbp_append().

## ◆ _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

References _vdec_hw_h264_frame_free(), vdec_hw_h264_frame_t::bad_frame, vdec_hw_h264_frame_int_s::drawn, vdec_hw_h264_frame_int_s::f, vdec_hw_h264_frame_int_s::link, LOG_MODULE, NULL, vdec_hw_h264_s::ref_frames_max, vdec_hw_h264_frame_t::user_data, vdec_hw_h264_s::user_frames, and VDEC_HW_H264_LOGG_ERR.

Referenced by _vdec_hw_h264_render().

## ◆ _vdec_hw_h264_get_sps()

static vdec_hw_h264_sps_t * _vdec_hw_h264_get_sps | ( | vdec_hw_h264_t * | vdec | ) |
| static

References NULL, vdec_hw_h264_lps_t::pps_id, and vdec_hw_h264_pps_t::sps_id.

Referenced by _vdec_hw_h264_dbp_append(), and _vdec_hw_h264_nal_unit().

## ◆ _vdec_hw_h264_nal_unit()

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

References _vdec_hw_h264_dpb_draw_frames(), _vdec_hw_h264_flush_slices(), _vdec_hw_h264_get_sps(), _vdec_hw_h264_read_pps(), _vdec_hw_h264_read_sps(), _vdec_hw_h264_slice_header(), _vdec_hw_h264_unescape(), bits_set_buf(), DPB_DRAW_CLEAR, LOG_MODULE, lprintf, MAX_POC, NAL_END_SEQUENCE, NAL_FILLER, NAL_PICTURE, NAL_SEEK_POINT, NAL_SEI, NAL_SEQUENCE, NAL_SLICE_IDR, NAL_SLICE_NO_IDR, vdec_hw_h264_sps_t::reused, vdec_hw_h264_s::stats, vdec_hw_h264_s::tempbuf, VDEC_HW_H264_FRAME_NEW_SEQ, VDEC_HW_H264_LOGG_ERR, and VDEC_HW_H264_LOGG_INFO.

Referenced by vdec_hw_h264_flush(), and vdec_hw_h264_put_frame().

## ◆ _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

References bits_exp_se(), bits_exp_ue(), bits_read(), slice_type(), and SLICE_TYPE_B.

Referenced by _vdec_hw_h264_slice_header_post().

## ◆ _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

References vdec_hw_h264_vui_t::aspect_ratio_idc, vdec_hw_h264_vui_t::aspect_ratio_info, bits_exp_ue(), bits_read(), bits_skip(), vdec_hw_h264_vui_t::colour_desc, lprintf, vdec_hw_h264_vui_t::num_units_in_tick, vdec_hw_h264_vui_t::sar_height, vdec_hw_h264_vui_t::sar_width, vdec_hw_h264_vui_t::time_scale, and vdec_hw_h264_vui_t::timing_info.

Referenced by _vdec_hw_h264_read_sps().

## ◆ _vdec_hw_h264_ref_pic_list_reordering()

static void _vdec_hw_h264_ref_pic_list_reordering | ( | vdec_hw_h264_t * | vdec | ) |
| static

References bits_exp_ue(), bits_read(), vdec_hw_h264_lps_t::slice_type, SLICE_TYPE_B, SLICE_TYPE_I, and SLICE_TYPE_SI.

Referenced by _vdec_hw_h264_decode_picture().

## ◆ _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_frame_int_s::field_pic_flag, vdec_hw_h264_lps_t::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_s::ref_frames_used, vdec_hw_h264_sps_t::ref_frames_used, vdec_hw_h264_pps_t::scaling_lists_4x4, vdec_hw_h264_sps_t::scaling_lists_4x4, vdec_hw_h264_pps_t::scaling_lists_8x8, vdec_hw_h264_sps_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

References _vdec_hw_h264_dpb_reset(), _vdec_hw_h264_frame_free(), _vdec_hw_h264_reset_slices(), vdec_hw_h264_s::frames, MAX_REF_FRAMES, and VDEC_HW_H264_FRAME_NEW_SEQ.

Referenced by vdec_hw_h264_delete(), vdec_hw_h264_new(), and vdec_hw_h264_reset().

## ◆ _vdec_hw_h264_reset_slices()

static void _vdec_hw_h264_reset_slices | ( | vdec_hw_h264_t * | vdec | ) |
| static

Referenced by _vdec_hw_h264_reset_sequence().

## ◆ _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

References default_4x4_inter, default_4x4_intra, default_8x8_inter, default_8x8_intra, zigzag_4x4, and zigzag_8x8.

Referenced by _vdec_hw_h264_read_pps(), and _vdec_hw_h264_read_sps().

## ◆ _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

References vdec_hw_h264_pps_t::scaling_lists_4x4, vdec_hw_h264_sps_t::scaling_lists_4x4, vdec_hw_h264_pps_t::scaling_lists_8x8, and vdec_hw_h264_sps_t::scaling_lists_8x8.

Referenced by _vdec_hw_h264_read_pps().

## ◆ _vdec_hw_h264_set_ratio()

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

References vdec_hw_h264_vui_t::aspect_ratio_idc, vdec_hw_h264_vui_t::aspect_ratio_info, vdec_hw_h264_vui_t::sar_height, vdec_hw_h264_vui_t::sar_width, and vdec_hw_h264_sps_t::vui.

Referenced by _vdec_hw_h264_read_sps().

## ◆ _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

References bits_exp_se(), bits_exp_ue(), bits_read(), bits_skip(), vdec_hw_h264_lps_t::bottom_field_flag, vdec_hw_h264_frame_int_s::completed, vdec_hw_h264_sps_t::delta_pic_order_always_zero_flag, vdec_hw_h264_lps_t::delta_pic_order_cnt, vdec_hw_h264_lps_t::delta_pic_order_cnt_bottom, vdec_hw_h264_lps_t::field_pic_flag, vdec_hw_h264_sps_t::frame_mbs_only_flag, vdec_hw_h264_lps_t::frame_num, vdec_hw_h264_s::frames, vdec_hw_h264_lps_t::idr_pic_id, 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, MAX_REF_FRAMES, vdec_hw_h264_lps_t::MaxFrameNum, vdec_hw_h264_frame_int_s::missing_header, vdec_hw_h264_lps_t::nal_ref_idc, NAL_SLICE_IDR, vdec_hw_h264_lps_t::nal_unit_type, vdec_hw_h264_lps_t::num_ref_idx_l0_active_minus1, vdec_hw_h264_pps_t::num_ref_idx_l0_active_minus1, vdec_hw_h264_lps_t::num_ref_idx_l1_active_minus1, vdec_hw_h264_pps_t::num_ref_idx_l1_active_minus1, vdec_hw_h264_lps_t::pic_order_cnt_lsb, vdec_hw_h264_sps_t::pic_order_cnt_type, vdec_hw_h264_pps_t::pic_order_present_flag, vdec_hw_h264_lps_t::pps_id, vdec_hw_h264_lps_t::redundant_pic_cnt, vdec_hw_h264_pps_t::redundant_pic_cnt_present_flag, vdec_hw_h264_sps_t::separate_colour_plane_flag, vdec_hw_h264_lps_t::slice_type, SLICE_TYPE_B, SLICE_TYPE_I, SLICE_TYPE_P, SLICE_TYPE_SP, vdec_hw_h264_pps_t::sps_id, and VDEC_HW_H264_LOGG_ERR.

Referenced by _vdec_hw_h264_nal_unit().

## ◆ _vdec_hw_h264_slice_header_post()

static void _vdec_hw_h264_slice_header_post | ( | vdec_hw_h264_t * | vdec | ) |
| static

References _vdec_hw_h264_dec_ref_pic_marking(), _vdec_hw_h264_pred_weight_table(), vdec_hw_h264_sps_t::chroma_format_idc, vdec_hw_h264_lps_t::nal_ref_idc, vdec_hw_h264_lps_t::nal_unit_type, vdec_hw_h264_lps_t::num_ref_idx_l0_active_minus1, vdec_hw_h264_lps_t::num_ref_idx_l1_active_minus1, vdec_hw_h264_lps_t::pps_id, vdec_hw_h264_sps_t::separate_colour_plane_flag, vdec_hw_h264_lps_t::slice_type, SLICE_TYPE_B, SLICE_TYPE_P, SLICE_TYPE_SP, vdec_hw_h264_pps_t::sps_id, vdec_hw_h264_pps_t::weighted_bipred_idc, and vdec_hw_h264_pps_t::weighted_pred_flag.

Referenced by _vdec_hw_h264_decode_picture().

## ◆ _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

References bits_exp_se(), default_4x4_inter, default_4x4_intra, default_8x8_inter, default_8x8_intra, zigzag_4x4, and zigzag_8x8.

Referenced by _vdec_hw_h264_read_pps(), and _vdec_hw_h264_read_sps().

## ◆ vdec_hw_h264_delete()

void vdec_hw_h264_delete | ( | vdec_hw_h264_t ** | dec | ) |

done

References _vdec_hw_h264_frame_free(), _vdec_hw_h264_reset_sequence(), vdec_hw_h264_s::frames, LOG_MODULE, MAX_PPS, MAX_REF_FRAMES, MAX_SPS, NULL, vdec_hw_h264_s::ref_frames_used, vdec_hw_h264_s::stats, vdec_hw_h264_s::user_frames, VDEC_HW_H264_LOGG_ERR, VDEC_HW_H264_LOGG_INFO, and vdec_hw_h264_reset().

Referenced by vdpau_h264_alter_dispose().

## ◆ vdec_hw_h264_flush()

int vdec_hw_h264_flush | ( | vdec_hw_h264_t * | dec | ) |

frame_ready () / frame_delete () any held frames now

References _vdec_hw_h264_dpb_draw_frames(), _vdec_hw_h264_flush_slices(), _vdec_hw_h264_nal_unit(), DPB_DRAW_REFS, lprintf, MAX_POC, and vdec_hw_h264_s::ref_frames_used.

Referenced by vdpau_h264_alter_flush().

## ◆ vdec_hw_h264_new()

vdec_hw_h264_t * vdec_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 )

References _vdec_hw_h264_reset_sequence(), BUF_PAD, vdec_hw_h264_s::frames, MAX_PPS, MAX_REF_FRAMES, MAX_SPS, MIN_BUFFER_SIZE, NULL, vdec_hw_h264_s::ref_frames_max, vdec_hw_h264_s::ref_frames_used, vdec_hw_h264_s::stats, user_data(), vdec_hw_h264_s::user_frames, and VDEC_HW_H264_FRAME_NEW_SEQ.

Referenced by open_plugin().

## ◆ vdec_hw_h264_put_config()

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

optional global head from media container

References _vdec_hw_h264_read_pps(), _vdec_hw_h264_read_sps(), _vdec_hw_h264_unescape(), bits_set_buf(), lprintf, and vdec_hw_h264_s::tempbuf.

Referenced by vdpau_h264_alter_decode_data().

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

send what you have

References _vdec_hw_h264_dpb_draw_frames(), _vdec_hw_h264_flush_buffer(), _vdec_hw_h264_flush_slices(), _vdec_hw_h264_nal_unit(), BUF_PAD, DPB_DRAW_CLEAR, LOG_MODULE, lprintf, MAX_BUFFER_SIZE, MAX_POC, NAL_END_SEQUENCE, NAL_SLICE_IDR, NAL_SLICE_NO_IDR, v, VDEC_HW_H264_LOGG_DEBUG, and VDEC_HW_H264_LOGG_ERR.

Referenced by vdpau_h264_alter_decode_data().

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

zero all held frame pts

References vdec_hw_h264_frame_int_s::drop_pts, vdec_hw_h264_frame_int_s::f, vdec_hw_h264_s::frames, MAX_REF_FRAMES, vdec_hw_h264_frame_t::pts, vdec_hw_h264_s::ref_frames_used, and VDEC_HW_H264_FRAME_NEW_SEQ.

Referenced by vdpau_h264_alter_discontinuity().

## 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().