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
742 #define AV_CODEC_PROP_INTRA_ONLY (1 << 0)
748 #define AV_CODEC_PROP_LOSSY (1 << 1)
752 #define AV_CODEC_PROP_LOSSLESS (1 << 2)
762 #define AV_CODEC_PROP_REORDER (1 << 3)
767 #define AV_CODEC_PROP_BITMAP_SUB (1 << 16)
772 #define AV_CODEC_PROP_TEXT_SUB (1 << 17)
782 #define AV_INPUT_BUFFER_PADDING_SIZE 64
789 #define AV_INPUT_BUFFER_MIN_SIZE 16384
838 #define AV_CODEC_FLAG_UNALIGNED (1 << 0)
842 #define AV_CODEC_FLAG_QSCALE (1 << 1)
846 #define AV_CODEC_FLAG_4MV (1 << 2)
850 #define AV_CODEC_FLAG_OUTPUT_CORRUPT (1 << 3)
854 #define AV_CODEC_FLAG_QPEL (1 << 4)
858 #define AV_CODEC_FLAG_PASS1 (1 << 9)
862 #define AV_CODEC_FLAG_PASS2 (1 << 10)
866 #define AV_CODEC_FLAG_LOOP_FILTER (1 << 11)
870 #define AV_CODEC_FLAG_GRAY (1 << 13)
874 #define AV_CODEC_FLAG_PSNR (1 << 15)
879 #define AV_CODEC_FLAG_TRUNCATED (1 << 16)
883 #define AV_CODEC_FLAG_INTERLACED_DCT (1 << 18)
887 #define AV_CODEC_FLAG_LOW_DELAY (1 << 19)
891 #define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
895 #define AV_CODEC_FLAG_BITEXACT (1 << 23)
900 #define AV_CODEC_FLAG_AC_PRED (1 << 24)
904 #define AV_CODEC_FLAG_INTERLACED_ME (1 << 29)
905 #define AV_CODEC_FLAG_CLOSED_GOP (1U << 31)
910 #define AV_CODEC_FLAG2_FAST (1 << 0)
914 #define AV_CODEC_FLAG2_NO_OUTPUT (1 << 2)
918 #define AV_CODEC_FLAG2_LOCAL_HEADER (1 << 3)
923 #define AV_CODEC_FLAG2_DROP_FRAME_TIMECODE (1 << 13)
929 #define AV_CODEC_FLAG2_CHUNKS (1 << 15)
933 #define AV_CODEC_FLAG2_IGNORE_CROP (1 << 16)
938 #define AV_CODEC_FLAG2_SHOW_ALL (1 << 22)
942 #define AV_CODEC_FLAG2_EXPORT_MVS (1 << 28)
946 #define AV_CODEC_FLAG2_SKIP_MANUAL (1 << 29)
950 #define AV_CODEC_FLAG2_RO_FLUSH_NOOP (1 << 30)
962 #define AV_CODEC_CAP_DRAW_HORIZ_BAND (1 << 0)
968 #define AV_CODEC_CAP_DR1 (1 << 1)
969 #define AV_CODEC_CAP_TRUNCATED (1 << 3)
993 #define AV_CODEC_CAP_DELAY (1 << 5)
998 #define AV_CODEC_CAP_SMALL_LAST_FRAME (1 << 6)
1011 #define AV_CODEC_CAP_SUBFRAMES (1 << 8)
1016 #define AV_CODEC_CAP_EXPERIMENTAL (1 << 9)
1020 #define AV_CODEC_CAP_CHANNEL_CONF (1 << 10)
1024 #define AV_CODEC_CAP_FRAME_THREADS (1 << 12)
1028 #define AV_CODEC_CAP_SLICE_THREADS (1 << 13)
1032 #define AV_CODEC_CAP_PARAM_CHANGE (1 << 14)
1036 #define AV_CODEC_CAP_AUTO_THREADS (1 << 15)
1040 #define AV_CODEC_CAP_VARIABLE_FRAME_SIZE (1 << 16)
1050 #define AV_CODEC_CAP_AVOID_PROBING (1 << 17)
1054 #define AV_CODEC_CAP_INTRA_ONLY 0x40000000
1058 #define AV_CODEC_CAP_LOSSLESS 0x80000000
1065 #define AV_CODEC_CAP_HARDWARE (1 << 18)
1072 #define AV_CODEC_CAP_HYBRID (1 << 19)
1144 #define AV_GET_BUFFER_FLAG_REF (1 << 0)
1386 #define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED
1467 #if FF_API_CONVERGENCE_DURATION
1477 #define AV_PKT_FLAG_KEY 0x0001
1478 #define AV_PKT_FLAG_CORRUPT 0x0002
1484 #define AV_PKT_FLAG_DISCARD 0x0004
1491 #define AV_PKT_FLAG_TRUSTED 0x0008
1496 #define AV_PKT_FLAG_DISPOSABLE 0x0010
1606 #define FF_COMPRESSION_DEFAULT -1
1804 #if FF_API_PRIVATE_OPT
1825 #if FF_API_PRIVATE_OPT
1889 #if FF_API_PRIVATE_OPT
1893 #define FF_PRED_LEFT 0
1894 #define FF_PRED_PLANE 1
1895 #define FF_PRED_MEDIAN 2
1938 #define FF_CMP_SAD 0
1939 #define FF_CMP_SSE 1
1940 #define FF_CMP_SATD 2
1941 #define FF_CMP_DCT 3
1942 #define FF_CMP_PSNR 4
1943 #define FF_CMP_BIT 5
1945 #define FF_CMP_ZERO 7
1946 #define FF_CMP_VSAD 8
1947 #define FF_CMP_VSSE 9
1948 #define FF_CMP_NSSE 10
1949 #define FF_CMP_W53 11
1950 #define FF_CMP_W97 12
1951 #define FF_CMP_DCTMAX 13
1952 #define FF_CMP_DCT264 14
1953 #define FF_CMP_MEDIAN_SAD 15
1954 #define FF_CMP_CHROMA 256
1970 #if FF_API_PRIVATE_OPT
2012 #define SLICE_FLAG_CODED_ORDER 0x0001
2013 #define SLICE_FLAG_ALLOW_FIELD 0x0002
2014 #define SLICE_FLAG_ALLOW_PLANE 0x0004
2022 #define FF_MB_DECISION_SIMPLE 0
2023 #define FF_MB_DECISION_BITS 1
2024 #define FF_MB_DECISION_RD 2
2040 #if FF_API_PRIVATE_OPT
2085 #if FF_API_PRIVATE_OPT
2099 #if FF_API_PRIVATE_OPT
2119 #if FF_API_PRIVATE_OPT
2132 #if FF_API_PRIVATE_OPT
2437 #if FF_API_CODER_TYPE
2438 #define FF_CODER_TYPE_VLC 0
2439 #define FF_CODER_TYPE_AC 1
2440 #define FF_CODER_TYPE_RAW 2
2441 #define FF_CODER_TYPE_RLE 3
2449 #if FF_API_PRIVATE_OPT
2455 #if FF_API_PRIVATE_OPT
2480 #if FF_API_PRIVATE_OPT
2494 #if FF_API_RTP_CALLBACK
2508 #if FF_API_PRIVATE_OPT
2519 #if FF_API_STAT_BITS
2564 #define FF_BUG_AUTODETECT 1
2565 #define FF_BUG_XVID_ILACE 4
2566 #define FF_BUG_UMP4 8
2567 #define FF_BUG_NO_PADDING 16
2568 #define FF_BUG_AMV 32
2569 #define FF_BUG_QPEL_CHROMA 64
2570 #define FF_BUG_STD_QPEL 128
2571 #define FF_BUG_QPEL_CHROMA2 256
2572 #define FF_BUG_DIRECT_BLOCKSIZE 512
2573 #define FF_BUG_EDGE 1024
2574 #define FF_BUG_HPEL_CHROMA 2048
2575 #define FF_BUG_DC_CLIP 4096
2576 #define FF_BUG_MS 8192
2577 #define FF_BUG_TRUNCATED 16384
2578 #define FF_BUG_IEDGE 32768
2593 #define FF_COMPLIANCE_VERY_STRICT 2
2594 #define FF_COMPLIANCE_STRICT 1
2595 #define FF_COMPLIANCE_NORMAL 0
2596 #define FF_COMPLIANCE_UNOFFICIAL -1
2597 #define FF_COMPLIANCE_EXPERIMENTAL -2
2605 #define FF_EC_GUESS_MVS 1
2606 #define FF_EC_DEBLOCK 2
2607 #define FF_EC_FAVOR_INTER 256
2615 #define FF_DEBUG_PICT_INFO 1
2616 #define FF_DEBUG_RC 2
2617 #define FF_DEBUG_BITSTREAM 4
2618 #define FF_DEBUG_MB_TYPE 8
2619 #define FF_DEBUG_QP 16
2624 #define FF_DEBUG_MV 32
2626 #define FF_DEBUG_DCT_COEFF 0x00000040
2627 #define FF_DEBUG_SKIP 0x00000080
2628 #define FF_DEBUG_STARTCODE 0x00000100
2629 #define FF_DEBUG_ER 0x00000400
2630 #define FF_DEBUG_MMCO 0x00000800
2631 #define FF_DEBUG_BUGS 0x00001000
2633 #define FF_DEBUG_VIS_QP 0x00002000
2634 #define FF_DEBUG_VIS_MB_TYPE 0x00004000
2636 #define FF_DEBUG_BUFFERS 0x00008000
2637 #define FF_DEBUG_THREADS 0x00010000
2638 #define FF_DEBUG_GREEN_MD 0x00800000
2639 #define FF_DEBUG_NOMC 0x01000000
2648 #define FF_DEBUG_VIS_MV_P_FOR 0x00000001 // visualize forward predicted MVs of P-frames
2649 #define FF_DEBUG_VIS_MV_B_FOR 0x00000002 // visualize forward predicted MVs of B-frames
2650 #define FF_DEBUG_VIS_MV_B_BACK 0x00000004 // visualize backward predicted MVs of B-frames
2666 #define AV_EF_CRCCHECK (1<<0)
2667 #define AV_EF_BITSTREAM (1<<1)
2668 #define AV_EF_BUFFER (1<<2)
2669 #define AV_EF_EXPLODE (1<<3)
2671 #define AV_EF_IGNORE_ERR (1<<15)
2672 #define AV_EF_CAREFUL (1<<16)
2673 #define AV_EF_COMPLIANT (1<<17)
2674 #define AV_EF_AGGRESSIVE (1<<18)
2717 #define FF_DCT_AUTO 0
2718 #define FF_DCT_FASTINT 1
2719 #define FF_DCT_INT 2
2720 #define FF_DCT_MMX 3
2721 #define FF_DCT_ALTIVEC 5
2722 #define FF_DCT_FAAN 6
2730 #define FF_IDCT_AUTO 0
2731 #define FF_IDCT_INT 1
2732 #define FF_IDCT_SIMPLE 2
2733 #define FF_IDCT_SIMPLEMMX 3
2734 #define FF_IDCT_ARM 7
2735 #define FF_IDCT_ALTIVEC 8
2736 #define FF_IDCT_SIMPLEARM 10
2737 #define FF_IDCT_XVID 14
2738 #define FF_IDCT_SIMPLEARMV5TE 16
2739 #define FF_IDCT_SIMPLEARMV6 17
2740 #define FF_IDCT_FAAN 20
2741 #define FF_IDCT_SIMPLENEON 22
2742 #define FF_IDCT_NONE 24
2743 #define FF_IDCT_SIMPLEAUTO 128
2768 #if FF_API_CODED_FRAME
2796 #define FF_THREAD_FRAME 1
2797 #define FF_THREAD_SLICE 2
2860 #define FF_PROFILE_UNKNOWN -99
2861 #define FF_PROFILE_RESERVED -100
2863 #define FF_PROFILE_AAC_MAIN 0
2864 #define FF_PROFILE_AAC_LOW 1
2865 #define FF_PROFILE_AAC_SSR 2
2866 #define FF_PROFILE_AAC_LTP 3
2867 #define FF_PROFILE_AAC_HE 4
2868 #define FF_PROFILE_AAC_HE_V2 28
2869 #define FF_PROFILE_AAC_LD 22
2870 #define FF_PROFILE_AAC_ELD 38
2871 #define FF_PROFILE_MPEG2_AAC_LOW 128
2872 #define FF_PROFILE_MPEG2_AAC_HE 131
2874 #define FF_PROFILE_DNXHD 0
2875 #define FF_PROFILE_DNXHR_LB 1
2876 #define FF_PROFILE_DNXHR_SQ 2
2877 #define FF_PROFILE_DNXHR_HQ 3
2878 #define FF_PROFILE_DNXHR_HQX 4
2879 #define FF_PROFILE_DNXHR_444 5
2881 #define FF_PROFILE_DTS 20
2882 #define FF_PROFILE_DTS_ES 30
2883 #define FF_PROFILE_DTS_96_24 40
2884 #define FF_PROFILE_DTS_HD_HRA 50
2885 #define FF_PROFILE_DTS_HD_MA 60
2886 #define FF_PROFILE_DTS_EXPRESS 70
2888 #define FF_PROFILE_MPEG2_422 0
2889 #define FF_PROFILE_MPEG2_HIGH 1
2890 #define FF_PROFILE_MPEG2_SS 2
2891 #define FF_PROFILE_MPEG2_SNR_SCALABLE 3
2892 #define FF_PROFILE_MPEG2_MAIN 4
2893 #define FF_PROFILE_MPEG2_SIMPLE 5
2895 #define FF_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag
2896 #define FF_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag
2898 #define FF_PROFILE_H264_BASELINE 66
2899 #define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED)
2900 #define FF_PROFILE_H264_MAIN 77
2901 #define FF_PROFILE_H264_EXTENDED 88
2902 #define FF_PROFILE_H264_HIGH 100
2903 #define FF_PROFILE_H264_HIGH_10 110
2904 #define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA)
2905 #define FF_PROFILE_H264_MULTIVIEW_HIGH 118
2906 #define FF_PROFILE_H264_HIGH_422 122
2907 #define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA)
2908 #define FF_PROFILE_H264_STEREO_HIGH 128
2909 #define FF_PROFILE_H264_HIGH_444 144
2910 #define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244
2911 #define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA)
2912 #define FF_PROFILE_H264_CAVLC_444 44
2914 #define FF_PROFILE_VC1_SIMPLE 0
2915 #define FF_PROFILE_VC1_MAIN 1
2916 #define FF_PROFILE_VC1_COMPLEX 2
2917 #define FF_PROFILE_VC1_ADVANCED 3
2919 #define FF_PROFILE_MPEG4_SIMPLE 0
2920 #define FF_PROFILE_MPEG4_SIMPLE_SCALABLE 1
2921 #define FF_PROFILE_MPEG4_CORE 2
2922 #define FF_PROFILE_MPEG4_MAIN 3
2923 #define FF_PROFILE_MPEG4_N_BIT 4
2924 #define FF_PROFILE_MPEG4_SCALABLE_TEXTURE 5
2925 #define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6
2926 #define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7
2927 #define FF_PROFILE_MPEG4_HYBRID 8
2928 #define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME 9
2929 #define FF_PROFILE_MPEG4_CORE_SCALABLE 10
2930 #define FF_PROFILE_MPEG4_ADVANCED_CODING 11
2931 #define FF_PROFILE_MPEG4_ADVANCED_CORE 12
2932 #define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13
2933 #define FF_PROFILE_MPEG4_SIMPLE_STUDIO 14
2934 #define FF_PROFILE_MPEG4_ADVANCED_SIMPLE 15
2936 #define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 1
2937 #define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 2
2938 #define FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 32768
2939 #define FF_PROFILE_JPEG2000_DCINEMA_2K 3
2940 #define FF_PROFILE_JPEG2000_DCINEMA_4K 4
2942 #define FF_PROFILE_VP9_0 0
2943 #define FF_PROFILE_VP9_1 1
2944 #define FF_PROFILE_VP9_2 2
2945 #define FF_PROFILE_VP9_3 3
2947 #define FF_PROFILE_HEVC_MAIN 1
2948 #define FF_PROFILE_HEVC_MAIN_10 2
2949 #define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3
2950 #define FF_PROFILE_HEVC_REXT 4
2952 #define FF_PROFILE_AV1_MAIN 0
2953 #define FF_PROFILE_AV1_HIGH 1
2954 #define FF_PROFILE_AV1_PROFESSIONAL 2
2956 #define FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT 0xc0
2957 #define FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT 0xc1
2958 #define FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT 0xc2
2959 #define FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS 0xc3
2960 #define FF_PROFILE_MJPEG_JPEG_LS 0xf7
2962 #define FF_PROFILE_SBC_MSBC 1
2970 #define FF_LEVEL_UNKNOWN -99
3004 #if FF_API_VBV_DELAY
3017 #if FF_API_SIDEDATA_ONLY_PKT
3112 #define FF_SUB_CHARENC_MODE_DO_NOTHING -1
3113 #define FF_SUB_CHARENC_MODE_AUTOMATIC 0
3114 #define FF_SUB_CHARENC_MODE_PRE_DECODER 1
3115 #define FF_SUB_CHARENC_MODE_IGNORE 2
3138 #if !FF_API_DEBUG_MV
3145 #define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames
3146 #define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames
3147 #define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
3179 #define FF_CODEC_PROPERTY_LOSSLESS 0x00000001
3180 #define FF_CODEC_PROPERTY_CLOSED_CAPTIONS 0x00000002
3221 #define FF_SUB_TEXT_FMT_ASS 0
3222 #if FF_API_ASS_TIMING
3223 #define FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS 1
3318 #if FF_API_CODEC_GET_SET
3521 int *got_packet_ptr);
3568 #if FF_API_CODEC_GET_SET
3758 #define AV_HWACCEL_CODEC_CAP_EXPERIMENTAL 0x0200
3768 #define AV_HWACCEL_FLAG_IGNORE_LEVEL (1 << 0)
3774 #define AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH (1 << 1)
3788 #define AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH (1 << 2)
3794 #if FF_API_AVPICTURE
3839 #define AV_SUBTITLE_FLAG_FORCED 0x00000001
3848 #if FF_API_AVPICTURE
4126 #if FF_API_GET_CONTEXT_DEFAULTS
4143 #if FF_API_COPY_CONTEXT
4379 #if FF_API_AVPACKET_OLD_API
4467 #if FF_API_MERGE_SD_API
4723 int *got_frame_ptr,
const AVPacket *avpkt);
4772 int *got_picture_ptr,
5075 #define AV_PARSER_PTS_NB 4
5082 #define PARSER_FLAG_COMPLETE_FRAMES 0x0001
5083 #define PARSER_FLAG_ONCE 0x0002
5085 #define PARSER_FLAG_FETCHED_OFFSET 0x0004
5086 #define PARSER_FLAG_USE_CODEC_TS 0x1000
5099 #if FF_API_CONVERGENCE_DURATION
5223 const uint8_t **poutbuf,
int *poutbuf_size,
5281 uint8_t **poutbuf,
int *poutbuf_size,
5283 int64_t
pts, int64_t dts,
5292 uint8_t **poutbuf,
int *poutbuf_size,
5293 const uint8_t *
buf,
int buf_size,
int keyframe);