Showing the changes to libavcodec (3 of 3 files). Show all
Unified · Split
| @@ -515,8 +515,8 @@ static void deblocking_filter_CTB(const HEVCContext *s, const HEVCLayerContext * · 514 unmodified lines | ||
| 515 | 515 | int ctb_size = 1 << log2_ctb_size; |
| 516 | 516 | int ctb = (x0 >> log2_ctb_size) + |
| 517 | 517 | (y0 >> log2_ctb_size) * sps->ctb_width; |
| 518 | − int cur_tc_offset = s->deblock[ctb].tc_offset; | |
| 519 | − int cur_beta_offset = s->deblock[ctb].beta_offset; | |
| 518 | + int cur_tc_offset = l->deblock[ctb].tc_offset; | |
| 519 | + int cur_beta_offset = l->deblock[ctb].beta_offset; | |
| 520 | 520 | int left_tc_offset, left_beta_offset; |
| 521 | 521 | int tc_offset, beta_offset; |
| 522 | 522 | int pcmf = (sps->pcm_enabled && |
| @@ -524,8 +524,8 @@ static void deblocking_filter_CTB(const HEVCContext *s, const HEVCLayerContext * · 1 unmodified line | ||
| 524 | 524 | pps->transquant_bypass_enable_flag; |
| 525 | 525 | |
| 526 | 526 | if (x0) { |
| 527 | − left_tc_offset = s->deblock[ctb - 1].tc_offset; | |
| 528 | − left_beta_offset = s->deblock[ctb - 1].beta_offset; | |
| 527 | + left_tc_offset = l->deblock[ctb - 1].tc_offset; | |
| 528 | + left_beta_offset = l->deblock[ctb - 1].beta_offset; | |
| 529 | 529 | } else { |
| 530 | 530 | left_tc_offset = 0; |
| 531 | 531 | left_beta_offset = 0; |
| @@ -69,7 +69,7 @@ static const uint8_t hevc_pel_weight[65] = { [2] = 0, [4] = 1, [6] = 2, [8] = 3, · 68 unmodified lines | ||
| 69 | 69 | static void pic_arrays_free(HEVCContext *s, HEVCLayerContext *l) |
| 70 | 70 | { |
| 71 | 71 | av_freep(&l->sao); |
| 72 | − av_freep(&s->deblock); | |
| 72 | + av_freep(&l->deblock); | |
| 73 | 73 | |
| 74 | 74 | av_freep(&s->skip_flag); |
| 75 | 75 | av_freep(&s->tab_ct_depth); |
| @@ -104,8 +104,8 @@ static int pic_arrays_init(HEVCContext *s, HEVCLayerContext *l, const HEVCSPS *s · 28 unmodified lines | ||
| 104 | 104 | l->bs_height = (height >> 2) + 1; |
| 105 | 105 | |
| 106 | 106 | l->sao = av_calloc(ctb_count, sizeof(*l->sao)); |
| 107 | − s->deblock = av_calloc(ctb_count, sizeof(*s->deblock)); | |
| 108 | − if (!l->sao || !s->deblock) | |
| 107 | + l->deblock = av_calloc(ctb_count, sizeof(*l->deblock)); | |
| 108 | + if (!l->sao || !l->deblock) | |
| 109 | 109 | goto fail; |
| 110 | 110 | |
| 111 | 111 | s->skip_flag = av_malloc_array(sps->min_cb_height, sps->min_cb_width); |
| @@ -2559,8 +2559,8 @@ static int hls_decode_entry(HEVCContext *s, GetBitContext *gb) · 2447 unmodified lines | ||
| 2559 | 2559 | hls_sao_param(lc, l, pps, sps, |
| 2560 | 2560 | x_ctb >> sps->log2_ctb_size, y_ctb >> sps->log2_ctb_size); |
| 2561 | 2561 | |
| 2562 | − s->deblock[ctb_addr_rs].beta_offset = s->sh.beta_offset; | |
| 2563 | − s->deblock[ctb_addr_rs].tc_offset = s->sh.tc_offset; | |
| 2562 | + l->deblock[ctb_addr_rs].beta_offset = s->sh.beta_offset; | |
| 2563 | + l->deblock[ctb_addr_rs].tc_offset = s->sh.tc_offset; | |
| 2564 | 2564 | s->filter_slice_edges[ctb_addr_rs] = s->sh.slice_loop_filter_across_slices_enabled_flag; |
| 2565 | 2565 | |
| 2566 | 2566 | more_data = hls_coding_quadtree(lc, l, pps, sps, x_ctb, y_ctb, sps->log2_ctb_size, 0); |
| @@ -445,6 +445,7 @@ typedef struct HEVCLayerContext { · 444 unmodified lines | ||
| 445 | 445 | int bs_height; |
| 446 | 446 | |
| 447 | 447 | SAOParams *sao; |
| 448 | + DBParams *deblock; | |
| 448 | 449 | } HEVCLayerContext; |
| 449 | 450 | |
| 450 | 451 | typedef struct HEVCContext { |
| @@ -478,7 +479,6 @@ typedef struct HEVCContext { · 27 unmodified lines | ||
| 478 | 479 | const HEVCVPS *vps; ///< RefStruct reference |
| 479 | 480 | const HEVCPPS *pps; ///< RefStruct reference |
| 480 | 481 | SliceHeader sh; |
| 481 | − DBParams *deblock; | |
| 482 | 482 | enum HEVCNALUnitType nal_unit_type; |
| 483 | 483 | int temporal_id; ///< temporal_id_plus1 - 1 |
| 484 | 484 | HEVCFrame *cur_frame; |