libxcoder  5.2.0
ni_decode_utils.c File Reference
#include "ni_generic_utils.h"
#include "ni_decode_utils.h"
#include "ni_log.h"
#include "ni_util.h"
#include "ni_defs.h"

Go to the source code of this file.

Macros

#define check_profile_idc(idc)   ptl->profile_idc == (idc) || ptl->profile_compatibility_flag[idc]
 

Functions

uint64_t find_h264_next_nalu (ni_demo_context_t *p_ctx, uint8_t *p_dst, int *nal_type)
 
int h264_parse_hrd (ni_bitstream_reader_t *br, ni_h264_sps_t *sps)
 
int h264_parse_vui (ni_bitstream_reader_t *br, ni_h264_sps_t *sps)
 
int h264_parse_scaling_list (ni_bitstream_reader_t *br, uint8_t *factors, int size, const uint8_t *jvt_list, const uint8_t *fallback_list)
 
int h264_parse_scaling_matrices (ni_bitstream_reader_t *br, const ni_h264_sps_t *sps, uint8_t(*scaling_matrix4)[16], uint8_t(*scaling_matrix8)[64])
 
int h264_parse_sps (uint8_t *buf, int size_bytes, ni_h264_sps_t *sps)
 
int h264_parse_sei (uint8_t *buf, int size_bytes, ni_h264_sps_t *sps, int *sei_type, int *is_interlaced)
 
int probe_h264_stream_info (ni_demo_context_t *p_ctx, ni_h264_sps_t *sps)
 
int parse_h264_slice_header (uint8_t *buf, int size_bytes, ni_h264_sps_t *sps, int32_t *frame_num, unsigned int *first_mb_in_slice)
 
uint64_t find_h265_next_nalu (ni_demo_context_t *p_ctx, uint8_t *p_dst, int *nal_type)
 
void h265_decode_sublayer_hrd (ni_bitstream_reader_t *br, unsigned int nb_cpb, int subpic_params_present)
 
int h265_decode_profile_tier_level (ni_bitstream_reader_t *br, PTLCommon *ptl)
 
int h265_parse_ptl (ni_bitstream_reader_t *br, PTL *ptl, int max_num_sub_layers)
 
int h265_decode_hrd (ni_bitstream_reader_t *br, int common_inf_present, int max_sublayers)
 
void h265_set_default_scaling_list_data (ScalingList *sl)
 
int h265_scaling_list_data (ni_bitstream_reader_t *br, ScalingList *sl, ni_h265_sps_t *sps)
 
int h265_decode_short_term_rps (ni_bitstream_reader_t *br, ShortTermRPS *rps, const ni_h265_sps_t *sps, int is_slice_header)
 
int h265_decode_vui (ni_bitstream_reader_t *br, int apply_defdispwin, ni_h265_sps_t *sps)
 
int h265_parse_sps (ni_h265_sps_t *sps, uint8_t *buf, int size_bytes)
 
int probe_h265_stream_info (ni_demo_context_t *p_ctx, ni_h265_sps_t *sps)
 
uint64_t find_vp9_next_packet (ni_demo_context_t *p_ctx, uint8_t *p_dst, ni_vp9_header_info_t *vp9_info)
 
int vp9_parse_header (ni_vp9_header_info_t *vp9_info, uint8_t *buf, int size_bytes)
 
int probe_vp9_stream_info (ni_demo_context_t *p_ctx, ni_vp9_header_info_t *vp9_info)
 
int decoder_send_data (ni_demo_context_t *p_ctx, ni_session_context_t *p_dec_ctx, ni_session_data_io_t *p_in_data, int input_video_width, int input_video_height, void *stream_info)
 Send decoder input data. More...
 
int decoder_receive_data (ni_demo_context_t *p_ctx, ni_session_context_t *p_dec_ctx, ni_session_data_io_t *p_out_data, int output_video_width, int output_video_height, FILE *p_file, int write_to_file, int *p_rx_size)
 Receive decoded output data from decoder. More...
 
int decoder_open_session (ni_session_context_t *p_dec_ctx, int iXcoderGUID, ni_xcoder_params_t *p_dec_params)
 decoder session open More...
 
void decoder_stat_report_and_close (ni_demo_context_t *p_ctx, ni_session_context_t *p_dec_ctx)
 
void * decoder_send_thread (void *args)
 
void * decoder_receive_thread (void *args)
 

Macro Definition Documentation

◆ check_profile_idc

#define check_profile_idc (   idc)    ptl->profile_idc == (idc) || ptl->profile_compatibility_flag[idc]

Function Documentation

◆ decoder_open_session()

int decoder_open_session ( ni_session_context_t p_dec_ctx,
int  iXcoderGUID,
ni_xcoder_params_t p_dec_params 
)

decoder session open


Parameters
<br>
Returns
0 if successful, < 0 otherwise

Definition at line 2575 of file ni_decode_utils.c.

◆ decoder_receive_data()

int decoder_receive_data ( ni_demo_context_t p_ctx,
ni_session_context_t p_dec_ctx,
ni_session_data_io_t p_out_data,
int  output_video_width,
int  output_video_height,
FILE *  p_file,
int  write_to_file,
int *  p_rx_size 
)

Receive decoded output data from decoder.


Parameters
<br>
Returns
0: got YUV frame; 1: end-of-stream; 2: got nothing s

Definition at line 2416 of file ni_decode_utils.c.

◆ decoder_receive_thread()

void* decoder_receive_thread ( void *  args)

Definition at line 2678 of file ni_decode_utils.c.

◆ decoder_send_data()

int decoder_send_data ( ni_demo_context_t p_ctx,
ni_session_context_t p_dec_ctx,
ni_session_data_io_t p_in_data,
int  input_video_width,
int  input_video_height,
void *  stream_info 
)

Send decoder input data.


Parameters
<br>
Returns

Definition at line 2228 of file ni_decode_utils.c.

◆ decoder_send_thread()

void* decoder_send_thread ( void *  args)

Definition at line 2626 of file ni_decode_utils.c.

◆ decoder_stat_report_and_close()

void decoder_stat_report_and_close ( ni_demo_context_t p_ctx,
ni_session_context_t p_dec_ctx 
)

Definition at line 2612 of file ni_decode_utils.c.

◆ find_h264_next_nalu()

uint64_t find_h264_next_nalu ( ni_demo_context_t p_ctx,
uint8_t *  p_dst,
int *  nal_type 
)

Definition at line 104 of file ni_decode_utils.c.

◆ find_h265_next_nalu()

uint64_t find_h265_next_nalu ( ni_demo_context_t p_ctx,
uint8_t *  p_dst,
int *  nal_type 
)

find/copy next H.265 NAL unit (including start code) and its type; return NAL data size if found, 0 otherwise

Definition at line 883 of file ni_decode_utils.c.

◆ find_vp9_next_packet()

uint64_t find_vp9_next_packet ( ni_demo_context_t p_ctx,
uint8_t *  p_dst,
ni_vp9_header_info_t vp9_info 
)

packet structure: bytes 0-3: size of frame in bytes (not including the 12-byte header) bytes 4-11: 64-bit presentation timestamp bytes 12.. frame data

Definition at line 2074 of file ni_decode_utils.c.

◆ h264_parse_hrd()

int h264_parse_hrd ( ni_bitstream_reader_t br,
ni_h264_sps_t sps 
)

Definition at line 174 of file ni_decode_utils.c.

◆ h264_parse_scaling_list()

int h264_parse_scaling_list ( ni_bitstream_reader_t br,
uint8_t *  factors,
int  size,
const uint8_t *  jvt_list,
const uint8_t *  fallback_list 
)

Definition at line 338 of file ni_decode_utils.c.

◆ h264_parse_scaling_matrices()

int h264_parse_scaling_matrices ( ni_bitstream_reader_t br,
const ni_h264_sps_t sps,
uint8_t(*)  scaling_matrix4[16],
uint8_t(*)  scaling_matrix8[64] 
)

Definition at line 374 of file ni_decode_utils.c.

◆ h264_parse_sei()

int h264_parse_sei ( uint8_t *  buf,
int  size_bytes,
ni_h264_sps_t sps,
int *  sei_type,
int *  is_interlaced 
)

Definition at line 623 of file ni_decode_utils.c.

◆ h264_parse_sps()

int h264_parse_sps ( uint8_t *  buf,
int  size_bytes,
ni_h264_sps_t sps 
)

Definition at line 420 of file ni_decode_utils.c.

◆ h264_parse_vui()

int h264_parse_vui ( ni_bitstream_reader_t br,
ni_h264_sps_t sps 
)

Definition at line 203 of file ni_decode_utils.c.

◆ h265_decode_hrd()

int h265_decode_hrd ( ni_bitstream_reader_t br,
int  common_inf_present,
int  max_sublayers 
)

Definition at line 1087 of file ni_decode_utils.c.

◆ h265_decode_profile_tier_level()

int h265_decode_profile_tier_level ( ni_bitstream_reader_t br,
PTLCommon ptl 
)

Definition at line 971 of file ni_decode_utils.c.

◆ h265_decode_short_term_rps()

int h265_decode_short_term_rps ( ni_bitstream_reader_t br,
ShortTermRPS rps,
const ni_h265_sps_t sps,
int  is_slice_header 
)

Definition at line 1277 of file ni_decode_utils.c.

◆ h265_decode_sublayer_hrd()

void h265_decode_sublayer_hrd ( ni_bitstream_reader_t br,
unsigned int  nb_cpb,
int  subpic_params_present 
)

Definition at line 952 of file ni_decode_utils.c.

◆ h265_decode_vui()

int h265_decode_vui ( ni_bitstream_reader_t br,
int  apply_defdispwin,
ni_h265_sps_t sps 
)

Definition at line 1440 of file ni_decode_utils.c.

◆ h265_parse_ptl()

int h265_parse_ptl ( ni_bitstream_reader_t br,
PTL ptl,
int  max_num_sub_layers 
)

Definition at line 1041 of file ni_decode_utils.c.

◆ h265_parse_sps()

int h265_parse_sps ( ni_h265_sps_t sps,
uint8_t *  buf,
int  size_bytes 
)

Definition at line 1611 of file ni_decode_utils.c.

◆ h265_scaling_list_data()

int h265_scaling_list_data ( ni_bitstream_reader_t br,
ScalingList sl,
ni_h265_sps_t sps 
)

Definition at line 1190 of file ni_decode_utils.c.

◆ h265_set_default_scaling_list_data()

void h265_set_default_scaling_list_data ( ScalingList sl)

Definition at line 1159 of file ni_decode_utils.c.

◆ parse_h264_slice_header()

int parse_h264_slice_header ( uint8_t *  buf,
int  size_bytes,
ni_h264_sps_t sps,
int32_t *  frame_num,
unsigned int *  first_mb_in_slice 
)

Definition at line 831 of file ni_decode_utils.c.

◆ probe_h264_stream_info()

int probe_h264_stream_info ( ni_demo_context_t p_ctx,
ni_h264_sps_t sps 
)

Definition at line 715 of file ni_decode_utils.c.

◆ probe_h265_stream_info()

int probe_h265_stream_info ( ni_demo_context_t p_ctx,
ni_h265_sps_t sps 
)

Definition at line 1994 of file ni_decode_utils.c.

◆ probe_vp9_stream_info()

int probe_vp9_stream_info ( ni_demo_context_t p_ctx,
ni_vp9_header_info_t vp9_info 
)

Definition at line 2180 of file ni_decode_utils.c.

◆ vp9_parse_header()

int vp9_parse_header ( ni_vp9_header_info_t vp9_info,
uint8_t *  buf,
int  size_bytes 
)

Definition at line 2117 of file ni_decode_utils.c.