• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/minidlna/ffmpeg-2.3.4/libavcodec/

Lines Matching refs:sps

73                                   const HEVCSPS *sps, int is_slice_header)
85 if (rps != sps->st_rps && sps->nb_st_rps)
96 if (delta_idx > sps->nb_st_rps) {
99 delta_idx, sps->nb_st_rps);
102 rps_ridx = &sps->st_rps[sps->nb_st_rps - delta_idx];
104 rps_ridx = &sps->st_rps[rps - sps->st_rps - 1];
427 static void decode_vui(HEVCContext *s, HEVCSPS *sps)
429 VUI *vui = &sps->vui;
457 if (vui->video_full_range_flag && sps->pix_fmt == AV_PIX_FMT_YUV420P)
458 sps->pix_fmt = AV_PIX_FMT_YUVJ420P;
519 decode_hrd(s, 1, sps->max_sub_layers);
628 HEVCSPS *sps;
629 AVBufferRef *sps_buf = av_buffer_allocz(sizeof(*sps));
633 sps = (HEVCSPS*)sps_buf->data;
639 sps->vps_id = get_bits(gb, 4);
640 if (sps->vps_id >= MAX_VPS_COUNT) {
641 av_log(s->avctx, AV_LOG_ERROR, "VPS id out of range: %d\n", sps->vps_id);
646 if (!s->vps_list[sps->vps_id]) {
648 sps->vps_id);
653 sps->max_sub_layers = get_bits(gb, 3) + 1;
654 if (sps->max_sub_layers > MAX_SUB_LAYERS) {
656 sps->max_sub_layers);
663 parse_ptl(s, &sps->ptl, sps->max_sub_layers);
672 sps->chroma_format_idc = get_ue_golomb_long(gb);
673 if (!(sps->chroma_format_idc == 1 || sps->chroma_format_idc == 2 || sps->chroma_format_idc == 3)) {
679 if (sps->chroma_format_idc == 3)
680 sps->separate_colour_plane_flag = get_bits1(gb);
682 if (sps->separate_colour_plane_flag)
683 sps->chroma_format_idc = 0;
685 sps->width = get_ue_golomb_long(gb);
686 sps->height = get_ue_golomb_long(gb);
687 if ((ret = av_image_check_size(sps->width,
688 sps->height, 0, s->avctx)) < 0)
693 sps->pic_conf_win.left_offset = get_ue_golomb_long(gb) * 2;
694 sps->pic_conf_win.right_offset = get_ue_golomb_long(gb) * 2;
695 sps->pic_conf_win.top_offset = get_ue_golomb_long(gb) * 2;
696 sps->pic_conf_win.bottom_offset = get_ue_golomb_long(gb) * 2;
700 "discarding sps conformance window, "
702 sps->pic_conf_win.left_offset,
703 sps->pic_conf_win.right_offset,
704 sps->pic_conf_win.top_offset,
705 sps->pic_conf_win.bottom_offset);
707 sps->pic_conf_win.left_offset =
708 sps->pic_conf_win.right_offset =
709 sps->pic_conf_win.top_offset =
710 sps->pic_conf_win.bottom_offset = 0;
712 sps->output_window = sps->pic_conf_win;
715 sps->bit_depth = get_ue_golomb_long(gb) + 8;
717 if (bit_depth_chroma != sps->bit_depth) {
721 sps->bit_depth, bit_depth_chroma);
726 switch (sps->bit_depth) {
728 if (sps->chroma_format_idc == 1) sps->pix_fmt = AV_PIX_FMT_YUV420P;
729 if (sps->chroma_format_idc == 2) sps->pix_fmt = AV_PIX_FMT_YUV422P;
730 if (sps->chroma_format_idc == 3) sps->pix_fmt = AV_PIX_FMT_YUV444P;
733 if (sps->chroma_format_idc == 1) sps->pix_fmt = AV_PIX_FMT_YUV420P9;
734 if (sps->chroma_format_idc == 2) sps->pix_fmt = AV_PIX_FMT_YUV422P9;
735 if (sps->chroma_format_idc == 3) sps->pix_fmt = AV_PIX_FMT_YUV444P9;
738 if (sps->chroma_format_idc == 1) sps->pix_fmt = AV_PIX_FMT_YUV420P10;
739 if (sps->chroma_format_idc == 2) sps->pix_fmt = AV_PIX_FMT_YUV422P10;
740 if (sps->chroma_format_idc == 3) sps->pix_fmt = AV_PIX_FMT_YUV444P10;
743 if (sps->chroma_format_idc == 1) sps->pix_fmt = AV_PIX_FMT_YUV420P12;
744 if (sps->chroma_format_idc == 2) sps->pix_fmt = AV_PIX_FMT_YUV422P12;
745 if (sps->chroma_format_idc == 3) sps->pix_fmt = AV_PIX_FMT_YUV444P12;
753 desc = av_pix_fmt_desc_get(sps->pix_fmt);
759 sps->hshift[0] = sps->vshift[0] = 0;
760 sps->hshift[2] = sps->hshift[1] = desc->log2_chroma_w;
761 sps->vshift[2] = sps->vshift[1] = desc->log2_chroma_h;
763 sps->pixel_shift = sps->bit_depth > 8;
765 sps->log2_max_poc_lsb = get_ue_golomb_long(gb) + 4;
766 if (sps->log2_max_poc_lsb > 16) {
768 sps->log2_max_poc_lsb - 4);
774 start = sublayer_ordering_info ? 0 : sps->max_sub_layers - 1;
775 for (i = start; i < sps->max_sub_layers; i++) {
776 sps->temporal_layer[i].max_dec_pic_buffering = get_ue_golomb_long(gb) + 1;
777 sps->temporal_layer[i].num_reorder_pics = get_ue_golomb_long(gb);
778 sps->temporal_layer[i].max_latency_increase = get_ue_golomb_long(gb) - 1;
779 if (sps->temporal_layer[i].max_dec_pic_buffering > MAX_DPB_SIZE) {
781 sps->temporal_layer[i].max_dec_pic_buffering - 1);
785 if (sps->temporal_layer[i].num_reorder_pics > sps->temporal_layer[i].max_dec_pic_buffering - 1) {
787 sps->temporal_layer[i].num_reorder_pics);
789 sps->temporal_layer[i].num_reorder_pics > MAX_DPB_SIZE - 1) {
793 sps->temporal_layer[i].max_dec_pic_buffering = sps->temporal_layer[i].num_reorder_pics + 1;
799 sps->temporal_layer[i].max_dec_pic_buffering = sps->temporal_layer[start].max_dec_pic_buffering;
800 sps->temporal_layer[i].num_reorder_pics = sps->temporal_layer[start].num_reorder_pics;
801 sps->temporal_layer[i].max_latency_increase = sps->temporal_layer[start].max_latency_increase;
805 sps->log2_min_cb_size = get_ue_golomb_long(gb) + 3;
806 sps->log2_diff_max_min_coding_block_size = get_ue_golomb_long(gb);
807 sps->log2_min_tb_size = get_ue_golomb_long(gb) + 2;
809 sps->log2_max_trafo_size = log2_diff_max_min_transform_block_size +
810 sps->log2_min_tb_size;
812 if (sps->log2_min_tb_size >= sps->log2_min_cb_size) {
817 sps->max_transform_hierarchy_depth_inter = get_ue_golomb_long(gb);
818 sps->max_transform_hierarchy_depth_intra = get_ue_golomb_long(gb);
820 sps->scaling_list_enable_flag = get_bits1(gb);
821 if (sps->scaling_list_enable_flag) {
822 set_default_scaling_list_data(&sps->scaling_list);
825 ret = scaling_list_data(s, &sps->scaling_list);
831 sps->amp_enabled_flag = get_bits1(gb);
832 sps->sao_enabled = get_bits1(gb);
834 sps->pcm_enabled_flag = get_bits1(gb);
835 if (sps->pcm_enabled_flag) {
836 sps->pcm.bit_depth = get_bits(gb, 4) + 1;
837 sps->pcm.bit_depth_chroma = get_bits(gb, 4) + 1;
838 sps->pcm.log2_min_pcm_cb_size = get_ue_golomb_long(gb) + 3;
839 sps->pcm.log2_max_pcm_cb_size = sps->pcm.log2_min_pcm_cb_size +
841 if (sps->pcm.bit_depth > sps->bit_depth) {
844 sps->pcm.bit_depth, sps->bit_depth);
849 sps->pcm.loop_filter_disable_flag = get_bits1(gb);
852 sps->nb_st_rps = get_ue_golomb_long(gb);
853 if (sps->nb_st_rps > MAX_SHORT_TERM_RPS_COUNT) {
855 sps->nb_st_rps);
859 for (i = 0; i < sps->nb_st_rps; i++) {
860 if ((ret = ff_hevc_decode_short_term_rps(s, &sps->st_rps[i],
861 sps, 0)) < 0)
865 sps->long_term_ref_pics_present_flag = get_bits1(gb);
866 if (sps->long_term_ref_pics_present_flag) {
867 sps->num_long_term_ref_pics_sps = get_ue_golomb_long(gb);
868 for (i = 0; i < sps->num_long_term_ref_pics_sps; i++) {
869 sps->lt_ref_pic_poc_lsb_sps[i] = get_bits(gb, sps->log2_max_poc_lsb);
870 sps->used_by_curr_pic_lt_sps_flag[i] = get_bits1(gb);
874 sps->sps_temporal_mvp_enabled_flag = get_bits1(gb);
875 sps->sps_strong_intra_smoothing_enable_flag = get_bits1(gb);
876 sps->vui.sar = (AVRational){0, 1};
879 decode_vui(s, sps);
891 sps->transform_skip_rotation_enabled_flag = get_bits1(gb);
892 sps->transform_skip_context_enabled_flag = get_bits1(gb);
893 sps->implicit_rdpcm_enabled_flag = get_bits1(gb);
895 sps->explicit_rdpcm_enabled_flag = get_bits1(gb);
902 sps->intra_smoothing_disabled_flag = get_bits1(gb);
908 sps->persistent_rice_adaptation_enabled_flag = get_bits1(gb);
917 sps->output_window.left_offset += sps->vui.def_disp_win.left_offset;
918 sps->output_window.right_offset += sps->vui.def_disp_win.right_offset;
919 sps->output_window.top_offset += sps->vui.def_disp_win.top_offset;
920 sps->output_window.bottom_offset += sps->vui.def_disp_win.bottom_offset;
922 if (sps->output_window.left_offset & (0x1F >> (sps->pixel_shift)) &&
924 sps->output_window.left_offset &= ~(0x1F >> (sps->pixel_shift));
927 sps->output_window.left_offset);
929 sps->output_width = sps->width -
930 (sps->output_window.left_offset + sps->output_window.right_offset);
931 sps->output_height = sps->height -
932 (sps->output_window.top_offset + sps->output_window.bottom_offset);
933 if (sps->output_width <= 0 || sps->output_height <= 0) {
935 sps->output_width, sps->output_height);
942 sps->pic_conf_win.left_offset =
943 sps->pic_conf_win.right_offset =
944 sps->pic_conf_win.top_offset =
945 sps->pic_conf_win.bottom_offset = 0;
946 sps->output_width = sps->width;
947 sps->output_height = sps->height;
951 sps->log2_ctb_size = sps->log2_min_cb_size +
952 sps->log2_diff_max_min_coding_block_size;
953 sps->log2_min_pu_size = sps->log2_min_cb_size - 1;
955 sps->ctb_width = (sps->width + (1 << sps->log2_ctb_size) - 1) >> sps->log2_ctb_size;
956 sps->ctb_height = (sps->height + (1 << sps->log2_ctb_size) - 1) >> sps->log2_ctb_size;
957 sps->ctb_size = sps->ctb_width * sps->ctb_height;
959 sps->min_cb_width = sps->width >> sps->log2_min_cb_size;
960 sps->min_cb_height = sps->height >> sps->log2_min_cb_size;
961 sps->min_tb_width = sps->width >> sps->log2_min_tb_size;
962 sps->min_tb_height = sps->height >> sps->log2_min_tb_size;
963 sps->min_pu_width = sps->width >> sps->log2_min_pu_size;
964 sps->min_pu_height = sps->height >> sps->log2_min_pu_size;
965 sps->tb_mask = (1 << (sps->log2_ctb_size - sps->log2_min_tb_size)) - 1;
967 sps->qp_bd_offset = 6 * (sps->bit_depth - 8);
969 if (sps->width & ((1 << sps->log2_min_cb_size) - 1) ||
970 sps->height & ((1 << sps->log2_min_cb_size) - 1)) {
975 if (sps->log2_ctb_size > MAX_LOG2_CTB_SIZE) {
976 av_log(s->avctx, AV_LOG_ERROR, "CTB size out of range: 2^%d\n", sps->log2_ctb_size);
979 if (sps->max_transform_hierarchy_depth_inter > sps->log2_ctb_size - sps->log2_min_tb_size) {
981 sps->max_transform_hierarchy_depth_inter);
984 if (sps->max_transform_hierarchy_depth_intra > sps->log2_ctb_size - sps->log2_min_tb_size) {
986 sps->max_transform_hierarchy_depth_intra);
989 if (sps->log2_max_trafo_size > FFMIN(sps->log2_ctb_size, 5)) {
992 sps->log2_max_trafo_size);
1000 sps_id, sps->width, sps->height,
1001 sps->output_width, sps->output_height,
1002 av_get_pix_fmt_name(sps->pix_fmt));
1016 if (s->sps_list[sps_id] && s->sps == (HEVCSPS*)s->sps_list[sps_id]->data) {
1020 s->sps = NULL;
1051 static int pps_range_extensions(HEVCContext *s, HEVCPPS *pps, HEVCSPS *sps) {
1094 HEVCSPS *sps = NULL;
1144 sps = (HEVCSPS *)s->sps_list[pps->sps_id]->data;
1194 pps->num_tile_columns >= sps->width) {
1201 pps->num_tile_rows >= sps->height) {
1222 if (sum >= sps->ctb_width) {
1227 pps->column_width[pps->num_tile_columns - 1] = sps->ctb_width - sum;
1234 if (sum >= sps->ctb_height) {
1239 pps->row_height[pps->num_tile_rows - 1] = sps->ctb_height - sum;
1277 if (pps->log2_parallel_merge_level > sps->log2_ctb_size) {
1289 if (sps->ptl.general_ptl.profile_idc == FF_PROFILE_HEVC_REXT && pps_range_extensions_flag) {
1292 pps_range_extensions(s, pps, sps);
1299 pps->col_idxX = av_malloc_array(sps->ctb_width, sizeof(*pps->col_idxX));
1316 pps->column_width[i] = ((i + 1) * sps->ctb_width) / pps->num_tile_columns -
1317 (i * sps->ctb_width) / pps->num_tile_columns;
1321 pps->row_height[i] = ((i + 1) * sps->ctb_height) / pps->num_tile_rows -
1322 (i * sps->ctb_height) / pps->num_tile_rows;
1334 for (i = 0, j = 0; i < sps->ctb_width; i++) {
1343 pic_area_in_ctbs = sps->ctb_width * sps->ctb_height;
1348 pps->min_tb_addr_zs_tab = av_malloc_array((sps->tb_mask+2) * (sps->tb_mask+2), sizeof(*pps->min_tb_addr_zs_tab));
1356 int tb_x = ctb_addr_rs % sps->ctb_width;
1357 int tb_y = ctb_addr_rs / sps->ctb_width;
1379 val += sps->ctb_width * pps->row_height[i];
1392 pps->tile_id[pps->ctb_addr_rs_to_ts[y * sps->ctb_width + x]] = tile_id;
1402 pps->tile_pos_rs[j * pps->num_tile_columns + i] = pps->row_bd[j] * sps->ctb_width + pps->col_bd[i];
1404 log2_diff_ctb_min_tb_size = sps->log2_ctb_size - sps->log2_min_tb_size;
1405 pps->min_tb_addr_zs = &pps->min_tb_addr_zs_tab[1*(sps->tb_mask+2)+1];
1406 for (y = 0; y < sps->tb_mask+2; y++) {
1407 pps->min_tb_addr_zs_tab[y*(sps->tb_mask+2)] = -1;
1410 for (y = 0; y < sps->tb_mask+1; y++) {
1411 for (x = 0; x < sps->tb_mask+1; x++) {
1414 int ctb_addr_rs = sps->ctb_width * tb_y + tb_x;
1421 pps->min_tb_addr_zs[y * (sps->tb_mask+2) + x] = val;