Libav
|
#include "libavutil/attributes.h"
#include "libavutil/common.h"
#include "libavutil/display.h"
#include "libavutil/internal.h"
#include "libavutil/md5.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/stereo3d.h"
#include "bswapdsp.h"
#include "bytestream.h"
#include "cabac_functions.h"
#include "golomb.h"
#include "hevc.h"
Go to the source code of this file.
Macros | |
#define | CTB(tab, x, y) ((tab)[(y) * s->sps->ctb_width + (x)]) |
#define | SET_SAO(elem, value) |
#define | GET_COORD(offset, n) |
#define | SUBDIVIDE(x, y, idx) |
#define | POS(c_idx, x, y) |
#define | SUBDIVIDE(x, y) |
#define | STARTCODE_TEST |
#define | OFFSET(x) offsetof(HEVCContext, x) |
#define | PAR (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM) |
Functions | |
static void | pic_arrays_free (HEVCContext *s) |
NOTE: Each function hls_foo correspond to the function foo in the specification (HLS stands for High Level Syntax). More... | |
static int | pic_arrays_init (HEVCContext *s, const HEVCSPS *sps) |
static void | pred_weight_table (HEVCContext *s, GetBitContext *gb) |
static int | decode_lt_rps (HEVCContext *s, LongTermRPS *rps, GetBitContext *gb) |
static int | set_sps (HEVCContext *s, const HEVCSPS *sps) |
static int | hls_slice_header (HEVCContext *s) |
static void | hls_sao_param (HEVCContext *s, int rx, int ry) |
static void | hls_residual_coding (HEVCContext *s, int x0, int y0, int log2_trafo_size, enum ScanType scan_idx, int c_idx) |
static int | hls_transform_unit (HEVCContext *s, int x0, int y0, int xBase, int yBase, int cb_xBase, int cb_yBase, int log2_cb_size, int log2_trafo_size, int trafo_depth, int blk_idx, int cbf_luma, int cbf_cb, int cbf_cr) |
static void | set_deblocking_bypass (HEVCContext *s, int x0, int y0, int log2_cb_size) |
static int | hls_transform_tree (HEVCContext *s, int x0, int y0, int xBase, int yBase, int cb_xBase, int cb_yBase, int log2_cb_size, int log2_trafo_size, int trafo_depth, int blk_idx, int cbf_cb, int cbf_cr) |
static int | hls_pcm_sample (HEVCContext *s, int x0, int y0, int log2_cb_size) |
static void | hls_mvd_coding (HEVCContext *s, int x0, int y0, int log2_cb_size) |
static void | luma_mc (HEVCContext *s, int16_t *dst, ptrdiff_t dststride, AVFrame *ref, const Mv *mv, int x_off, int y_off, int block_w, int block_h) |
8.5.3.2.2.1 Luma sample interpolation process More... | |
static void | chroma_mc (HEVCContext *s, int16_t *dst1, int16_t *dst2, ptrdiff_t dststride, AVFrame *ref, const Mv *mv, int x_off, int y_off, int block_w, int block_h) |
8.5.3.2.2.2 Chroma sample interpolation process More... | |
static void | hevc_await_progress (HEVCContext *s, HEVCFrame *ref, const Mv *mv, int y0, int height) |
static void | hls_prediction_unit (HEVCContext *s, int x0, int y0, int nPbW, int nPbH, int log2_cb_size, int partIdx) |
static int | luma_intra_pred_mode (HEVCContext *s, int x0, int y0, int pu_size, int prev_intra_luma_pred_flag) |
8.4.1 More... | |
static av_always_inline void | set_ct_depth (HEVCContext *s, int x0, int y0, int log2_cb_size, int ct_depth) |
static void | intra_prediction_unit (HEVCContext *s, int x0, int y0, int log2_cb_size) |
static void | intra_prediction_unit_default_value (HEVCContext *s, int x0, int y0, int log2_cb_size) |
static int | hls_coding_unit (HEVCContext *s, int x0, int y0, int log2_cb_size) |
static int | hls_coding_quadtree (HEVCContext *s, int x0, int y0, int log2_cb_size, int cb_depth) |
static void | hls_decode_neighbour (HEVCContext *s, int x_ctb, int y_ctb, int ctb_addr_ts) |
static int | hls_slice_data (HEVCContext *s) |
static int | hls_nal_unit (HEVCContext *s) |
static void | restore_tqb_pixels (HEVCContext *s) |
static int | set_side_data (HEVCContext *s) |
static int | hevc_frame_start (HEVCContext *s) |
static int | decode_nal_unit (HEVCContext *s, const uint8_t *nal, int length) |
static int | extract_rbsp (const uint8_t *src, int length, HEVCNAL *nal) |
static int | decode_nal_units (HEVCContext *s, const uint8_t *buf, int length) |
static void | print_md5 (void *log_ctx, int level, uint8_t md5[16]) |
static int | verify_md5 (HEVCContext *s, AVFrame *frame) |
static int | hevc_decode_frame (AVCodecContext *avctx, void *data, int *got_output, AVPacket *avpkt) |
static int | hevc_ref_frame (HEVCContext *s, HEVCFrame *dst, HEVCFrame *src) |
static av_cold int | hevc_decode_free (AVCodecContext *avctx) |
static av_cold int | hevc_init_context (AVCodecContext *avctx) |
static int | hevc_update_thread_context (AVCodecContext *dst, const AVCodecContext *src) |
static int | hevc_decode_extradata (HEVCContext *s) |
static av_cold int | hevc_decode_init (AVCodecContext *avctx) |
static av_cold int | hevc_init_thread_copy (AVCodecContext *avctx) |
static void | hevc_decode_flush (AVCodecContext *avctx) |
Definition at line 799 of file hevc.c.
Referenced by hls_sao_param().
#define SET_SAO | ( | elem, | |
value | |||
) |
Definition at line 801 of file hevc.c.
Referenced by hls_sao_param().
#define GET_COORD | ( | offset, | |
n | |||
) |
Referenced by hls_residual_coding().
#define SUBDIVIDE | ( | x, | |
y, | |||
idx | |||
) |
Referenced by hls_coding_quadtree(), and hls_transform_tree().
#define POS | ( | c_idx, | |
x, | |||
y | |||
) |
Referenced by hls_prediction_unit().
#define SUBDIVIDE | ( | x, | |
y | |||
) |
#define STARTCODE_TEST |
Referenced by extract_rbsp().
#define OFFSET | ( | x | ) | offsetof(HEVCContext, x) |
#define PAR (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM) |
|
static |
NOTE: Each function hls_foo correspond to the function foo in the specification (HLS stands for High Level Syntax).
Section 5.7
Definition at line 165 of file hevc.c.
Referenced by hevc_decode_free(), pic_arrays_init(), and set_sps().
|
static |
|
static |
Definition at line 245 of file hevc.c.
Referenced by hls_slice_header().
|
static |
Definition at line 334 of file hevc.c.
Referenced by hls_slice_header().
|
static |
Definition at line 386 of file hevc.c.
Referenced by hevc_update_thread_context(), and hls_slice_header().
|
static |
Definition at line 456 of file hevc.c.
Referenced by decode_nal_unit().
|
static |
Definition at line 813 of file hevc.c.
Referenced by hls_slice_data().
|
static |
Definition at line 884 of file hevc.c.
Referenced by hls_transform_unit().
|
static |
Definition at line 1233 of file hevc.c.
Referenced by hls_transform_tree().
|
static |
Definition at line 1320 of file hevc.c.
Referenced by hls_coding_unit(), and hls_transform_tree().
|
static |
Definition at line 1335 of file hevc.c.
Referenced by hls_coding_unit().
|
static |
Definition at line 1432 of file hevc.c.
Referenced by hls_coding_unit().
|
static |
Definition at line 1462 of file hevc.c.
Referenced by hls_prediction_unit().
|
static |
8.5.3.2.2.1 Luma sample interpolation process
s | HEVC decoding context |
dst | target buffer for block data at block position |
dststride | stride of the dst buffer |
ref | reference picture buffer at origin (0, 0) |
mv | motion vector (relative to block position) to get pixel data from |
x_off | horizontal position of block from origin (0, 0) |
y_off | vertical position of block from origin (0, 0) |
block_w | width of block |
block_h | height of block |
Definition at line 1499 of file hevc.c.
Referenced by hls_prediction_unit().
|
static |
8.5.3.2.2.2 Chroma sample interpolation process
s | HEVC decoding context |
dst1 | target buffer for block data at block position (U plane) |
dst2 | target buffer for block data at block position (V plane) |
dststride | stride of the dst1 and dst2 buffers |
ref | reference picture buffer at origin (0, 0) |
mv | motion vector (relative to block position) to get pixel data from |
x_off | horizontal position of block from origin (0, 0) |
y_off | vertical position of block from origin (0, 0) |
block_w | width of block |
block_h | height of block |
Definition at line 1553 of file hevc.c.
Referenced by hls_prediction_unit().
|
static |
Definition at line 1618 of file hevc.c.
Referenced by hls_prediction_unit().
|
static |
Definition at line 1625 of file hevc.c.
Referenced by hls_coding_unit().
|
static |
|
static |
Definition at line 1976 of file hevc.c.
Referenced by hls_coding_unit().
|
static |
Definition at line 1989 of file hevc.c.
Referenced by hls_coding_unit().
|
static |
Definition at line 2029 of file hevc.c.
Referenced by hls_coding_unit().
|
static |
Definition at line 2051 of file hevc.c.
Referenced by hls_coding_quadtree().
|
static |
Definition at line 2199 of file hevc.c.
Referenced by hls_slice_data().
|
static |
Definition at line 2250 of file hevc.c.
Referenced by hls_slice_data().
|
static |
Definition at line 2300 of file hevc.c.
Referenced by decode_nal_unit().
|
static |
Definition at line 2345 of file hevc.c.
Referenced by decode_nal_unit(), and decode_nal_units().
|
static |
Definition at line 2367 of file hevc.c.
Referenced by decode_nal_unit().
|
static |
Definition at line 2394 of file hevc.c.
Referenced by hevc_frame_start().
|
static |
Definition at line 2443 of file hevc.c.
Referenced by decode_nal_unit().
|
static |
Definition at line 2493 of file hevc.c.
Referenced by decode_nal_units().
Definition at line 2633 of file hevc.c.
Referenced by decode_nal_units().
|
static |
Definition at line 2728 of file hevc.c.
Referenced by hevc_decode_extradata(), and hevc_decode_frame().
Definition at line 2820 of file hevc.c.
Referenced by av_md5_sum(), and verify_md5().
|
static |
Definition at line 2827 of file hevc.c.
Referenced by hevc_decode_frame().
|
static |
|
static |
Definition at line 2937 of file hevc.c.
Referenced by hevc_update_thread_context().
|
static |
Definition at line 2969 of file hevc.c.
Referenced by hevc_decode_init(), and hevc_init_context().
|
static |
Definition at line 3001 of file hevc.c.
Referenced by hevc_decode_init(), hevc_init_thread_copy(), and hevc_update_thread_context().
|
static |
|
static |
Definition at line 3108 of file hevc.c.
Referenced by hevc_decode_init().
|
static |
|
static |
|
static |
const uint8_t ff_hevc_qpel_extra_before[4] = { 0, 3, 3, 2 } |
const uint8_t ff_hevc_qpel_extra_after[4] = { 0, 3, 4, 4 } |
const uint8_t ff_hevc_qpel_extra[4] = { 0, 6, 7, 6 } |
|
static |
Definition at line 45 of file hevc.c.
Referenced by hls_residual_coding().
|
static |
Definition at line 47 of file hevc.c.
Referenced by hls_residual_coding().
|
static |
Definition at line 49 of file hevc.c.
Referenced by hls_residual_coding().
|
static |
Definition at line 51 of file hevc.c.
Referenced by hls_residual_coding().
|
static |
Definition at line 58 of file hevc.c.
Referenced by hls_residual_coding().
|
static |
Definition at line 65 of file hevc.c.
Referenced by hls_residual_coding().
|
static |
Definition at line 76 of file hevc.c.
Referenced by hls_residual_coding().
|
static |
Definition at line 78 of file hevc.c.
Referenced by hls_residual_coding().
|
static |
Definition at line 80 of file hevc.c.
Referenced by hls_residual_coding().
const uint8_t ff_hevc_diag_scan4x4_x[16] |
Definition at line 85 of file hevc.c.
Referenced by hls_residual_coding(), and scaling_list_data().
const uint8_t ff_hevc_diag_scan4x4_y[16] |
Definition at line 92 of file hevc.c.
Referenced by hls_residual_coding(), and scaling_list_data().
|
static |
Definition at line 99 of file hevc.c.
Referenced by hls_residual_coding().
const uint8_t ff_hevc_diag_scan8x8_x[64] |
Definition at line 106 of file hevc.c.
Referenced by hls_residual_coding(), and scaling_list_data().
const uint8_t ff_hevc_diag_scan8x8_y[64] |
Definition at line 125 of file hevc.c.
Referenced by hls_residual_coding(), and scaling_list_data().
|
static |
Definition at line 144 of file hevc.c.
Referenced by hls_residual_coding().
|
static |
|
static |
|
static |
AVCodec ff_hevc_decoder |