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

Lines Matching refs:hvcc

70 static void hvcc_update_ptl(HEVCDecoderConfigurationRecord *hvcc,
77 hvcc->general_profile_space = ptl->profile_space;
84 if (hvcc->general_tier_flag < ptl->tier_flag)
85 hvcc->general_level_idc = ptl->level_idc;
87 hvcc->general_level_idc = FFMAX(hvcc->general_level_idc, ptl->level_idc);
93 hvcc->general_tier_flag = FFMAX(hvcc->general_tier_flag, ptl->tier_flag);
109 hvcc->general_profile_idc = FFMAX(hvcc->general_profile_idc, ptl->profile_idc);
115 hvcc->general_profile_compatibility_flags &= ptl->profile_compatibility_flags;
121 hvcc->general_constraint_indicator_flags &= ptl->constraint_indicator_flags;
125 HEVCDecoderConfigurationRecord *hvcc,
139 hvcc_update_ptl(hvcc, &general_ptl);
272 HEVCDecoderConfigurationRecord *hvcc,
339 hvcc->min_spatial_segmentation_idc = FFMIN(hvcc->min_spatial_segmentation_idc,
357 HEVCDecoderConfigurationRecord *hvcc)
378 hvcc->numTemporalLayers = FFMAX(hvcc->numTemporalLayers,
387 hvcc_parse_ptl(gb, hvcc, vps_max_sub_layers_minus1);
477 HEVCDecoderConfigurationRecord *hvcc)
494 hvcc->numTemporalLayers = FFMAX(hvcc->numTemporalLayers,
497 hvcc->temporalIdNested = get_bits1(gb);
499 hvcc_parse_ptl(gb, hvcc, sps_max_sub_layers_minus1);
503 hvcc->chromaFormat = get_ue_golomb_long(gb);
505 if (hvcc->chromaFormat == 3)
518 hvcc->bitDepthLumaMinus8 = get_ue_golomb_long(gb);
519 hvcc->bitDepthChromaMinus8 = get_ue_golomb_long(gb);
571 hvcc_parse_vui(gb, hvcc, sps_max_sub_layers_minus1);
578 HEVCDecoderConfigurationRecord *hvcc)
621 hvcc->parallelismType = 0; // mixed-type parallel decoding
623 hvcc->parallelismType = 3; // wavefront-based parallel decoding
625 hvcc->parallelismType = 2; // tile-based parallel decoding
627 hvcc->parallelismType = 1; // slice-based parallel decoding
680 HEVCDecoderConfigurationRecord *hvcc)
687 for (index = 0; index < hvcc->numOfArrays; index++)
688 if (hvcc->array[index].NAL_unit_type == nal_type)
691 if (index >= hvcc->numOfArrays) {
694 ret = av_reallocp_array(&hvcc->array, index + 1, sizeof(HVCCNALUnitArray));
698 for (i = hvcc->numOfArrays; i <= index; i++)
699 memset(&hvcc->array[i], 0, sizeof(HVCCNALUnitArray));
700 hvcc->numOfArrays = index + 1;
703 array = &hvcc->array[index];
733 HEVCDecoderConfigurationRecord *hvcc)
765 ps_array_completeness, hvcc);
769 ret = hvcc_parse_vps(&gbc, hvcc);
771 ret = hvcc_parse_sps(&gbc, hvcc);
773 ret = hvcc_parse_pps(&gbc, hvcc);
787 static void hvcc_init(HEVCDecoderConfigurationRecord *hvcc)
789 memset(hvcc, 0, sizeof(HEVCDecoderConfigurationRecord));
790 hvcc->configurationVersion = 1;
791 hvcc->lengthSizeMinusOne = 3; // 4 bytes
797 hvcc->general_profile_compatibility_flags = 0xffffffff;
798 hvcc->general_constraint_indicator_flags = 0xffffffffffff;
804 hvcc->min_spatial_segmentation_idc = MAX_SPATIAL_SEGMENTATION + 1;
807 static void hvcc_close(HEVCDecoderConfigurationRecord *hvcc)
811 for (i = 0; i < hvcc->numOfArrays; i++) {
812 hvcc->array[i].numNalus = 0;
813 av_freep(&hvcc->array[i].nalUnit);
814 av_freep(&hvcc->array[i].nalUnitLength);
817 hvcc->numOfArrays = 0;
818 av_freep(&hvcc->array);
821 static int hvcc_write(AVIOContext *pb, HEVCDecoderConfigurationRecord *hvcc)
829 hvcc->configurationVersion = 1;
834 if (hvcc->min_spatial_segmentation_idc > MAX_SPATIAL_SEGMENTATION)
835 hvcc->min_spatial_segmentation_idc = 0;
842 if (!hvcc->min_spatial_segmentation_idc)
843 hvcc->parallelismType = 0;
849 hvcc->avgFrameRate = 0;
850 hvcc->constantFrameRate = 0;
853 hvcc->configurationVersion);
855 hvcc->general_profile_space);
857 hvcc->general_tier_flag);
859 hvcc->general_profile_idc);
861 hvcc->general_profile_compatibility_flags);
863 hvcc->general_constraint_indicator_flags);
865 hvcc->general_level_idc);
867 hvcc->min_spatial_segmentation_idc);
869 hvcc->parallelismType);
871 hvcc->chromaFormat);
873 hvcc->bitDepthLumaMinus8);
875 hvcc->bitDepthChromaMinus8);
877 hvcc->avgFrameRate);
879 hvcc->constantFrameRate);
881 hvcc->numTemporalLayers);
883 hvcc->temporalIdNested);
885 hvcc->lengthSizeMinusOne);
887 hvcc->numOfArrays);
888 for (i = 0; i < hvcc->numOfArrays; i++) {
890 i, hvcc->array[i].array_completeness);
892 i, hvcc->array[i].NAL_unit_type);
894 i, hvcc->array[i].numNalus);
895 for (j = 0; j < hvcc->array[i].numNalus; j++)
898 i, j, hvcc->array[i].nalUnitLength[j]);
904 for (i = 0; i < hvcc->numOfArrays; i++)
905 switch (hvcc->array[i].NAL_unit_type) {
907 vps_count += hvcc->array[i].numNalus;
910 sps_count += hvcc->array[i].numNalus;
913 pps_count += hvcc->array[i].numNalus;
924 avio_w8(pb, hvcc->configurationVersion);
931 avio_w8(pb, hvcc->general_profile_space << 6 |
932 hvcc->general_tier_flag << 5 |
933 hvcc->general_profile_idc);
936 avio_wb32(pb, hvcc->general_profile_compatibility_flags);
939 avio_wb32(pb, hvcc->general_constraint_indicator_flags >> 16);
940 avio_wb16(pb, hvcc->general_constraint_indicator_flags);
943 avio_w8(pb, hvcc->general_level_idc);
949 avio_wb16(pb, hvcc->min_spatial_segmentation_idc | 0xf000);
955 avio_w8(pb, hvcc->parallelismType | 0xfc);
961 avio_w8(pb, hvcc->chromaFormat | 0xfc);
967 avio_w8(pb, hvcc->bitDepthLumaMinus8 | 0xf8);
973 avio_w8(pb, hvcc->bitDepthChromaMinus8 | 0xf8);
976 avio_wb16(pb, hvcc->avgFrameRate);
984 avio_w8(pb, hvcc->constantFrameRate << 6 |
985 hvcc->numTemporalLayers << 3 |
986 hvcc->temporalIdNested << 2 |
987 hvcc->lengthSizeMinusOne);
990 avio_w8(pb, hvcc->numOfArrays);
992 for (i = 0; i < hvcc->numOfArrays; i++) {
998 avio_w8(pb, hvcc->array[i].array_completeness << 7 |
999 hvcc->array[i].NAL_unit_type & 0x3f);
1002 avio_wb16(pb, hvcc->array[i].numNalus);
1004 for (j = 0; j < hvcc->array[i].numNalus; j++) {
1006 avio_wb16(pb, hvcc->array[i].nalUnitLength[j]);
1009 avio_write(pb, hvcc->array[i].nalUnit[j],
1010 hvcc->array[i].nalUnitLength[j]);
1086 HEVCDecoderConfigurationRecord hvcc;
1088 hvcc_init(&hvcc);
1123 ret = hvcc_add_nal_unit(buf, len, ps_array_completeness, &hvcc);
1134 ret = hvcc_write(pb, &hvcc);
1137 hvcc_close(&hvcc);