FFmpeg
hevcdec.h
Go to the documentation of this file.
1 /*
2  * HEVC video decoder
3  *
4  * Copyright (C) 2012 - 2013 Guillaume Martres
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 #ifndef AVCODEC_HEVCDEC_H
24 #define AVCODEC_HEVCDEC_H
25 
26 #include <stdatomic.h>
27 
28 #include "libavutil/buffer.h"
29 #include "libavutil/md5.h"
30 
31 #include "avcodec.h"
32 #include "bswapdsp.h"
33 #include "cabac.h"
34 #include "get_bits.h"
35 #include "hevcpred.h"
36 #include "h2645_parse.h"
37 #include "hevc.h"
38 #include "hevc_ps.h"
39 #include "hevc_sei.h"
40 #include "hevcdsp.h"
41 #include "internal.h"
42 #include "thread.h"
43 #include "videodsp.h"
44 
45 #define MAX_NB_THREADS 16
46 #define SHIFT_CTB_WPP 2
47 
48 //TODO: check if this is really the maximum
49 #define MAX_TRANSFORM_DEPTH 5
50 
51 #define MAX_TB_SIZE 32
52 #define MAX_QP 51
53 #define DEFAULT_INTRA_TC_OFFSET 2
54 
55 #define HEVC_CONTEXTS 199
56 
57 #define MRG_MAX_NUM_CANDS 5
58 
59 #define L0 0
60 #define L1 1
61 
62 #define EPEL_EXTRA_BEFORE 1
63 #define EPEL_EXTRA_AFTER 2
64 #define EPEL_EXTRA 3
65 #define QPEL_EXTRA_BEFORE 3
66 #define QPEL_EXTRA_AFTER 4
67 #define QPEL_EXTRA 7
68 
69 #define EDGE_EMU_BUFFER_STRIDE 80
70 
71 /**
72  * Value of the luma sample at position (x, y) in the 2D array tab.
73  */
74 #define SAMPLE(tab, x, y) ((tab)[(y) * s->sps->width + (x)])
75 #define SAMPLE_CTB(tab, x, y) ((tab)[(y) * min_cb_width + (x)])
76 
77 #define IS_IDR(s) ((s)->nal_unit_type == HEVC_NAL_IDR_W_RADL || (s)->nal_unit_type == HEVC_NAL_IDR_N_LP)
78 #define IS_BLA(s) ((s)->nal_unit_type == HEVC_NAL_BLA_W_RADL || (s)->nal_unit_type == HEVC_NAL_BLA_W_LP || \
79  (s)->nal_unit_type == HEVC_NAL_BLA_N_LP)
80 #define IS_IRAP(s) ((s)->nal_unit_type >= 16 && (s)->nal_unit_type <= 23)
81 
82 enum RPSType {
89 };
90 
141 };
142 
143 enum PartMode {
147  PART_NxN = 3,
152 };
153 
154 enum PredMode {
158 };
159 
161  PRED_L0 = 0,
164 };
165 
166 enum PredFlag {
167  PF_INTRA = 0,
171 };
172 
209 };
210 
211 enum SAOType {
216 };
217 
223 };
224 
225 enum ScanType {
229 };
230 
231 typedef struct RefPicList {
235  int nb_refs;
236 } RefPicList;
237 
238 typedef struct RefPicListTab {
240 } RefPicListTab;
241 
242 typedef struct CodingUnit {
243  int x;
244  int y;
245 
246  enum PredMode pred_mode; ///< PredMode
247  enum PartMode part_mode; ///< PartMode
248 
249  // Inferred parameters
250  uint8_t intra_split_flag; ///< IntraSplitFlag
251  uint8_t max_trafo_depth; ///< MaxTrafoDepth
253 } CodingUnit;
254 
255 typedef struct Mv {
256  int16_t x; ///< horizontal component of motion vector
257  int16_t y; ///< vertical component of motion vector
258 } Mv;
259 
260 typedef struct MvField {
262  int8_t ref_idx[2];
263  int8_t pred_flag;
264 } MvField;
265 
266 typedef struct NeighbourAvailable {
269  int cand_up;
274 
275 typedef struct PredictionUnit {
276  int mpm_idx;
284 
285 typedef struct TransformUnit {
287 
289 
290  // Inferred parameters;
299 } TransformUnit;
300 
301 typedef struct DBParams {
304 } DBParams;
305 
306 #define HEVC_FRAME_FLAG_OUTPUT (1 << 0)
307 #define HEVC_FRAME_FLAG_SHORT_REF (1 << 1)
308 #define HEVC_FRAME_FLAG_LONG_REF (1 << 2)
309 #define HEVC_FRAME_FLAG_BUMPING (1 << 3)
310 
311 typedef struct HEVCFrame {
318  int poc;
320 
324 
327 
328  /**
329  * A sequence counter, so that old frames are output first
330  * after a POC reset
331  */
332  uint16_t sequence;
333 
334  /**
335  * A combination of HEVC_FRAME_FLAG_*
336  */
338 } HEVCFrame;
339 
340 typedef struct HEVCLocalContext {
342 
344 
346 
349 
350  int8_t qp_y;
351  int8_t curr_qp_y;
352 
353  int qPy_pred;
354 
356 
363  /* +7 is for subpixel interpolation, *2 for high bit depths */
365  /* The extended size between the new edge emu buffer is abused by SAO */
368 
369  int ct_depth;
373 
374 #define BOUNDARY_LEFT_SLICE (1 << 0)
375 #define BOUNDARY_LEFT_TILE (1 << 1)
376 #define BOUNDARY_UPPER_SLICE (1 << 2)
377 #define BOUNDARY_UPPER_TILE (1 << 3)
378  /* properties of the boundary of the current CTB for the purposes
379  * of the deblocking filter */
382 
383 typedef struct HEVCContext {
384  const AVClass *c; // needed by private avoptions
386 
388 
391 
394 
395  int width;
396  int height;
397 
399 
400  /** 1 if the independent slice segment header was successfully parsed */
402 
407 
410  struct AVMD5 *md5_ctx;
411 
414 
415  ///< candidate references for the current frame
417 
422  int temporal_id; ///< temporal_id_plus1 - 1
425  int poc;
426  int pocTid0;
427  int slice_idx; ///< number of the slice being currently decoded
428  int eos; ///< current packet contains an EOS/EOB NAL
429  int last_eos; ///< last packet contains an EOS/EOB NAL
430  int max_ra;
431  int bs_width;
433  int overlap;
434 
437 
442  int8_t *qp_y_tab;
445 
447 
448  // CU
451  // PU
453 
454  uint8_t *cbf_luma; // cbf_luma of colocated TU
456 
457  // CTB-level flags affecting loop filter operation
459 
460  /** used on BE to byteswap the lines for checksumming */
463 
464  /**
465  * Sequence counters for decoded and output frames, so that old
466  * frames are output first after a POC reset
467  */
468  uint16_t seq_decode;
469  uint16_t seq_output;
470 
473 
474  const uint8_t *data;
475 
477  // type of the first VCL NAL of the current frame
479 
481  int is_nalff; ///< this flag is != 0 if bitstream is encapsulated
482  ///< as a format defined in 14496-15
484 
485  int nal_length_size; ///< Number of bytes used for nal length (1, 2 or 4)
487 } HEVCContext;
488 
489 /**
490  * Mark all frames in DPB as unused for reference.
491  */
493 
494 /**
495  * Drop all frames currently in DPB.
496  */
498 
500  int x0, int y0);
501 
502 /**
503  * Construct the reference picture sets for the current frame.
504  */
506 
507 /**
508  * Construct the reference picture list(s) for the current slice.
509  */
511 
512 void ff_hevc_save_states(HEVCContext *s, int ctb_addr_ts);
513 int ff_hevc_cabac_init(HEVCContext *s, int ctb_addr_ts);
522 int ff_hevc_skip_flag_decode(HEVCContext *s, int x0, int y0,
523  int x_cb, int y_cb);
526  int x0, int y0);
527 int ff_hevc_part_mode_decode(HEVCContext *s, int log2_cb_size);
535 int ff_hevc_inter_pred_idc_decode(HEVCContext *s, int nPbW, int nPbH);
536 int ff_hevc_ref_idx_lx_decode(HEVCContext *s, int num_ref_idx_lx);
539 int ff_hevc_split_transform_flag_decode(HEVCContext *s, int log2_trafo_size);
540 int ff_hevc_cbf_cb_cr_decode(HEVCContext *s, int trafo_depth);
541 int ff_hevc_cbf_luma_decode(HEVCContext *s, int trafo_depth);
544 
545 /**
546  * Get the number of candidate references for the current frame.
547  */
549 
550 int ff_hevc_set_new_ref(HEVCContext *s, AVFrame **frame, int poc);
551 
553 {
554  switch (type) {
555  case HEVC_NAL_TRAIL_N:
556  case HEVC_NAL_TSA_N:
557  case HEVC_NAL_STSA_N:
558  case HEVC_NAL_RADL_N:
559  case HEVC_NAL_RASL_N:
560  case HEVC_NAL_VCL_N10:
561  case HEVC_NAL_VCL_N12:
562  case HEVC_NAL_VCL_N14:
563  return 1;
564  break;
565  default: break;
566  }
567  return 0;
568 }
569 
570 /**
571  * Find next frame in output order and put a reference to it in frame.
572  * @return 1 if a frame was output, 0 otherwise
573  */
575 
577 
579 
580 void ff_hevc_set_neighbour_available(HEVCContext *s, int x0, int y0,
581  int nPbW, int nPbH);
582 void ff_hevc_luma_mv_merge_mode(HEVCContext *s, int x0, int y0,
583  int nPbW, int nPbH, int log2_cb_size,
584  int part_idx, int merge_idx, MvField *mv);
585 void ff_hevc_luma_mv_mvp_mode(HEVCContext *s, int x0, int y0,
586  int nPbW, int nPbH, int log2_cb_size,
587  int part_idx, int merge_idx,
588  MvField *mv, int mvp_lx_flag, int LX);
589 void ff_hevc_set_qPy(HEVCContext *s, int xBase, int yBase,
590  int log2_cb_size);
592  int log2_trafo_size);
597 void ff_hevc_hls_filter(HEVCContext *s, int x, int y, int ctb_size);
598 void ff_hevc_hls_filters(HEVCContext *s, int x_ctb, int y_ctb, int ctb_size);
599 void ff_hevc_hls_residual_coding(HEVCContext *s, int x0, int y0,
600  int log2_trafo_size, enum ScanType scan_idx,
601  int c_idx);
602 
603 void ff_hevc_hls_mvd_coding(HEVCContext *s, int x0, int y0, int log2_cb_size);
604 
605 extern const uint8_t ff_hevc_qpel_extra_before[4];
606 extern const uint8_t ff_hevc_qpel_extra_after[4];
607 extern const uint8_t ff_hevc_qpel_extra[4];
608 
609 #endif /* AVCODEC_HEVCDEC_H */
HEVCLocalContext::na
NeighbourAvailable na
Definition: hevcdec.h:372
HEVCContext::seq_decode
uint16_t seq_decode
Sequence counters for decoded and output frames, so that old frames are output first after a POC rese...
Definition: hevcdec.h:468
HEVCContext::temporal_id
int temporal_id
temporal_id_plus1 - 1
Definition: hevcdec.h:422
HEVC_NAL_RADL_N
@ HEVC_NAL_RADL_N
Definition: hevc.h:35
HEVCContext::skip_flag
uint8_t * skip_flag
Definition: hevcdec.h:449
bswapdsp.h
DBParams
Definition: hevcdec.h:301
HEVCContext::filter_slice_edges
uint8_t * filter_slice_edges
Definition: hevcdec.h:458
SAO_TYPE_IDX
@ SAO_TYPE_IDX
Definition: hevcdec.h:93
HEVCLocalContext
Definition: hevcdec.h:340
HEVCFrame::flags
uint8_t flags
A combination of HEVC_FRAME_FLAG_*.
Definition: hevcdec.h:337
ff_hevc_hls_filters
void ff_hevc_hls_filters(HEVCContext *s, int x_ctb, int y_ctb, int ctb_size)
Definition: hevc_filter.c:878
HEVCFrame::tf
ThreadFrame tf
Definition: hevcdec.h:313
HEVCFrame::hwaccel_priv_buf
AVBufferRef * hwaccel_priv_buf
Definition: hevcdec.h:325
INTRA_ANGULAR_28
@ INTRA_ANGULAR_28
Definition: hevcdec.h:202
ff_hevc_res_scale_sign_flag
int ff_hevc_res_scale_sign_flag(HEVCContext *s, int idx)
Definition: hevc_cabac.c:905
SPLIT_CODING_UNIT_FLAG
@ SPLIT_CODING_UNIT_FLAG
Definition: hevcdec.h:99
h2645_parse.h
LT_FOLL
@ LT_FOLL
Definition: hevcdec.h:87
HEVCContext::seq_output
uint16_t seq_output
Definition: hevcdec.h:469
SAO_EO_45D
@ SAO_EO_45D
Definition: hevcdec.h:222
cabac.h
HEVCContext::nuh_layer_id
int nuh_layer_id
Definition: hevcdec.h:486
INTRA_ANGULAR_29
@ INTRA_ANGULAR_29
Definition: hevcdec.h:203
MPM_IDX
@ MPM_IDX
Definition: hevcdec.h:107
ff_hevc_bump_frame
void ff_hevc_bump_frame(HEVCContext *s)
Definition: hevc_refs.c:233
PART_NxN
@ PART_NxN
Definition: hevcdec.h:147
INTRA_ANGULAR_30
@ INTRA_ANGULAR_30
Definition: hevcdec.h:204
INTRA_ANGULAR_34
@ INTRA_ANGULAR_34
Definition: hevcdec.h:208
INTRA_ANGULAR_27
@ INTRA_ANGULAR_27
Definition: hevcdec.h:201
SAO_APPLIED
@ SAO_APPLIED
Definition: hevcdec.h:215
AVBufferPool
The buffer pool.
Definition: buffer_internal.h:76
SAO_BAND
@ SAO_BAND
Definition: hevcdec.h:213
SAO_BAND_POSITION
@ SAO_BAND_POSITION
Definition: hevcdec.h:95
INTRA_ANGULAR_2
@ INTRA_ANGULAR_2
Definition: hevcdec.h:176
HEVCContext::slice_initialized
uint8_t slice_initialized
1 if the independent slice segment header was successfully parsed
Definition: hevcdec.h:401
HEVCLocalContext::ctb_up_flag
uint8_t ctb_up_flag
Definition: hevcdec.h:358
CodingUnit
Definition: hevcdec.h:242
mv
static const int8_t mv[256][2]
Definition: 4xm.c:77
SAO_OFFSET_ABS
@ SAO_OFFSET_ABS
Definition: hevcdec.h:96
HEVC_NAL_STSA_N
@ HEVC_NAL_STSA_N
Definition: hevc.h:33
PART_2NxnU
@ PART_2NxnU
Definition: hevcdec.h:148
ff_hevc_inter_pred_idc_decode
int ff_hevc_inter_pred_idc_decode(HEVCContext *s, int nPbW, int nPbH)
Definition: hevc_cabac.c:797
HEVCContext::md5_ctx
struct AVMD5 * md5_ctx
Definition: hevcdec.h:410
HEVCContext::deblock
DBParams * deblock
Definition: hevcdec.h:420
ff_hevc_flush_dpb
void ff_hevc_flush_dpb(HEVCContext *s)
Drop all frames currently in DPB.
Definition: hevc_refs.c:75
AVFrame
This structure describes decoded (raw) audio or video data.
Definition: frame.h:295
HEVCFrame::tab_mvf
MvField * tab_mvf
Definition: hevcdec.h:314
TransformUnit::cu_qp_delta
int cu_qp_delta
Definition: hevcdec.h:286
ScanType
ScanType
Definition: hevcdec.h:225
HEVC_NAL_TSA_N
@ HEVC_NAL_TSA_N
Definition: hevc.h:31
HEVCContext::sList
struct HEVCContext * sList[MAX_NB_THREADS]
Definition: hevcdec.h:387
HEVCFrame::hwaccel_picture_private
void * hwaccel_picture_private
Definition: hevcdec.h:326
NeighbourAvailable::cand_left
int cand_left
Definition: hevcdec.h:268
NeighbourAvailable::cand_up
int cand_up
Definition: hevcdec.h:269
internal.h
ff_hevc_qpel_extra_before
const uint8_t ff_hevc_qpel_extra_before[4]
INTRA_DC
@ INTRA_DC
Definition: hevcdec.h:175
HEVCContext::no_rasl_output_flag
int no_rasl_output_flag
Definition: hevcdec.h:436
LAST_SIGNIFICANT_COEFF_X_PREFIX
@ LAST_SIGNIFICANT_COEFF_X_PREFIX
Definition: hevcdec.h:127
NeighbourAvailable::cand_up_right
int cand_up_right
Definition: hevcdec.h:271
Mv::y
int16_t y
vertical component of motion vector
Definition: hevcdec.h:257
CU_CHROMA_QP_OFFSET_FLAG
@ CU_CHROMA_QP_OFFSET_FLAG
Definition: hevcdec.h:139
HEVCContext::checksum_buf_size
int checksum_buf_size
Definition: hevcdec.h:462
SAO_EDGE
@ SAO_EDGE
Definition: hevcdec.h:214
atomic_int
intptr_t atomic_int
Definition: stdatomic.h:55
MvField::mv
Mv mv[2]
Definition: hevcdec.h:261
TransformUnit::is_cu_qp_delta_coded
uint8_t is_cu_qp_delta_coded
Definition: hevcdec.h:294
HEVC_NAL_RASL_N
@ HEVC_NAL_RASL_N
Definition: hevc.h:37
MODE_INTRA
@ MODE_INTRA
Definition: hevcdec.h:156
HEVCContext::output_frame
AVFrame * output_frame
Definition: hevcdec.h:404
HEVCContext::sao_pixel_buffer_h
uint8_t * sao_pixel_buffer_h[3]
Definition: hevcdec.h:405
HEVCContext::data
const uint8_t * data
Definition: hevcdec.h:474
HEVCLocalContext::ctb_up_left_flag
uint8_t ctb_up_left_flag
Definition: hevcdec.h:360
HEVCContext::bdsp
BswapDSPContext bdsp
Definition: hevcdec.h:441
ff_hevc_rem_intra_luma_pred_mode_decode
int ff_hevc_rem_intra_luma_pred_mode_decode(HEVCContext *s)
Definition: hevc_cabac.c:760
DPB
Decoded Picture Buffer (DPB).
Definition: vaapi_h264.c:82
INTER_PRED_IDC
@ INTER_PRED_IDC
Definition: hevcdec.h:112
HEVCContext::checksum_buf
uint8_t * checksum_buf
used on BE to byteswap the lines for checksumming
Definition: hevcdec.h:461
INTRA_ANGULAR_9
@ INTRA_ANGULAR_9
Definition: hevcdec.h:183
RefPicList
Definition: hevcdec.h:231
CBF_CB_CR
@ CBF_CB_CR
Definition: hevcdec.h:123
thread.h
ff_hevc_output_frame
int ff_hevc_output_frame(HEVCContext *s, AVFrame *frame, int flush)
Find next frame in output order and put a reference to it in frame.
Definition: hevc_refs.c:174
PF_INTRA
@ PF_INTRA
Definition: hevcdec.h:167
INTRA_ANGULAR_10
@ INTRA_ANGULAR_10
Definition: hevcdec.h:184
COEFF_ABS_LEVEL_GREATER2_FLAG
@ COEFF_ABS_LEVEL_GREATER2_FLAG
Definition: hevcdec.h:134
ff_hevc_set_qPy
void ff_hevc_set_qPy(HEVCContext *s, int xBase, int yBase, int log2_cb_size)
Definition: hevc_filter.c:121
MODE_SKIP
@ MODE_SKIP
Definition: hevcdec.h:157
HEVCLocalContext::end_of_tiles_x
int end_of_tiles_x
Definition: hevcdec.h:361
ff_hevc_save_states
void ff_hevc_save_states(HEVCContext *s, int ctb_addr_ts)
Definition: hevc_cabac.c:450
CodingUnit::x
int x
Definition: hevcdec.h:243
CBF_LUMA
@ CBF_LUMA
Definition: hevcdec.h:122
SAOType
SAOType
Definition: hevcdec.h:211
PART_2Nx2N
@ PART_2Nx2N
Definition: hevcdec.h:144
ff_hevc_sao_band_position_decode
int ff_hevc_sao_band_position_decode(HEVCContext *s)
Definition: hevc_cabac.c:576
HEVCLocalContext::ctb_up_right_flag
uint8_t ctb_up_right_flag
Definition: hevcdec.h:359
SAO_EO_135D
@ SAO_EO_135D
Definition: hevcdec.h:221
PRED_BI
@ PRED_BI
Definition: hevcdec.h:163
HEVCContext::frame
AVFrame * frame
Definition: hevcdec.h:403
MVP_LX_FLAG
@ MVP_LX_FLAG
Definition: hevcdec.h:119
INTRA_ANGULAR_3
@ INTRA_ANGULAR_3
Definition: hevcdec.h:177
PredictionUnit::intra_pred_mode_c
uint8_t intra_pred_mode_c[4]
Definition: hevcdec.h:281
PredictionUnit
Definition: hevcdec.h:275
COEFF_ABS_LEVEL_REMAINING
@ COEFF_ABS_LEVEL_REMAINING
Definition: hevcdec.h:135
InterPredIdc
InterPredIdc
Definition: hevcdec.h:160
MODE_INTER
@ MODE_INTER
Definition: hevcdec.h:155
GetBitContext
Definition: get_bits.h:61
HEVCLocalContext::pu
PredictionUnit pu
Definition: hevcdec.h:371
HEVCContext::is_decoded
int is_decoded
Definition: hevcdec.h:435
TransformUnit::res_scale_val
int res_scale_val
Definition: hevcdec.h:288
LOG2_RES_SCALE_ABS
@ LOG2_RES_SCALE_ABS
Definition: hevcdec.h:137
type
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
Definition: writing_filters.txt:86
ff_hevc_cbf_luma_decode
int ff_hevc_cbf_luma_decode(HEVCContext *s, int trafo_depth)
Definition: hevc_cabac.c:876
RefPicList::nb_refs
int nb_refs
Definition: hevcdec.h:235
MERGE_IDX
@ MERGE_IDX
Definition: hevcdec.h:111
HEVCContext::bs_width
int bs_width
Definition: hevcdec.h:431
AVMD5
Definition: md5.c:40
ff_hevc_log2_res_scale_abs
int ff_hevc_log2_res_scale_abs(HEVCContext *s, int idx)
Definition: hevc_cabac.c:896
MvField::ref_idx
int8_t ref_idx[2]
Definition: hevcdec.h:262
HEVCContext::apply_defdispwin
int apply_defdispwin
Definition: hevcdec.h:483
HEVCContext::cabac_state
uint8_t * cabac_state
Definition: hevcdec.h:398
SKIP_FLAG
@ SKIP_FLAG
Definition: hevcdec.h:101
TransformUnit::intra_pred_mode
int intra_pred_mode
Definition: hevcdec.h:291
ff_hevc_cu_chroma_qp_offset_idx
int ff_hevc_cu_chroma_qp_offset_idx(HEVCContext *s)
Definition: hevc_cabac.c:670
hevcpred.h
DBParams::beta_offset
int beta_offset
Definition: hevcdec.h:302
ff_hevc_mpm_idx_decode
int ff_hevc_mpm_idx_decode(HEVCContext *s)
Definition: hevc_cabac.c:752
HEVCLocalContext::curr_qp_y
int8_t curr_qp_y
Definition: hevcdec.h:351
DBParams::tc_offset
int tc_offset
Definition: hevcdec.h:303
INTRA_ANGULAR_23
@ INTRA_ANGULAR_23
Definition: hevcdec.h:197
HEVCContext::tab_ipm
uint8_t * tab_ipm
Definition: hevcdec.h:452
MVD_SIGN_FLAG
@ MVD_SIGN_FLAG
Definition: hevcdec.h:118
HEVCContext::max_ra
int max_ra
Definition: hevcdec.h:430
s
#define s(width, name)
Definition: cbs_vp9.c:257
MERGE_FLAG
@ MERGE_FLAG
Definition: hevcdec.h:110
NeighbourAvailable::cand_bottom_left
int cand_bottom_left
Definition: hevcdec.h:267
HEVCContext::c
const AVClass * c
Definition: hevcdec.h:384
HEVCContext::rps
RefPicList rps[5]
Definition: hevcdec.h:416
SAO_NOT_APPLIED
@ SAO_NOT_APPLIED
Definition: hevcdec.h:212
HEVCContext::last_eos
int last_eos
last packet contains an EOS/EOB NAL
Definition: hevcdec.h:429
PREV_INTRA_LUMA_PRED_FLAG
@ PREV_INTRA_LUMA_PRED_FLAG
Definition: hevcdec.h:106
HEVC_NAL_VCL_N14
@ HEVC_NAL_VCL_N14
Definition: hevc.h:43
INTRA_ANGULAR_14
@ INTRA_ANGULAR_14
Definition: hevcdec.h:188
HEVC_MAX_REFS
@ HEVC_MAX_REFS
Definition: hevc.h:119
HEVC_NAL_VCL_N12
@ HEVC_NAL_VCL_N12
Definition: hevc.h:41
HEVCContext::slice_idx
int slice_idx
number of the slice being currently decoded
Definition: hevcdec.h:427
ff_hevc_nal_is_nonref
static av_always_inline int ff_hevc_nal_is_nonref(enum HEVCNALUnitType type)
Definition: hevcdec.h:552
ff_hevc_set_new_ref
int ff_hevc_set_new_ref(HEVCContext *s, AVFrame **frame, int poc)
Definition: hevc_refs.c:135
HEVCSEI
Definition: hevc_sei.h:109
ff_hevc_sao_offset_abs_decode
int ff_hevc_sao_offset_abs_decode(HEVCContext *s)
Definition: hevc_cabac.c:586
ff_hevc_frame_rps
int ff_hevc_frame_rps(HEVCContext *s)
Construct the reference picture sets for the current frame.
Definition: hevc_refs.c:451
INTRA_ANGULAR_12
@ INTRA_ANGULAR_12
Definition: hevcdec.h:186
ff_hevc_qpel_extra
const uint8_t ff_hevc_qpel_extra[4]
HEVCPredContext
Definition: hevcpred.h:31
RPSType
RPSType
Definition: hevcdec.h:82
get_bits.h
INTRA_ANGULAR_18
@ INTRA_ANGULAR_18
Definition: hevcdec.h:192
ff_hevc_hls_mvd_coding
void ff_hevc_hls_mvd_coding(HEVCContext *s, int x0, int y0, int log2_cb_size)
Definition: hevc_cabac.c:1534
RefPicList::ref
struct HEVCFrame * ref[HEVC_MAX_REFS]
Definition: hevcdec.h:232
ABS_MVD_MINUS2
@ ABS_MVD_MINUS2
Definition: hevcdec.h:117
HEVCContext::height
int height
Definition: hevcdec.h:396
HEVCContext::ref
HEVCFrame * ref
Definition: hevcdec.h:423
NeighbourAvailable::cand_up_right_sap
int cand_up_right_sap
Definition: hevcdec.h:272
INTRA_ANGULAR_26
@ INTRA_ANGULAR_26
Definition: hevcdec.h:200
CodingUnit::max_trafo_depth
uint8_t max_trafo_depth
MaxTrafoDepth.
Definition: hevcdec.h:251
int32_t
int32_t
Definition: audio_convert.c:194
HEVC_NAL_VCL_N10
@ HEVC_NAL_VCL_N10
Definition: hevc.h:39
HEVCContext::nal_unit_type
enum HEVCNALUnitType nal_unit_type
Definition: hevcdec.h:421
PART_MODE
@ PART_MODE
Definition: hevcdec.h:104
hevcdsp.h
ff_hevc_sao_eo_class_decode
int ff_hevc_sao_eo_class_decode(HEVCContext *s)
Definition: hevc_cabac.c:601
ff_hevc_part_mode_decode
int ff_hevc_part_mode_decode(HEVCContext *s, int log2_cb_size)
Definition: hevc_cabac.c:705
HEVCFrame::refPicList
RefPicList * refPicList
Definition: hevcdec.h:315
ff_hevc_unref_frame
void ff_hevc_unref_frame(HEVCContext *s, HEVCFrame *frame, int flags)
Definition: hevc_refs.c:32
PredictionUnit::rem_intra_luma_pred_mode
int rem_intra_luma_pred_mode
Definition: hevcdec.h:277
INTRA_ANGULAR_11
@ INTRA_ANGULAR_11
Definition: hevcdec.h:185
HEVCContext::sei
HEVCSEI sei
Definition: hevcdec.h:409
PRED_MODE_FLAG
@ PRED_MODE_FLAG
Definition: hevcdec.h:103
HEVCContext::enable_parallel_tiles
int enable_parallel_tiles
Definition: hevcdec.h:471
AVClass
Describe the class of an AVClass context structure.
Definition: log.h:67
INTRA_ANGULAR_15
@ INTRA_ANGULAR_15
Definition: hevcdec.h:189
flush
static void flush(AVCodecContext *avctx)
Definition: aacdec_template.c:500
HEVCContext::width
int width
Definition: hevcdec.h:395
INTRA_ANGULAR_22
@ INTRA_ANGULAR_22
Definition: hevcdec.h:196
HEVCLocalContext::tmp
int16_t tmp[MAX_PB_SIZE *MAX_PB_SIZE]
Definition: hevcdec.h:367
ff_hevc_merge_flag_decode
int ff_hevc_merge_flag_decode(HEVCContext *s)
Definition: hevc_cabac.c:792
EXPLICIT_RDPCM_FLAG
@ EXPLICIT_RDPCM_FLAG
Definition: hevcdec.h:125
HEVCContext::qp_y_tab
int8_t * qp_y_tab
Definition: hevcdec.h:442
CodingUnit::cu_transquant_bypass_flag
uint8_t cu_transquant_bypass_flag
Definition: hevcdec.h:252
COEFF_ABS_LEVEL_GREATER1_FLAG
@ COEFF_ABS_LEVEL_GREATER1_FLAG
Definition: hevcdec.h:133
HEVCLocalContext::first_qp_group
uint8_t first_qp_group
Definition: hevcdec.h:345
HEVCContext::cbf_luma
uint8_t * cbf_luma
Definition: hevcdec.h:454
HEVCFrame::rpl_tab
RefPicListTab ** rpl_tab
Definition: hevcdec.h:316
HEVCContext::threads_type
uint8_t threads_type
Definition: hevcdec.h:392
ff_hevc_cu_qp_delta_sign_flag
int ff_hevc_cu_qp_delta_sign_flag(HEVCContext *s)
Definition: hevc_cabac.c:660
PART_Nx2N
@ PART_Nx2N
Definition: hevcdec.h:146
RefPicListTab
Definition: hevcdec.h:238
HEVCContext::is_nalff
int is_nalff
this flag is != 0 if bitstream is encapsulated as a format defined in 14496-15
Definition: hevcdec.h:481
Mv::x
int16_t x
horizontal component of motion vector
Definition: hevcdec.h:256
INTRA_ANGULAR_5
@ INTRA_ANGULAR_5
Definition: hevcdec.h:179
PF_BI
@ PF_BI
Definition: hevcdec.h:170
HEVCContext::poc
int poc
Definition: hevcdec.h:425
INTRA_ANGULAR_16
@ INTRA_ANGULAR_16
Definition: hevcdec.h:190
SCAN_HORIZ
@ SCAN_HORIZ
Definition: hevcdec.h:227
HEVCContext::rpl_tab_pool
AVBufferPool * rpl_tab_pool
candidate references for the current frame
Definition: hevcdec.h:413
TransformUnit
Definition: hevcdec.h:285
HEVCLocalContext::edge_emu_buffer
uint8_t edge_emu_buffer[(MAX_PB_SIZE+7) *EDGE_EMU_BUFFER_STRIDE *2]
Definition: hevcdec.h:364
ff_hevc_prev_intra_luma_pred_flag_decode
int ff_hevc_prev_intra_luma_pred_flag_decode(HEVCContext *s)
Definition: hevc_cabac.c:747
ff_hevc_get_ref_list
RefPicList * ff_hevc_get_ref_list(HEVCContext *s, HEVCFrame *frame, int x0, int y0)
Definition: hevc_refs.c:57
ff_hevc_luma_mv_merge_mode
void ff_hevc_luma_mv_merge_mode(HEVCContext *s, int x0, int y0, int nPbW, int nPbH, int log2_cb_size, int part_idx, int merge_idx, MvField *mv)
Definition: hevc_mvs.c:479
PART_nLx2N
@ PART_nLx2N
Definition: hevcdec.h:150
ff_hevc_sao_type_idx_decode
int ff_hevc_sao_type_idx_decode(HEVCContext *s)
Definition: hevc_cabac.c:566
HEVCContext::nal_length_size
int nal_length_size
Number of bytes used for nal length (1, 2 or 4)
Definition: hevcdec.h:485
NO_RESIDUAL_DATA_FLAG
@ NO_RESIDUAL_DATA_FLAG
Definition: hevcdec.h:120
ST_FOLL
@ ST_FOLL
Definition: hevcdec.h:85
HEVCContext::bs_height
int bs_height
Definition: hevcdec.h:432
HEVCLocalContext::ctb_left_flag
uint8_t ctb_left_flag
Definition: hevcdec.h:357
HEVCContext::sao
SAOParams * sao
Definition: hevcdec.h:419
INTRA_ANGULAR_17
@ INTRA_ANGULAR_17
Definition: hevcdec.h:191
ff_hevc_mvp_lx_flag_decode
int ff_hevc_mvp_lx_flag_decode(HEVCContext *s)
Definition: hevc_cabac.c:823
HEVCFrame::collocated_ref
struct HEVCFrame * collocated_ref
Definition: hevcdec.h:319
SIGNIFICANT_COEFF_FLAG
@ SIGNIFICANT_COEFF_FLAG
Definition: hevcdec.h:132
SPLIT_TRANSFORM_FLAG
@ SPLIT_TRANSFORM_FLAG
Definition: hevcdec.h:121
INTRA_PLANAR
@ INTRA_PLANAR
Definition: hevcdec.h:174
HEVCLocalContext::cabac_state
uint8_t cabac_state[HEVC_CONTEXTS]
Definition: hevcdec.h:341
HEVCFrame::rpl_buf
AVBufferRef * rpl_buf
Definition: hevcdec.h:323
PART_2NxnD
@ PART_2NxnD
Definition: hevcdec.h:149
HEVCContext::tab_slice_address
int32_t * tab_slice_address
Definition: hevcdec.h:446
PartMode
PartMode
Definition: hevcdec.h:143
SCAN_VERT
@ SCAN_VERT
Definition: hevcdec.h:228
SyntaxElement
SyntaxElement
Definition: hevcdec.h:91
ff_hevc_split_coding_unit_flag_decode
int ff_hevc_split_coding_unit_flag_decode(HEVCContext *s, int ct_depth, int x0, int y0)
Definition: hevc_cabac.c:686
ff_hevc_pcm_flag_decode
int ff_hevc_pcm_flag_decode(HEVCContext *s)
Definition: hevc_cabac.c:742
TransformUnit::chroma_mode_c
int chroma_mode_c
Definition: hevcdec.h:293
CU_QP_DELTA
@ CU_QP_DELTA
Definition: hevcdec.h:102
HEVCContext::pocTid0
int pocTid0
Definition: hevcdec.h:426
MvField
Definition: hevcdec.h:260
buffer.h
PF_L1
@ PF_L1
Definition: hevcdec.h:169
ABS_MVD_GREATER0_FLAG
@ ABS_MVD_GREATER0_FLAG
Definition: hevcdec.h:115
HEVCContext::tab_ct_depth
uint8_t * tab_ct_depth
Definition: hevcdec.h:450
HEVCDSPContext
Definition: hevcdsp.h:45
END_OF_SLICE_FLAG
@ END_OF_SLICE_FLAG
Definition: hevcdec.h:98
HEVCContext::horizontal_bs
uint8_t * horizontal_bs
Definition: hevcdec.h:443
ff_hevc_split_transform_flag_decode
int ff_hevc_split_transform_flag_decode(HEVCContext *s, int log2_trafo_size)
Definition: hevc_cabac.c:866
SIGNIFICANT_COEFF_GROUP_FLAG
@ SIGNIFICANT_COEFF_GROUP_FLAG
Definition: hevcdec.h:131
HEVCContext::ps
HEVCParamSets ps
Definition: hevcdec.h:408
SAO_EO_CLASS
@ SAO_EO_CLASS
Definition: hevcdec.h:94
TransformUnit::cu_qp_offset_cb
int8_t cu_qp_offset_cb
Definition: hevcdec.h:296
HEVCFrame::rpl_tab_buf
AVBufferRef * rpl_tab_buf
Definition: hevcdec.h:322
TRANSFORM_SKIP_FLAG
@ TRANSFORM_SKIP_FLAG
Definition: hevcdec.h:124
CU_TRANSQUANT_BYPASS_FLAG
@ CU_TRANSQUANT_BYPASS_FLAG
Definition: hevcdec.h:100
MvField::pred_flag
int8_t pred_flag
Definition: hevcdec.h:263
HEVCLocalContext::ct_depth
int ct_depth
Definition: hevcdec.h:369
HEVCContext::context_initialized
uint8_t context_initialized
Definition: hevcdec.h:480
INTRA_ANGULAR_7
@ INTRA_ANGULAR_7
Definition: hevcdec.h:181
LAST_SIGNIFICANT_COEFF_Y_SUFFIX
@ LAST_SIGNIFICANT_COEFF_Y_SUFFIX
Definition: hevcdec.h:130
COEFF_SIGN_FLAG
@ COEFF_SIGN_FLAG
Definition: hevcdec.h:136
PART_nRx2N
@ PART_nRx2N
Definition: hevcdec.h:151
DECLARE_ALIGNED
#define DECLARE_ALIGNED(n, t, v)
Definition: mem.h:112
SliceHeader
Definition: hevc_ps.h:48
HEVCFrame::frame
AVFrame * frame
Definition: hevcdec.h:312
HEVCLocalContext::stat_coeff
uint8_t stat_coeff[4]
Definition: hevcdec.h:343
INTRA_ANGULAR_8
@ INTRA_ANGULAR_8
Definition: hevcdec.h:182
HEVCContext::avctx
AVCodecContext * avctx
Definition: hevcdec.h:385
hevc_ps.h
INTRA_ANGULAR_32
@ INTRA_ANGULAR_32
Definition: hevcdec.h:206
INTRA_ANGULAR_21
@ INTRA_ANGULAR_21
Definition: hevcdec.h:195
HEVCFrame
Definition: hevcdec.h:311
NeighbourAvailable::cand_up_left
int cand_up_left
Definition: hevcdec.h:270
INTRA_ANGULAR_6
@ INTRA_ANGULAR_6
Definition: hevcdec.h:180
HEVCLocalContext::gb
GetBitContext gb
Definition: hevcdec.h:347
PCM_FLAG
@ PCM_FLAG
Definition: hevcdec.h:105
REM_INTRA_LUMA_PRED_MODE
@ REM_INTRA_LUMA_PRED_MODE
Definition: hevcdec.h:108
MAX_PB_SIZE
#define MAX_PB_SIZE
Definition: hevcdsp.h:30
HEVCFrame::ctb_count
int ctb_count
Definition: hevcdec.h:317
RefPicList::list
int list[HEVC_MAX_REFS]
Definition: hevcdec.h:233
ff_hevc_luma_mv_mvp_mode
void ff_hevc_luma_mv_mvp_mode(HEVCContext *s, int x0, int y0, int nPbW, int nPbH, int log2_cb_size, int part_idx, int merge_idx, MvField *mv, int mvp_lx_flag, int LX)
Definition: hevc_mvs.c:582
HEVCFrame::sequence
uint16_t sequence
A sequence counter, so that old frames are output first after a POC reset.
Definition: hevcdec.h:332
HEVCContext::pkt
H2645Packet pkt
Definition: hevcdec.h:476
ff_hevc_cu_chroma_qp_offset_flag
int ff_hevc_cu_chroma_qp_offset_flag(HEVCContext *s)
Definition: hevc_cabac.c:665
md5.h
av_always_inline
#define av_always_inline
Definition: attributes.h:43
PF_L0
@ PF_L0
Definition: hevcdec.h:168
REF_IDX_L0
@ REF_IDX_L0
Definition: hevcdec.h:113
EDGE_EMU_BUFFER_STRIDE
#define EDGE_EMU_BUFFER_STRIDE
Definition: hevcdec.h:69
uint8_t
uint8_t
Definition: audio_convert.c:194
INTRA_ANGULAR_19
@ INTRA_ANGULAR_19
Definition: hevcdec.h:193
ff_hevc_skip_flag_decode
int ff_hevc_skip_flag_decode(HEVCContext *s, int x0, int y0, int x_cb, int y_cb)
Definition: hevc_cabac.c:618
ff_hevc_pred_mode_decode
int ff_hevc_pred_mode_decode(HEVCContext *s)
Definition: hevc_cabac.c:681
HEVCLocalContext::qp_y
int8_t qp_y
Definition: hevcdec.h:350
ff_hevc_qpel_extra_after
const uint8_t ff_hevc_qpel_extra_after[4]
HEVCNALUnitType
HEVCNALUnitType
Table 7-1 – NAL unit type codes and NAL unit type classes in T-REC-H.265-201802.
Definition: hevc.h:28
SAO_EO_HORIZ
@ SAO_EO_HORIZ
Definition: hevcdec.h:219
ff_hevc_deblocking_boundary_strengths
void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0, int log2_trafo_size)
Definition: hevc_filter.c:714
HEVCFrame::poc
int poc
Definition: hevcdec.h:318
SAOEOClass
SAOEOClass
Definition: hevcdec.h:218
hevc.h
SAOParams
Definition: hevcdsp.h:32
avcodec.h
HEVCContext::first_nal_type
enum HEVCNALUnitType first_nal_type
Definition: hevcdec.h:478
HEVCContext::overlap
int overlap
Definition: hevcdec.h:433
NeighbourAvailable
Definition: hevcdec.h:266
frame
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
Definition: filter_design.txt:264
PRED_L1
@ PRED_L1
Definition: hevcdec.h:162
PredictionUnit::mvd
Mv mvd
Definition: hevcdec.h:279
IntraPredMode
IntraPredMode
Definition: hevcdec.h:173
ST_CURR_BEF
@ ST_CURR_BEF
Definition: hevcdec.h:83
RES_SCALE_SIGN_FLAG
@ RES_SCALE_SIGN_FLAG
Definition: hevcdec.h:138
HEVCLocalContext::edge_emu_buffer2
uint8_t edge_emu_buffer2[(MAX_PB_SIZE+7) *EDGE_EMU_BUFFER_STRIDE *2]
Definition: hevcdec.h:366
ff_hevc_no_residual_syntax_flag_decode
int ff_hevc_no_residual_syntax_flag_decode(HEVCContext *s)
Definition: hevc_cabac.c:828
ff_hevc_hls_filter
void ff_hevc_hls_filter(HEVCContext *s, int x, int y, int ctb_size)
Definition: hevc_filter.c:842
HEVCContext::HEVClc
HEVCLocalContext * HEVClc
Definition: hevcdec.h:390
HEVCLocalContext::boundary_flags
int boundary_flags
Definition: hevcdec.h:380
ff_hevc_cbf_cb_cr_decode
int ff_hevc_cbf_cb_cr_decode(HEVCContext *s, int trafo_depth)
Definition: hevc_cabac.c:871
HEVC_NAL_TRAIL_N
@ HEVC_NAL_TRAIL_N
Definition: hevc.h:29
LT_CURR
@ LT_CURR
Definition: hevcdec.h:86
AVCodecContext
main external API structure.
Definition: avcodec.h:1565
HEVCContext::threads_number
uint8_t threads_number
Definition: hevcdec.h:393
INTRA_ANGULAR_25
@ INTRA_ANGULAR_25
Definition: hevcdec.h:199
HEVCContext::tab_mvf_pool
AVBufferPool * tab_mvf_pool
Definition: hevcdec.h:412
ThreadFrame
Definition: thread.h:34
PredMode
PredMode
Definition: hevcdec.h:154
ff_hevc_cabac_init
int ff_hevc_cabac_init(HEVCContext *s, int ctb_addr_ts)
Definition: hevc_cabac.c:504
PredictionUnit::merge_flag
uint8_t merge_flag
Definition: hevcdec.h:280
NB_RPS_TYPE
@ NB_RPS_TYPE
Definition: hevcdec.h:88
HEVCContext
Definition: hevcdec.h:383
CodingUnit::pred_mode
enum PredMode pred_mode
PredMode.
Definition: hevcdec.h:246
REF_IDX_L1
@ REF_IDX_L1
Definition: hevcdec.h:114
HEVCLocalContext::qPy_pred
int qPy_pred
Definition: hevcdec.h:353
HEVCFrame::tab_mvf_buf
AVBufferRef * tab_mvf_buf
Definition: hevcdec.h:321
SCAN_DIAG
@ SCAN_DIAG
Definition: hevcdec.h:226
SAO_EO_VERT
@ SAO_EO_VERT
Definition: hevcdec.h:220
ABS_MVD_GREATER1_FLAG
@ ABS_MVD_GREATER1_FLAG
Definition: hevcdec.h:116
ff_hevc_sao_merge_flag_decode
int ff_hevc_sao_merge_flag_decode(HEVCContext *s)
Definition: hevc_cabac.c:561
HEVCLocalContext::tu
TransformUnit tu
Definition: hevcdec.h:355
VideoDSPContext
Definition: videodsp.h:41
CodingUnit::y
int y
Definition: hevcdec.h:244
HEVCContext::vdsp
VideoDSPContext vdsp
Definition: hevcdec.h:440
ff_hevc_set_neighbour_available
void ff_hevc_set_neighbour_available(HEVCContext *s, int x0, int y0, int nPbW, int nPbH)
Definition: hevc_mvs.c:42
INTRA_ANGULAR_24
@ INTRA_ANGULAR_24
Definition: hevcdec.h:198
Mv
Definition: hevcdec.h:255
SAO_OFFSET_SIGN
@ SAO_OFFSET_SIGN
Definition: hevcdec.h:97
PRED_L0
@ PRED_L0
Definition: hevcdec.h:161
AVBufferRef
A reference to a data buffer.
Definition: buffer.h:81
INTRA_ANGULAR_31
@ INTRA_ANGULAR_31
Definition: hevcdec.h:205
ff_hevc_slice_rpl
int ff_hevc_slice_rpl(HEVCContext *s)
Construct the reference picture list(s) for the current slice.
Definition: hevc_refs.c:291
HEVCContext::eos
int eos
current packet contains an EOS/EOB NAL
Definition: hevcdec.h:428
HEVCContext::vertical_bs
uint8_t * vertical_bs
Definition: hevcdec.h:444
ST_CURR_AFT
@ ST_CURR_AFT
Definition: hevcdec.h:84
CodingUnit::part_mode
enum PartMode part_mode
PartMode.
Definition: hevcdec.h:247
INTRA_ANGULAR_4
@ INTRA_ANGULAR_4
Definition: hevcdec.h:178
ff_hevc_ref_idx_lx_decode
int ff_hevc_ref_idx_lx_decode(HEVCContext *s, int num_ref_idx_lx)
Definition: hevc_cabac.c:807
HEVCContext::HEVClcList
HEVCLocalContext * HEVClcList[MAX_NB_THREADS]
Definition: hevcdec.h:389
PredFlag
PredFlag
Definition: hevcdec.h:166
TransformUnit::cross_pf
uint8_t cross_pf
Definition: hevcdec.h:298
HEVCLocalContext::cu
CodingUnit cu
Definition: hevcdec.h:370
ff_hevc_sao_offset_sign_decode
int ff_hevc_sao_offset_sign_decode(HEVCContext *s)
Definition: hevc_cabac.c:596
HEVCContext::sao_pixel_buffer_v
uint8_t * sao_pixel_buffer_v[3]
Definition: hevcdec.h:406
videodsp.h
ff_hevc_merge_idx_decode
int ff_hevc_merge_idx_decode(HEVCContext *s)
Definition: hevc_cabac.c:781
HEVCContext::sh
SliceHeader sh
Definition: hevcdec.h:418
ff_hevc_hls_residual_coding
void ff_hevc_hls_residual_coding(HEVCContext *s, int x0, int y0, int log2_trafo_size, enum ScanType scan_idx, int c_idx)
Definition: hevc_cabac.c:1024
PredictionUnit::mpm_idx
int mpm_idx
Definition: hevcdec.h:276
flags
#define flags(name, subs,...)
Definition: cbs_av1.c:565
LAST_SIGNIFICANT_COEFF_Y_PREFIX
@ LAST_SIGNIFICANT_COEFF_Y_PREFIX
Definition: hevcdec.h:128
CU_CHROMA_QP_OFFSET_IDX
@ CU_CHROMA_QP_OFFSET_IDX
Definition: hevcdec.h:140
HEVCContext::wpp_err
atomic_int wpp_err
Definition: hevcdec.h:472
INTRA_ANGULAR_33
@ INTRA_ANGULAR_33
Definition: hevcdec.h:207
ff_hevc_frame_nb_refs
int ff_hevc_frame_nb_refs(const HEVCContext *s)
Get the number of candidate references for the current frame.
Definition: hevc_refs.c:511
ff_hevc_cu_qp_delta_abs
int ff_hevc_cu_qp_delta_abs(HEVCContext *s)
Definition: hevc_cabac.c:633
RefPicListTab::refPicList
RefPicList refPicList[2]
Definition: hevcdec.h:239
PredictionUnit::chroma_mode_c
uint8_t chroma_mode_c[4]
Definition: hevcdec.h:282
PredictionUnit::intra_pred_mode
uint8_t intra_pred_mode[4]
Definition: hevcdec.h:278
HEVCContext::hpc
HEVCPredContext hpc
Definition: hevcdec.h:438
BswapDSPContext
Definition: bswapdsp.h:24
TransformUnit::is_cu_chroma_qp_offset_coded
uint8_t is_cu_chroma_qp_offset_coded
Definition: hevcdec.h:295
ff_hevc_end_of_slice_flag_decode
int ff_hevc_end_of_slice_flag_decode(HEVCContext *s)
Definition: hevc_cabac.c:608
ff_hevc_intra_chroma_pred_mode_decode
int ff_hevc_intra_chroma_pred_mode_decode(HEVCContext *s)
Definition: hevc_cabac.c:770
MAX_NB_THREADS
#define MAX_NB_THREADS
Definition: hevcdec.h:45
RefPicList::isLongTerm
int isLongTerm[HEVC_MAX_REFS]
Definition: hevcdec.h:234
HEVCContext::is_pcm
uint8_t * is_pcm
Definition: hevcdec.h:455
TransformUnit::intra_pred_mode_c
int intra_pred_mode_c
Definition: hevcdec.h:292
HEVCContext::hevcdsp
HEVCDSPContext hevcdsp
Definition: hevcdec.h:439
INTRA_ANGULAR_20
@ INTRA_ANGULAR_20
Definition: hevcdec.h:194
INTRA_ANGULAR_13
@ INTRA_ANGULAR_13
Definition: hevcdec.h:187
HEVCLocalContext::end_of_tiles_y
int end_of_tiles_y
Definition: hevcdec.h:362
INTRA_CHROMA_PRED_MODE
@ INTRA_CHROMA_PRED_MODE
Definition: hevcdec.h:109
H2645Packet
Definition: h2645_parse.h:76
CodingUnit::intra_split_flag
uint8_t intra_split_flag
IntraSplitFlag.
Definition: hevcdec.h:250
hevc_sei.h
ff_hevc_clear_refs
void ff_hevc_clear_refs(HEVCContext *s)
Mark all frames in DPB as unused for reference.
Definition: hevc_refs.c:66
LAST_SIGNIFICANT_COEFF_X_SUFFIX
@ LAST_SIGNIFICANT_COEFF_X_SUFFIX
Definition: hevcdec.h:129
ff_hevc_cu_transquant_bypass_flag_decode
int ff_hevc_cu_transquant_bypass_flag_decode(HEVCContext *s)
Definition: hevc_cabac.c:613
CABACContext
Definition: cabac.h:43
PART_2NxN
@ PART_2NxN
Definition: hevcdec.h:145
EXPLICIT_RDPCM_DIR_FLAG
@ EXPLICIT_RDPCM_DIR_FLAG
Definition: hevcdec.h:126
HEVCLocalContext::cc
CABACContext cc
Definition: hevcdec.h:348
TransformUnit::cu_qp_offset_cr
int8_t cu_qp_offset_cr
Definition: hevcdec.h:297
HEVCParamSets
Definition: hevc_ps.h:399
HEVC_CONTEXTS
#define HEVC_CONTEXTS
Definition: hevcdec.h:55
SAO_MERGE_FLAG
@ SAO_MERGE_FLAG
Definition: hevcdec.h:92