21 #ifndef AVCODEC_AVCODEC_H
22 #define AVCODEC_AVCODEC_H
355 #define AV_CODEC_ID_IFF_BYTERUN1 AV_CODEC_ID_IFF_ILBM
393 #define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC
750 #define AV_CODEC_PROP_INTRA_ONLY (1 << 0)
756 #define AV_CODEC_PROP_LOSSY (1 << 1)
760 #define AV_CODEC_PROP_LOSSLESS (1 << 2)
770 #define AV_CODEC_PROP_REORDER (1 << 3)
775 #define AV_CODEC_PROP_BITMAP_SUB (1 << 16)
780 #define AV_CODEC_PROP_TEXT_SUB (1 << 17)
790 #define AV_INPUT_BUFFER_PADDING_SIZE 64
797 #define AV_INPUT_BUFFER_MIN_SIZE 16384
846 #define AV_CODEC_FLAG_UNALIGNED (1 << 0)
850 #define AV_CODEC_FLAG_QSCALE (1 << 1)
854 #define AV_CODEC_FLAG_4MV (1 << 2)
858 #define AV_CODEC_FLAG_OUTPUT_CORRUPT (1 << 3)
862 #define AV_CODEC_FLAG_QPEL (1 << 4)
867 #define AV_CODEC_FLAG_DROPCHANGED (1 << 5)
871 #define AV_CODEC_FLAG_PASS1 (1 << 9)
875 #define AV_CODEC_FLAG_PASS2 (1 << 10)
879 #define AV_CODEC_FLAG_LOOP_FILTER (1 << 11)
883 #define AV_CODEC_FLAG_GRAY (1 << 13)
887 #define AV_CODEC_FLAG_PSNR (1 << 15)
892 #define AV_CODEC_FLAG_TRUNCATED (1 << 16)
896 #define AV_CODEC_FLAG_INTERLACED_DCT (1 << 18)
900 #define AV_CODEC_FLAG_LOW_DELAY (1 << 19)
904 #define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
908 #define AV_CODEC_FLAG_BITEXACT (1 << 23)
913 #define AV_CODEC_FLAG_AC_PRED (1 << 24)
917 #define AV_CODEC_FLAG_INTERLACED_ME (1 << 29)
918 #define AV_CODEC_FLAG_CLOSED_GOP (1U << 31)
923 #define AV_CODEC_FLAG2_FAST (1 << 0)
927 #define AV_CODEC_FLAG2_NO_OUTPUT (1 << 2)
931 #define AV_CODEC_FLAG2_LOCAL_HEADER (1 << 3)
936 #define AV_CODEC_FLAG2_DROP_FRAME_TIMECODE (1 << 13)
942 #define AV_CODEC_FLAG2_CHUNKS (1 << 15)
946 #define AV_CODEC_FLAG2_IGNORE_CROP (1 << 16)
951 #define AV_CODEC_FLAG2_SHOW_ALL (1 << 22)
955 #define AV_CODEC_FLAG2_EXPORT_MVS (1 << 28)
959 #define AV_CODEC_FLAG2_SKIP_MANUAL (1 << 29)
963 #define AV_CODEC_FLAG2_RO_FLUSH_NOOP (1 << 30)
975 #define AV_CODEC_CAP_DRAW_HORIZ_BAND (1 << 0)
981 #define AV_CODEC_CAP_DR1 (1 << 1)
982 #define AV_CODEC_CAP_TRUNCATED (1 << 3)
1006 #define AV_CODEC_CAP_DELAY (1 << 5)
1011 #define AV_CODEC_CAP_SMALL_LAST_FRAME (1 << 6)
1024 #define AV_CODEC_CAP_SUBFRAMES (1 << 8)
1029 #define AV_CODEC_CAP_EXPERIMENTAL (1 << 9)
1033 #define AV_CODEC_CAP_CHANNEL_CONF (1 << 10)
1037 #define AV_CODEC_CAP_FRAME_THREADS (1 << 12)
1041 #define AV_CODEC_CAP_SLICE_THREADS (1 << 13)
1045 #define AV_CODEC_CAP_PARAM_CHANGE (1 << 14)
1049 #define AV_CODEC_CAP_AUTO_THREADS (1 << 15)
1053 #define AV_CODEC_CAP_VARIABLE_FRAME_SIZE (1 << 16)
1063 #define AV_CODEC_CAP_AVOID_PROBING (1 << 17)
1067 #define AV_CODEC_CAP_INTRA_ONLY 0x40000000
1071 #define AV_CODEC_CAP_LOSSLESS 0x80000000
1078 #define AV_CODEC_CAP_HARDWARE (1 << 18)
1085 #define AV_CODEC_CAP_HYBRID (1 << 19)
1092 #define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE (1 << 20)
1133 #if FF_API_UNSANITIZED_BITRATES
1142 #if FF_API_UNSANITIZED_BITRATES
1151 #if FF_API_UNSANITIZED_BITRATES
1176 #define AV_GET_BUFFER_FLAG_REF (1 << 0)
1418 #define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED
1499 #if FF_API_CONVERGENCE_DURATION
1509 #define AV_PKT_FLAG_KEY 0x0001
1510 #define AV_PKT_FLAG_CORRUPT 0x0002
1516 #define AV_PKT_FLAG_DISCARD 0x0004
1523 #define AV_PKT_FLAG_TRUSTED 0x0008
1528 #define AV_PKT_FLAG_DISPOSABLE 0x0010
1638 #define FF_COMPRESSION_DEFAULT -1
1836 #if FF_API_PRIVATE_OPT
1857 #if FF_API_PRIVATE_OPT
1921 #if FF_API_PRIVATE_OPT
1925 #define FF_PRED_LEFT 0
1926 #define FF_PRED_PLANE 1
1927 #define FF_PRED_MEDIAN 2
1970 #define FF_CMP_SAD 0
1971 #define FF_CMP_SSE 1
1972 #define FF_CMP_SATD 2
1973 #define FF_CMP_DCT 3
1974 #define FF_CMP_PSNR 4
1975 #define FF_CMP_BIT 5
1977 #define FF_CMP_ZERO 7
1978 #define FF_CMP_VSAD 8
1979 #define FF_CMP_VSSE 9
1980 #define FF_CMP_NSSE 10
1981 #define FF_CMP_W53 11
1982 #define FF_CMP_W97 12
1983 #define FF_CMP_DCTMAX 13
1984 #define FF_CMP_DCT264 14
1985 #define FF_CMP_MEDIAN_SAD 15
1986 #define FF_CMP_CHROMA 256
2002 #if FF_API_PRIVATE_OPT
2044 #define SLICE_FLAG_CODED_ORDER 0x0001
2045 #define SLICE_FLAG_ALLOW_FIELD 0x0002
2046 #define SLICE_FLAG_ALLOW_PLANE 0x0004
2054 #define FF_MB_DECISION_SIMPLE 0
2055 #define FF_MB_DECISION_BITS 1
2056 #define FF_MB_DECISION_RD 2
2076 #if FF_API_PRIVATE_OPT
2121 #if FF_API_PRIVATE_OPT
2135 #if FF_API_PRIVATE_OPT
2155 #if FF_API_PRIVATE_OPT
2168 #if FF_API_PRIVATE_OPT
2473 #if FF_API_CODER_TYPE
2474 #define FF_CODER_TYPE_VLC 0
2475 #define FF_CODER_TYPE_AC 1
2476 #define FF_CODER_TYPE_RAW 2
2477 #define FF_CODER_TYPE_RLE 3
2485 #if FF_API_PRIVATE_OPT
2491 #if FF_API_PRIVATE_OPT
2516 #if FF_API_PRIVATE_OPT
2530 #if FF_API_RTP_CALLBACK
2544 #if FF_API_PRIVATE_OPT
2555 #if FF_API_STAT_BITS
2600 #define FF_BUG_AUTODETECT 1
2601 #define FF_BUG_XVID_ILACE 4
2602 #define FF_BUG_UMP4 8
2603 #define FF_BUG_NO_PADDING 16
2604 #define FF_BUG_AMV 32
2605 #define FF_BUG_QPEL_CHROMA 64
2606 #define FF_BUG_STD_QPEL 128
2607 #define FF_BUG_QPEL_CHROMA2 256
2608 #define FF_BUG_DIRECT_BLOCKSIZE 512
2609 #define FF_BUG_EDGE 1024
2610 #define FF_BUG_HPEL_CHROMA 2048
2611 #define FF_BUG_DC_CLIP 4096
2612 #define FF_BUG_MS 8192
2613 #define FF_BUG_TRUNCATED 16384
2614 #define FF_BUG_IEDGE 32768
2629 #define FF_COMPLIANCE_VERY_STRICT 2
2630 #define FF_COMPLIANCE_STRICT 1
2631 #define FF_COMPLIANCE_NORMAL 0
2632 #define FF_COMPLIANCE_UNOFFICIAL -1
2633 #define FF_COMPLIANCE_EXPERIMENTAL -2
2641 #define FF_EC_GUESS_MVS 1
2642 #define FF_EC_DEBLOCK 2
2643 #define FF_EC_FAVOR_INTER 256
2651 #define FF_DEBUG_PICT_INFO 1
2652 #define FF_DEBUG_RC 2
2653 #define FF_DEBUG_BITSTREAM 4
2654 #define FF_DEBUG_MB_TYPE 8
2655 #define FF_DEBUG_QP 16
2660 #define FF_DEBUG_MV 32
2662 #define FF_DEBUG_DCT_COEFF 0x00000040
2663 #define FF_DEBUG_SKIP 0x00000080
2664 #define FF_DEBUG_STARTCODE 0x00000100
2665 #define FF_DEBUG_ER 0x00000400
2666 #define FF_DEBUG_MMCO 0x00000800
2667 #define FF_DEBUG_BUGS 0x00001000
2669 #define FF_DEBUG_VIS_QP 0x00002000
2670 #define FF_DEBUG_VIS_MB_TYPE 0x00004000
2672 #define FF_DEBUG_BUFFERS 0x00008000
2673 #define FF_DEBUG_THREADS 0x00010000
2674 #define FF_DEBUG_GREEN_MD 0x00800000
2675 #define FF_DEBUG_NOMC 0x01000000
2684 #define FF_DEBUG_VIS_MV_P_FOR 0x00000001 // visualize forward predicted MVs of P-frames
2685 #define FF_DEBUG_VIS_MV_B_FOR 0x00000002 // visualize forward predicted MVs of B-frames
2686 #define FF_DEBUG_VIS_MV_B_BACK 0x00000004 // visualize backward predicted MVs of B-frames
2702 #define AV_EF_CRCCHECK (1<<0)
2703 #define AV_EF_BITSTREAM (1<<1)
2704 #define AV_EF_BUFFER (1<<2)
2705 #define AV_EF_EXPLODE (1<<3)
2707 #define AV_EF_IGNORE_ERR (1<<15)
2708 #define AV_EF_CAREFUL (1<<16)
2709 #define AV_EF_COMPLIANT (1<<17)
2710 #define AV_EF_AGGRESSIVE (1<<18)
2756 #define FF_DCT_AUTO 0
2757 #define FF_DCT_FASTINT 1
2758 #define FF_DCT_INT 2
2759 #define FF_DCT_MMX 3
2760 #define FF_DCT_ALTIVEC 5
2761 #define FF_DCT_FAAN 6
2769 #define FF_IDCT_AUTO 0
2770 #define FF_IDCT_INT 1
2771 #define FF_IDCT_SIMPLE 2
2772 #define FF_IDCT_SIMPLEMMX 3
2773 #define FF_IDCT_ARM 7
2774 #define FF_IDCT_ALTIVEC 8
2775 #define FF_IDCT_SIMPLEARM 10
2776 #define FF_IDCT_XVID 14
2777 #define FF_IDCT_SIMPLEARMV5TE 16
2778 #define FF_IDCT_SIMPLEARMV6 17
2779 #define FF_IDCT_FAAN 20
2780 #define FF_IDCT_SIMPLENEON 22
2781 #define FF_IDCT_NONE 24
2782 #define FF_IDCT_SIMPLEAUTO 128
2807 #if FF_API_CODED_FRAME
2835 #define FF_THREAD_FRAME 1
2836 #define FF_THREAD_SLICE 2
2899 #define FF_PROFILE_UNKNOWN -99
2900 #define FF_PROFILE_RESERVED -100
2902 #define FF_PROFILE_AAC_MAIN 0
2903 #define FF_PROFILE_AAC_LOW 1
2904 #define FF_PROFILE_AAC_SSR 2
2905 #define FF_PROFILE_AAC_LTP 3
2906 #define FF_PROFILE_AAC_HE 4
2907 #define FF_PROFILE_AAC_HE_V2 28
2908 #define FF_PROFILE_AAC_LD 22
2909 #define FF_PROFILE_AAC_ELD 38
2910 #define FF_PROFILE_MPEG2_AAC_LOW 128
2911 #define FF_PROFILE_MPEG2_AAC_HE 131
2913 #define FF_PROFILE_DNXHD 0
2914 #define FF_PROFILE_DNXHR_LB 1
2915 #define FF_PROFILE_DNXHR_SQ 2
2916 #define FF_PROFILE_DNXHR_HQ 3
2917 #define FF_PROFILE_DNXHR_HQX 4
2918 #define FF_PROFILE_DNXHR_444 5
2920 #define FF_PROFILE_DTS 20
2921 #define FF_PROFILE_DTS_ES 30
2922 #define FF_PROFILE_DTS_96_24 40
2923 #define FF_PROFILE_DTS_HD_HRA 50
2924 #define FF_PROFILE_DTS_HD_MA 60
2925 #define FF_PROFILE_DTS_EXPRESS 70
2927 #define FF_PROFILE_MPEG2_422 0
2928 #define FF_PROFILE_MPEG2_HIGH 1
2929 #define FF_PROFILE_MPEG2_SS 2
2930 #define FF_PROFILE_MPEG2_SNR_SCALABLE 3
2931 #define FF_PROFILE_MPEG2_MAIN 4
2932 #define FF_PROFILE_MPEG2_SIMPLE 5
2934 #define FF_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag
2935 #define FF_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag
2937 #define FF_PROFILE_H264_BASELINE 66
2938 #define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED)
2939 #define FF_PROFILE_H264_MAIN 77
2940 #define FF_PROFILE_H264_EXTENDED 88
2941 #define FF_PROFILE_H264_HIGH 100
2942 #define FF_PROFILE_H264_HIGH_10 110
2943 #define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA)
2944 #define FF_PROFILE_H264_MULTIVIEW_HIGH 118
2945 #define FF_PROFILE_H264_HIGH_422 122
2946 #define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA)
2947 #define FF_PROFILE_H264_STEREO_HIGH 128
2948 #define FF_PROFILE_H264_HIGH_444 144
2949 #define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244
2950 #define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA)
2951 #define FF_PROFILE_H264_CAVLC_444 44
2953 #define FF_PROFILE_VC1_SIMPLE 0
2954 #define FF_PROFILE_VC1_MAIN 1
2955 #define FF_PROFILE_VC1_COMPLEX 2
2956 #define FF_PROFILE_VC1_ADVANCED 3
2958 #define FF_PROFILE_MPEG4_SIMPLE 0
2959 #define FF_PROFILE_MPEG4_SIMPLE_SCALABLE 1
2960 #define FF_PROFILE_MPEG4_CORE 2
2961 #define FF_PROFILE_MPEG4_MAIN 3
2962 #define FF_PROFILE_MPEG4_N_BIT 4
2963 #define FF_PROFILE_MPEG4_SCALABLE_TEXTURE 5
2964 #define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6
2965 #define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7
2966 #define FF_PROFILE_MPEG4_HYBRID 8
2967 #define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME 9
2968 #define FF_PROFILE_MPEG4_CORE_SCALABLE 10
2969 #define FF_PROFILE_MPEG4_ADVANCED_CODING 11
2970 #define FF_PROFILE_MPEG4_ADVANCED_CORE 12
2971 #define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13
2972 #define FF_PROFILE_MPEG4_SIMPLE_STUDIO 14
2973 #define FF_PROFILE_MPEG4_ADVANCED_SIMPLE 15
2975 #define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 1
2976 #define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 2
2977 #define FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 32768
2978 #define FF_PROFILE_JPEG2000_DCINEMA_2K 3
2979 #define FF_PROFILE_JPEG2000_DCINEMA_4K 4
2981 #define FF_PROFILE_VP9_0 0
2982 #define FF_PROFILE_VP9_1 1
2983 #define FF_PROFILE_VP9_2 2
2984 #define FF_PROFILE_VP9_3 3
2986 #define FF_PROFILE_HEVC_MAIN 1
2987 #define FF_PROFILE_HEVC_MAIN_10 2
2988 #define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3
2989 #define FF_PROFILE_HEVC_REXT 4
2991 #define FF_PROFILE_AV1_MAIN 0
2992 #define FF_PROFILE_AV1_HIGH 1
2993 #define FF_PROFILE_AV1_PROFESSIONAL 2
2995 #define FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT 0xc0
2996 #define FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT 0xc1
2997 #define FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT 0xc2
2998 #define FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS 0xc3
2999 #define FF_PROFILE_MJPEG_JPEG_LS 0xf7
3001 #define FF_PROFILE_SBC_MSBC 1
3003 #define FF_PROFILE_PRORES_PROXY 0
3004 #define FF_PROFILE_PRORES_LT 1
3005 #define FF_PROFILE_PRORES_STANDARD 2
3006 #define FF_PROFILE_PRORES_HQ 3
3007 #define FF_PROFILE_PRORES_4444 4
3008 #define FF_PROFILE_PRORES_XQ 5
3010 #define FF_PROFILE_ARIB_PROFILE_A 0
3011 #define FF_PROFILE_ARIB_PROFILE_C 1
3019 #define FF_LEVEL_UNKNOWN -99
3053 #if FF_API_VBV_DELAY
3066 #if FF_API_SIDEDATA_ONLY_PKT
3161 #define FF_SUB_CHARENC_MODE_DO_NOTHING -1
3162 #define FF_SUB_CHARENC_MODE_AUTOMATIC 0
3163 #define FF_SUB_CHARENC_MODE_PRE_DECODER 1
3164 #define FF_SUB_CHARENC_MODE_IGNORE 2
3187 #if !FF_API_DEBUG_MV
3194 #define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames
3195 #define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames
3196 #define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
3228 #define FF_CODEC_PROPERTY_LOSSLESS 0x00000001
3229 #define FF_CODEC_PROPERTY_CLOSED_CAPTIONS 0x00000002
3270 #define FF_SUB_TEXT_FMT_ASS 0
3271 #if FF_API_ASS_TIMING
3272 #define FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS 1
3375 #if FF_API_CODEC_GET_SET
3578 int *got_packet_ptr);
3625 #if FF_API_CODEC_GET_SET
3815 #define AV_HWACCEL_CODEC_CAP_EXPERIMENTAL 0x0200
3825 #define AV_HWACCEL_FLAG_IGNORE_LEVEL (1 << 0)
3831 #define AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH (1 << 1)
3845 #define AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH (1 << 2)
3851 #if FF_API_AVPICTURE
3896 #define AV_SUBTITLE_FLAG_FORCED 0x00000001
3905 #if FF_API_AVPICTURE
4183 #if FF_API_GET_CONTEXT_DEFAULTS
4200 #if FF_API_COPY_CONTEXT
4436 #if FF_API_AVPACKET_OLD_API
4524 #if FF_API_MERGE_SD_API
4780 int *got_frame_ptr,
const AVPacket *avpkt);
4829 int *got_picture_ptr,
5135 #define AV_PARSER_PTS_NB 4
5142 #define PARSER_FLAG_COMPLETE_FRAMES 0x0001
5143 #define PARSER_FLAG_ONCE 0x0002
5145 #define PARSER_FLAG_FETCHED_OFFSET 0x0004
5146 #define PARSER_FLAG_USE_CODEC_TS 0x1000
5159 #if FF_API_CONVERGENCE_DURATION
5283 const uint8_t **poutbuf,
int *poutbuf_size,
5341 uint8_t **poutbuf,
int *poutbuf_size,
5343 int64_t
pts, int64_t dts,
5352 uint8_t **poutbuf,
int *poutbuf_size,
5353 const uint8_t *
buf,
int buf_size,
int keyframe);