static int pps_range_extensions(GetBitContext *gb, AVCodecContext *avctx,

                                HEVCPPS *pps, HEVCSPS *sps) {

    int i;



    if (pps->transform_skip_enabled_flag) {

        pps->log2_max_transform_skip_block_size = get_ue_golomb_long(gb) + 2;

    }

    pps->cross_component_prediction_enabled_flag = get_bits1(gb);

    pps->chroma_qp_offset_list_enabled_flag = get_bits1(gb);

    if (pps->chroma_qp_offset_list_enabled_flag) {

        pps->diff_cu_chroma_qp_offset_depth = get_ue_golomb_long(gb);

        pps->chroma_qp_offset_list_len_minus1 = get_ue_golomb_long(gb);

        if (pps->chroma_qp_offset_list_len_minus1 && pps->chroma_qp_offset_list_len_minus1 >= 5) {

            av_log(avctx, AV_LOG_ERROR,

                   "chroma_qp_offset_list_len_minus1 shall be in the range [0, 5].\n");

            return AVERROR_INVALIDDATA;

        }

        for (i = 0; i <= pps->chroma_qp_offset_list_len_minus1; i++) {

            pps->cb_qp_offset_list[i] = get_se_golomb_long(gb);

            if (pps->cb_qp_offset_list[i]) {

                av_log(avctx, AV_LOG_WARNING,

                       "cb_qp_offset_list not tested yet.\n");

            }

            pps->cr_qp_offset_list[i] = get_se_golomb_long(gb);

            if (pps->cr_qp_offset_list[i]) {

                av_log(avctx, AV_LOG_WARNING,

                       "cb_qp_offset_list not tested yet.\n");

            }

        }

    }

    pps->log2_sao_offset_scale_luma = get_ue_golomb_long(gb);

    pps->log2_sao_offset_scale_chroma = get_ue_golomb_long(gb);



    return(0);

}

static int pps_range_extensions(GetBitContext *gb, AVCodecContext *avctx,

                                HEVCPPS *pps, HEVCSPS *sps) {

    int i;



    if (pps->transform_skip_enabled_flag) {

        pps->log2_max_transform_skip_block_size = get_ue_golomb_long(gb) + 2;

    }

    pps->cross_component_prediction_enabled_flag = get_bits1(gb);

    pps->chroma_qp_offset_list_enabled_flag = get_bits1(gb);

    if (pps->chroma_qp_offset_list_enabled_flag) {

        pps->diff_cu_chroma_qp_offset_depth = get_ue_golomb_long(gb);

        pps->chroma_qp_offset_list_len_minus1 = get_ue_golomb_long(gb);

        if (pps->chroma_qp_offset_list_len_minus1 && pps->chroma_qp_offset_list_len_minus1 >= 5) {

            av_log(avctx, AV_LOG_ERROR,

                   "chroma_qp_offset_list_len_minus1 shall be in the range [0, 5].\n");

            return AVERROR_INVALIDDATA;

        }

        for (i = 0; i <= pps->chroma_qp_offset_list_len_minus1; i++) {

            pps->cb_qp_offset_list[i] = get_se_golomb_long(gb);

            if (pps->cb_qp_offset_list[i]) {

                av_log(avctx, AV_LOG_WARNING,

                       "cb_qp_offset_list not tested yet.\n");

            }

            pps->cr_qp_offset_list[i] = get_se_golomb_long(gb);

            if (pps->cr_qp_offset_list[i]) {

                av_log(avctx, AV_LOG_WARNING,

                       "cb_qp_offset_list not tested yet.\n");

            }

        }

    }

    pps->log2_sao_offset_scale_luma = get_ue_golomb_long(gb);

    pps->log2_sao_offset_scale_chroma = get_ue_golomb_long(gb);



    return(0);

}

static int FUNC_0(GetBitContext *VAR_0, AVCodecContext *VAR_1,

                                HEVCPPS *VAR_2, HEVCSPS *VAR_3) {

    int VAR_4;



    if (VAR_2->transform_skip_enabled_flag) {

        VAR_2->log2_max_transform_skip_block_size = get_ue_golomb_long(VAR_0) + 2;

    }

    VAR_2->cross_component_prediction_enabled_flag = get_bits1(VAR_0);

    VAR_2->chroma_qp_offset_list_enabled_flag = get_bits1(VAR_0);

    if (VAR_2->chroma_qp_offset_list_enabled_flag) {

        VAR_2->diff_cu_chroma_qp_offset_depth = get_ue_golomb_long(VAR_0);

        VAR_2->chroma_qp_offset_list_len_minus1 = get_ue_golomb_long(VAR_0);

        if (VAR_2->chroma_qp_offset_list_len_minus1 && VAR_2->chroma_qp_offset_list_len_minus1 >= 5) {

            av_log(VAR_1, AV_LOG_ERROR,

                   "chroma_qp_offset_list_len_minus1 shall be in the range [0, 5].\n");

            return AVERROR_INVALIDDATA;

        }

        for (VAR_4 = 0; VAR_4 <= VAR_2->chroma_qp_offset_list_len_minus1; VAR_4++) {

            VAR_2->cb_qp_offset_list[VAR_4] = get_se_golomb_long(VAR_0);

            if (VAR_2->cb_qp_offset_list[VAR_4]) {

                av_log(VAR_1, AV_LOG_WARNING,

                       "cb_qp_offset_list not tested yet.\n");

            }

            VAR_2->cr_qp_offset_list[VAR_4] = get_se_golomb_long(VAR_0);

            if (VAR_2->cr_qp_offset_list[VAR_4]) {

                av_log(VAR_1, AV_LOG_WARNING,

                       "cb_qp_offset_list not tested yet.\n");

            }

        }

    }

    VAR_2->log2_sao_offset_scale_luma = get_ue_golomb_long(VAR_0);

    VAR_2->log2_sao_offset_scale_chroma = get_ue_golomb_long(VAR_0);



    return(0);

}

static int FUNC_0(GetBitContext *VAR_0, AVCodecContext *VAR_1,
HEVCPPS *VAR_2, HEVCSPS *VAR_3) { int VAR_4; if (VAR_2->transform_skip_enabled_flag) { VAR_2->log2_max_transform_skip_block_size = get_ue_golomb_long(VAR_0) + 2; } VAR_2->cross_component_prediction_enabled_flag = get_bits1(VAR_0); VAR_2->chroma_qp_offset_list_enabled_flag = get_bits1(VAR_0); if (VAR_2->chroma_qp_offset_list_enabled_flag) { VAR_2->diff_cu_chroma_qp_offset_depth = get_ue_golomb_long(VAR_0); VAR_2->chroma_qp_offset_list_len_minus1 = get_ue_golomb_long(VAR_0); if (VAR_2->chroma_qp_offset_list_len_minus1 && VAR_2->chroma_qp_offset_list_len_minus1 >= 5) { av_log(VAR_1, AV_LOG_ERROR,
"chroma_qp_offset_list_len_minus1 shall be in the range [0, 5].\n"); return AVERROR_INVALIDDATA; } for (VAR_4 = 0; VAR_4 <= VAR_2->chroma_qp_offset_list_len_minus1; VAR_4++) { VAR_2->cb_qp_offset_list[VAR_4] = get_se_golomb_long(VAR_0); if (VAR_2->cb_qp_offset_list[VAR_4]) { av_log(VAR_1, AV_LOG_WARNING,
"cb_qp_offset_list not tested yet.\n"); } VAR_2->cr_qp_offset_list[VAR_4] = get_se_golomb_long(VAR_0); if (VAR_2->cr_qp_offset_list[VAR_4]) { av_log(VAR_1, AV_LOG_WARNING,
"cb_qp_offset_list not tested yet.\n"); } } } VAR_2->log2_sao_offset_scale_luma = get_ue_golomb_long(VAR_0); VAR_2->log2_sao_offset_scale_chroma = get_ue_golomb_long(VAR_0); return(0); }