Message ID | 20180411114859.20850-1-timo@rothenpieler.org |
---|---|
State | Accepted |
Commit | 9e857aa00e1035f25b220f51f46e06148b9ae4f9 |
Headers | show |
On Wed, 11 Apr 2018 13:48:59 +0200 timo@rothenpieler.org wrote: > From: Timo Rothenpieler <timo@rothenpieler.org> > > --- > libavcodec/hevc_ps.c | 5 ++--- > libavcodec/hevc_ps.h | 1 + > libavcodec/nvdec_hevc.c | 6 ++++++ > 3 files changed, 9 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c > index 1f18d0335b..f877fa572c 100644 > --- a/libavcodec/hevc_ps.c > +++ b/libavcodec/hevc_ps.c > @@ -1100,7 +1100,6 @@ int ff_hevc_parse_sps(HEVCSPS *sps, > GetBitContext *gb, unsigned int *sps_id, skip_bits(gb, > 7); //sps_extension_7bits = get_bits(gb, 7); if > (sps_extension_flag[0]) { int extended_precision_processing_flag; > - int high_precision_offsets_enabled_flag; > int cabac_bypass_alignment_enabled_flag; > > sps->transform_skip_rotation_enabled_flag = > get_bits1(gb); @@ -1115,8 +1114,8 @@ int ff_hevc_parse_sps(HEVCSPS > *sps, GetBitContext *gb, unsigned int *sps_id, > "extended_precision_processing_flag not yet implemented\n"); > sps->intra_smoothing_disabled_flag = get_bits1(gb); > - high_precision_offsets_enabled_flag = get_bits1(gb); > - if (high_precision_offsets_enabled_flag) > + sps->high_precision_offsets_enabled_flag = get_bits1(gb); > + if (sps->high_precision_offsets_enabled_flag) > av_log(avctx, AV_LOG_WARNING, > "high_precision_offsets_enabled_flag not yet > implemented\n"); > diff --git a/libavcodec/hevc_ps.h b/libavcodec/hevc_ps.h > index 9873754389..1fbda199e3 100644 > --- a/libavcodec/hevc_ps.h > +++ b/libavcodec/hevc_ps.h > @@ -289,6 +289,7 @@ typedef struct HEVCSPS { > int implicit_rdpcm_enabled_flag; > int explicit_rdpcm_enabled_flag; > int intra_smoothing_disabled_flag; > + int high_precision_offsets_enabled_flag; > int persistent_rice_adaptation_enabled_flag; > > ///< coded frame dimension in various units > diff --git a/libavcodec/nvdec_hevc.c b/libavcodec/nvdec_hevc.c > index 58f3fa9b45..ba54d210e8 100644 > --- a/libavcodec/nvdec_hevc.c > +++ b/libavcodec/nvdec_hevc.c > @@ -107,6 +107,12 @@ static int nvdec_hevc_start_frame(AVCodecContext > *avctx, .log2_diff_max_min_pcm_luma_coding_block_size = > sps->pcm.log2_max_pcm_cb_size - > sps->pcm.log2_min_pcm_cb_size, .pcm_sample_bit_depth_luma_minus1 > = sps->pcm_enabled_flag ? sps->pcm.bit_depth - 1 : > 0, .pcm_sample_bit_depth_chroma_minus1 = > sps->pcm_enabled_flag ? sps->pcm.bit_depth_chroma - 1 : 0, +#if > defined(NVDECAPI_VERSION) && NVDECAPI_VERSION >= 0x01000008 > + .log2_max_transform_skip_block_size_minus2 = > pps->log2_max_transform_skip_block_size - 2, > + .log2_sao_offset_scale_luma = > pps->log2_sao_offset_scale_luma, > + .log2_sao_offset_scale_chroma = > pps->log2_sao_offset_scale_chroma, > + .high_precision_offsets_enabled_flag = > sps->high_precision_offsets_enabled_flag, +#endif > .pcm_loop_filter_disabled_flag = > sps->pcm.loop_filter_disable_flag, .strong_intra_smoothing_enabled_flag > = > sps->sps_strong_intra_smoothing_enable_flag, .max_transform_hierarchy_depth_intra > = sps->max_transform_hierarchy_depth_intra, LGTM. --phil
> LGTM. > > > --phil applied
diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c index 1f18d0335b..f877fa572c 100644 --- a/libavcodec/hevc_ps.c +++ b/libavcodec/hevc_ps.c @@ -1100,7 +1100,6 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id, skip_bits(gb, 7); //sps_extension_7bits = get_bits(gb, 7); if (sps_extension_flag[0]) { int extended_precision_processing_flag; - int high_precision_offsets_enabled_flag; int cabac_bypass_alignment_enabled_flag; sps->transform_skip_rotation_enabled_flag = get_bits1(gb); @@ -1115,8 +1114,8 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id, "extended_precision_processing_flag not yet implemented\n"); sps->intra_smoothing_disabled_flag = get_bits1(gb); - high_precision_offsets_enabled_flag = get_bits1(gb); - if (high_precision_offsets_enabled_flag) + sps->high_precision_offsets_enabled_flag = get_bits1(gb); + if (sps->high_precision_offsets_enabled_flag) av_log(avctx, AV_LOG_WARNING, "high_precision_offsets_enabled_flag not yet implemented\n"); diff --git a/libavcodec/hevc_ps.h b/libavcodec/hevc_ps.h index 9873754389..1fbda199e3 100644 --- a/libavcodec/hevc_ps.h +++ b/libavcodec/hevc_ps.h @@ -289,6 +289,7 @@ typedef struct HEVCSPS { int implicit_rdpcm_enabled_flag; int explicit_rdpcm_enabled_flag; int intra_smoothing_disabled_flag; + int high_precision_offsets_enabled_flag; int persistent_rice_adaptation_enabled_flag; ///< coded frame dimension in various units diff --git a/libavcodec/nvdec_hevc.c b/libavcodec/nvdec_hevc.c index 58f3fa9b45..ba54d210e8 100644 --- a/libavcodec/nvdec_hevc.c +++ b/libavcodec/nvdec_hevc.c @@ -107,6 +107,12 @@ static int nvdec_hevc_start_frame(AVCodecContext *avctx, .log2_diff_max_min_pcm_luma_coding_block_size = sps->pcm.log2_max_pcm_cb_size - sps->pcm.log2_min_pcm_cb_size, .pcm_sample_bit_depth_luma_minus1 = sps->pcm_enabled_flag ? sps->pcm.bit_depth - 1 : 0, .pcm_sample_bit_depth_chroma_minus1 = sps->pcm_enabled_flag ? sps->pcm.bit_depth_chroma - 1 : 0, +#if defined(NVDECAPI_VERSION) && NVDECAPI_VERSION >= 0x01000008 + .log2_max_transform_skip_block_size_minus2 = pps->log2_max_transform_skip_block_size - 2, + .log2_sao_offset_scale_luma = pps->log2_sao_offset_scale_luma, + .log2_sao_offset_scale_chroma = pps->log2_sao_offset_scale_chroma, + .high_precision_offsets_enabled_flag = sps->high_precision_offsets_enabled_flag, +#endif .pcm_loop_filter_disabled_flag = sps->pcm.loop_filter_disable_flag, .strong_intra_smoothing_enabled_flag = sps->sps_strong_intra_smoothing_enable_flag, .max_transform_hierarchy_depth_intra = sps->max_transform_hierarchy_depth_intra,
From: Timo Rothenpieler <timo@rothenpieler.org> --- libavcodec/hevc_ps.c | 5 ++--- libavcodec/hevc_ps.h | 1 + libavcodec/nvdec_hevc.c | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-)