Lines Matching refs:mp4Hdr
327 …omplexity_estimation_header(Mpeg4Estimation *e, BitReadCtx_t *gb, Mpg4Hdr *mp4Hdr, int coding_type) in read_vop_complexity_estimation_header() argument
396 if (coding_type == MPEG4_S_VOP && mp4Hdr->vol.sprite_enable == MPEG4_SPRITE_STATIC) { in read_vop_complexity_estimation_header()
413 (void)mp4Hdr; in read_vop_complexity_estimation_header()
448 Mpg4Hdr *mp4Hdr = &p->hdr_curr; in mpg4d_parse_vol_header() local
454 READ_BITS(cb, 8, &(mp4Hdr->vol.vo_type)); in mpg4d_parse_vol_header()
461 vol_ver_id = mp4Hdr->vol.ver_id; in mpg4d_parse_vol_header()
477 READ_BITS(cb, 1, &(mp4Hdr->vol.low_delay)); /* low_delay flage (1 means no B_VOP) */ in mpg4d_parse_vol_header()
507 mp4Hdr->vol.low_delay = 0; in mpg4d_parse_vol_header()
510 if (mp4Hdr->vol.vo_type == 0 && vol_control_parameters == 0 && mp4Hdr->vop.frameNumber == 0) { in mpg4d_parse_vol_header()
515 READ_BITS(cb, 2, &(mp4Hdr->vol.shape)); /* video_object_layer_shape */ in mpg4d_parse_vol_header()
517 if (mp4Hdr->vol.shape != MPEG4_VIDOBJLAY_SHAPE_RECTANGULAR) { in mpg4d_parse_vol_header()
518 mpp_log("unsupported shape %d\n", mp4Hdr->vol.shape); in mpg4d_parse_vol_header()
522 if (mp4Hdr->vol.shape == MPEG4_VIDOBJLAY_SHAPE_GRAYSCALE && vol_ver_id != 1) { in mpg4d_parse_vol_header()
528 READ_BITS(cb, 16, &(mp4Hdr->vol.time_inc_resolution)); /* vop_time_increment_resolution */ in mpg4d_parse_vol_header()
530 if (mp4Hdr->vol.time_inc_resolution > 0) { in mpg4d_parse_vol_header()
531 mp4Hdr->vol.time_inc_bits = MPP_MAX(log2bin(mp4Hdr->vol.time_inc_resolution - 1), 1); in mpg4d_parse_vol_header()
534 mp4Hdr->vol.time_inc_bits = 1; in mpg4d_parse_vol_header()
541 SKIP_BITS(cb, mp4Hdr->vol.time_inc_bits); /* fixed_vop_time_increment */ in mpg4d_parse_vol_header()
544 if (mp4Hdr->vol.shape != MPEG4_VIDOBJLAY_SHAPE_BINARY_ONLY) { in mpg4d_parse_vol_header()
545 if (mp4Hdr->vol.shape == MPEG4_VIDOBJLAY_SHAPE_RECTANGULAR) { in mpg4d_parse_vol_header()
561 mp4Hdr->vol.width = width; in mpg4d_parse_vol_header()
562 mp4Hdr->vol.height = height; in mpg4d_parse_vol_header()
563 mp4Hdr->vol.mb_width = (mp4Hdr->vol.width + 15) >> 4; in mpg4d_parse_vol_header()
564 mp4Hdr->vol.mb_height = (mp4Hdr->vol.height + 15) >> 4; in mpg4d_parse_vol_header()
565 mp4Hdr->vol.totalMbInVop = mp4Hdr->vol.mb_width * mp4Hdr->vol.mb_height; in mpg4d_parse_vol_header()
566 mp4Hdr->vol.hor_stride = 16 * mp4Hdr->vol.mb_width; in mpg4d_parse_vol_header()
567 mp4Hdr->vol.ver_stride = 16 * mp4Hdr->vol.mb_height; in mpg4d_parse_vol_header()
570 READ_BITS(cb, 1, &(mp4Hdr->vol.interlacing)); in mpg4d_parse_vol_header()
579 READ_BITS(cb, (vol_ver_id == 1 ? 1 : 2), &(mp4Hdr->vol.sprite_enable)); in mpg4d_parse_vol_header()
581 if (mp4Hdr->vol.sprite_enable != MPEG4_SPRITE_NONE) { in mpg4d_parse_vol_header()
587 mp4Hdr->vol.shape != MPEG4_VIDOBJLAY_SHAPE_RECTANGULAR) { in mpg4d_parse_vol_header()
593 READ_BITS(cb, 4, &(mp4Hdr->vol.quant_bits));/* quant_precision */ in mpg4d_parse_vol_header()
596 mp4Hdr->vol.quant_bits = 5; in mpg4d_parse_vol_header()
599 if (mp4Hdr->vol.shape == MPEG4_VIDOBJLAY_SHAPE_GRAYSCALE) { in mpg4d_parse_vol_header()
605 READ_BITS(cb, 1, &(mp4Hdr->vol.quant_type)); /* quant_type */ in mpg4d_parse_vol_header()
607 if (mp4Hdr->vol.quant_type) { in mpg4d_parse_vol_header()
624 if (mp4Hdr->vol.shape == MPEG4_VIDOBJLAY_SHAPE_GRAYSCALE) { in mpg4d_parse_vol_header()
634 READ_BITS(cb, 1, &(mp4Hdr->vol.quarter_sample)); in mpg4d_parse_vol_header()
636 mp4Hdr->vol.quarter_sample = 0; in mpg4d_parse_vol_header()
639 READ_BITS(cb, 1, &(mp4Hdr->vol.complexity_estimation_disable)); in mpg4d_parse_vol_header()
641 if (!mp4Hdr->vol.complexity_estimation_disable) { in mpg4d_parse_vol_header()
648 READ_BITS(cb, 1, &(mp4Hdr->vol.resync_marker_disable)); in mpg4d_parse_vol_header()
649 if (!mp4Hdr->vol.resync_marker_disable) { in mpg4d_parse_vol_header()
660 READ_BITS(cb, 1, &(mp4Hdr->vol.newpred_enable)); in mpg4d_parse_vol_header()
662 if (mp4Hdr->vol.newpred_enable) { /* newpred_enable */ in mpg4d_parse_vol_header()
668 READ_BITS(cb, 1, &(mp4Hdr->vol.reduced_resolution_enable)); in mpg4d_parse_vol_header()
670 mp4Hdr->vol.newpred_enable = 0; in mpg4d_parse_vol_header()
671 mp4Hdr->vol.reduced_resolution_enable = 0; in mpg4d_parse_vol_header()
674 READ_BITS(cb, 1, &mp4Hdr->vol.scalability); /* scalability */ in mpg4d_parse_vol_header()
676 if (mp4Hdr->vol.scalability) { in mpg4d_parse_vol_header()
686 if (mp4Hdr->vol.shape == MPEG4_VIDOBJLAY_SHAPE_BINARY /* && hierarchy_type==0 */) { in mpg4d_parse_vol_header()
708 Mpg4Hdr *mp4Hdr = &p->hdr_curr; in mpg4d_parse_user_data() local
733 if (!mp4Hdr->usr.packed_mode) { in mpg4d_parse_user_data()
773 mp4Hdr->usr.packed_mode = ((packed == 'p') ? (1) : (0)); in mpg4d_parse_user_data()
775 mp4Hdr->usr.packed_mode = 0; in mpg4d_parse_user_data()
819 Mpg4Hdr *mp4Hdr = &p->hdr_curr; in mpeg4_parse_vop_header() local
821 READ_BITS(gb, 2, &(mp4Hdr->vop.coding_type)); /* vop_coding_type */ in mpeg4_parse_vop_header()
831 if (mp4Hdr->vol.time_inc_bits) { in mpeg4_parse_vop_header()
833 READ_BITS(gb, mp4Hdr->vol.time_inc_bits, &time_increment); in mpeg4_parse_vop_header()
836 if (mp4Hdr->vop.coding_type != MPEG4_B_VOP) { in mpeg4_parse_vop_header()
837 mp4Hdr->last_time_base = mp4Hdr->time_base; in mpeg4_parse_vop_header()
838 mp4Hdr->time_base += time_incr; in mpeg4_parse_vop_header()
839 mp4Hdr->time = mp4Hdr->time_base * mp4Hdr->vol.time_inc_resolution + time_increment; in mpeg4_parse_vop_header()
840 mp4Hdr->time_pp = (RK_S32)(mp4Hdr->time - mp4Hdr->last_non_b_time); in mpeg4_parse_vop_header()
841 mp4Hdr->last_non_b_time = mp4Hdr->time; in mpeg4_parse_vop_header()
843 …mp4Hdr->time = (mp4Hdr->last_time_base + time_incr) * mp4Hdr->vol.time_inc_resolution + time_incre… in mpeg4_parse_vop_header()
844 mp4Hdr->time_bp = mp4Hdr->time_pp - (RK_S32)(mp4Hdr->last_non_b_time - mp4Hdr->time); in mpeg4_parse_vop_header()
851 mp4Hdr->vop.coding_type = MPEG4_N_VOP; in mpeg4_parse_vop_header()
856 if (mp4Hdr->vop.coding_type == MPEG4_B_VOP && in mpeg4_parse_vop_header()
861 if (mp4Hdr->vop.coding_type == MPEG4_I_VOP) in mpeg4_parse_vop_header()
864 if (mp4Hdr->vol.newpred_enable) { in mpeg4_parse_vop_header()
868 READ_BITS(gb, (MPP_MIN(mp4Hdr->vol.time_inc_bits + 3, 15)), &vop_id); in mpeg4_parse_vop_header()
873 READ_BITS(gb, MPP_MIN(mp4Hdr->vol.time_inc_bits + 3, 15), &vop_id_for_prediction); in mpeg4_parse_vop_header()
879 if ((mp4Hdr->vol.shape != MPEG4_VIDOBJLAY_SHAPE_BINARY_ONLY) && in mpeg4_parse_vop_header()
880 ((mp4Hdr->vop.coding_type == MPEG4_P_VOP) || in mpeg4_parse_vop_header()
881 (mp4Hdr->vop.coding_type == MPEG4_S_VOP && in mpeg4_parse_vop_header()
882 mp4Hdr->vol.sprite_enable == MPEG4_SPRITE_GMC))) { in mpeg4_parse_vop_header()
883 READ_BITS(gb, 1, &(mp4Hdr->vop.rounding)); /* rounding_type */ in mpeg4_parse_vop_header()
886 if (mp4Hdr->vol.reduced_resolution_enable && in mpeg4_parse_vop_header()
887 mp4Hdr->vol.shape == MPEG4_VIDOBJLAY_SHAPE_RECTANGULAR && in mpeg4_parse_vop_header()
888 (mp4Hdr->vop.coding_type == MPEG4_P_VOP || mp4Hdr->vop.coding_type == MPEG4_I_VOP)) { in mpeg4_parse_vop_header()
893 mpp_assert(mp4Hdr->vol.shape == MPEG4_VIDOBJLAY_SHAPE_RECTANGULAR); in mpeg4_parse_vop_header()
895 if (mp4Hdr->vol.shape != MPEG4_VIDOBJLAY_SHAPE_BINARY_ONLY) { in mpeg4_parse_vop_header()
896 if (!mp4Hdr->vol.complexity_estimation_disable) { in mpeg4_parse_vop_header()
897 … read_vop_complexity_estimation_header(&p->estimation, gb, mp4Hdr, mp4Hdr->vop.coding_type); in mpeg4_parse_vop_header()
902 mp4Hdr->vop.intra_dc_vlc_threshold = val; in mpeg4_parse_vop_header()
903 mp4Hdr->vop.top_field_first = 0; in mpeg4_parse_vop_header()
904 mp4Hdr->vop.alternate_vertical_scan = 0; in mpeg4_parse_vop_header()
906 if (mp4Hdr->vol.interlacing) { in mpeg4_parse_vop_header()
907 READ_BITS(gb, 1, &(mp4Hdr->vop.top_field_first)); in mpeg4_parse_vop_header()
908 READ_BITS(gb, 1, &(mp4Hdr->vop.alternate_vertical_scan)); in mpeg4_parse_vop_header()
912 if ((mp4Hdr->vol.sprite_enable == MPEG4_SPRITE_STATIC || in mpeg4_parse_vop_header()
913 mp4Hdr->vol.sprite_enable == MPEG4_SPRITE_GMC) && in mpeg4_parse_vop_header()
914 mp4Hdr->vop.coding_type == MPEG4_S_VOP) { in mpeg4_parse_vop_header()
916 mp4Hdr->vol.sprite_enable, mp4Hdr->vop.coding_type); in mpeg4_parse_vop_header()
920 READ_BITS(gb, mp4Hdr->vol.quant_bits, &(mp4Hdr->vop.quant)); in mpeg4_parse_vop_header()
921 if (mp4Hdr->vop.quant < 1) /* vop_quant */ in mpeg4_parse_vop_header()
922 mp4Hdr->vop.quant = 1; in mpeg4_parse_vop_header()
924 if (mp4Hdr->vop.coding_type != MPEG4_I_VOP) { in mpeg4_parse_vop_header()
925 READ_BITS(gb, 3, &(mp4Hdr->vop.fcode_forward)); /* fcode_forward */ in mpeg4_parse_vop_header()
928 if (mp4Hdr->vop.coding_type == MPEG4_B_VOP) { in mpeg4_parse_vop_header()
929 READ_BITS(gb, 3, &(mp4Hdr->vop.fcode_backward)); /* fcode_backward */ in mpeg4_parse_vop_header()
932 if (!mp4Hdr->vol.scalability) { in mpeg4_parse_vop_header()
933 if ((mp4Hdr->vol.shape != MPEG4_VIDOBJLAY_SHAPE_RECTANGULAR) && in mpeg4_parse_vop_header()
934 (mp4Hdr->vop.coding_type != MPEG4_I_VOP)) { in mpeg4_parse_vop_header()
940 mp4Hdr->vop.hdr_bits = gb->used_bits; in mpeg4_parse_vop_header()