21 #ifndef AVCODEC_AVCODEC_H
22 #define AVCODEC_AVCODEC_H
109 AV_CODEC_ID_MPEG2VIDEO_XVMC,
321 #define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC
394 #if FF_API_VIMA_DECODER
588 #define AV_CODEC_PROP_INTRA_ONLY (1 << 0)
594 #define AV_CODEC_PROP_LOSSY (1 << 1)
598 #define AV_CODEC_PROP_LOSSLESS (1 << 2)
608 #define AV_CODEC_PROP_REORDER (1 << 3)
613 #define AV_CODEC_PROP_BITMAP_SUB (1 << 16)
618 #define AV_CODEC_PROP_TEXT_SUB (1 << 17)
628 #define FF_INPUT_BUFFER_PADDING_SIZE 32
635 #define FF_MIN_BUFFER_SIZE 16384
693 #if FF_API_MAX_BFRAMES
697 #define FF_MAX_B_FRAMES 16
709 #define CODEC_FLAG_UNALIGNED 0x0001
710 #define CODEC_FLAG_QSCALE 0x0002
711 #define CODEC_FLAG_4MV 0x0004
712 #define CODEC_FLAG_OUTPUT_CORRUPT 0x0008
713 #define CODEC_FLAG_QPEL 0x0010
718 #define CODEC_FLAG_GMC 0x0020
725 #define CODEC_FLAG_MV0 0x0040
727 #if FF_API_INPUT_PRESERVED
732 #define CODEC_FLAG_INPUT_PRESERVED 0x0100
734 #define CODEC_FLAG_PASS1 0x0200
735 #define CODEC_FLAG_PASS2 0x0400
736 #define CODEC_FLAG_GRAY 0x2000
742 #define CODEC_FLAG_EMU_EDGE 0x4000
744 #define CODEC_FLAG_PSNR 0x8000
745 #define CODEC_FLAG_TRUNCATED 0x00010000
747 #if FF_API_NORMALIZE_AQP
752 #define CODEC_FLAG_NORMALIZE_AQP 0x00020000
754 #define CODEC_FLAG_INTERLACED_DCT 0x00040000
755 #define CODEC_FLAG_LOW_DELAY 0x00080000
756 #define CODEC_FLAG_GLOBAL_HEADER 0x00400000
757 #define CODEC_FLAG_BITEXACT 0x00800000
759 #define CODEC_FLAG_AC_PRED 0x01000000
760 #define CODEC_FLAG_LOOP_FILTER 0x00000800
761 #define CODEC_FLAG_INTERLACED_ME 0x20000000
762 #define CODEC_FLAG_CLOSED_GOP 0x80000000
763 #define CODEC_FLAG2_FAST 0x00000001
764 #define CODEC_FLAG2_NO_OUTPUT 0x00000004
765 #define CODEC_FLAG2_LOCAL_HEADER 0x00000008
766 #define CODEC_FLAG2_DROP_FRAME_TIMECODE 0x00002000
767 #define CODEC_FLAG2_IGNORE_CROP 0x00010000
769 #define CODEC_FLAG2_CHUNKS 0x00008000
770 #define CODEC_FLAG2_SHOW_ALL 0x00400000
771 #define CODEC_FLAG2_EXPORT_MVS 0x10000000
772 #define CODEC_FLAG2_SKIP_MANUAL 0x20000000
781 #define CODEC_CAP_DRAW_HORIZ_BAND 0x0001
787 #define CODEC_CAP_DR1 0x0002
788 #define CODEC_CAP_TRUNCATED 0x0008
797 #define CODEC_CAP_HWACCEL 0x0010
822 #define CODEC_CAP_DELAY 0x0020
827 #define CODEC_CAP_SMALL_LAST_FRAME 0x0040
832 #define CODEC_CAP_HWACCEL_VDPAU 0x0080
845 #define CODEC_CAP_SUBFRAMES 0x0100
850 #define CODEC_CAP_EXPERIMENTAL 0x0200
854 #define CODEC_CAP_CHANNEL_CONF 0x0400
855 #if FF_API_NEG_LINESIZES
859 #define CODEC_CAP_NEG_LINESIZES 0x0800
864 #define CODEC_CAP_FRAME_THREADS 0x1000
868 #define CODEC_CAP_SLICE_THREADS 0x2000
872 #define CODEC_CAP_PARAM_CHANGE 0x4000
876 #define CODEC_CAP_AUTO_THREADS 0x8000
880 #define CODEC_CAP_VARIABLE_FRAME_SIZE 0x10000
884 #define CODEC_CAP_INTRA_ONLY 0x40000000
888 #define CODEC_CAP_LOSSLESS 0x80000000
892 #define MB_TYPE_INTRA4x4 0x0001
893 #define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific
894 #define MB_TYPE_INTRA_PCM 0x0004 //FIXME H.264-specific
895 #define MB_TYPE_16x16 0x0008
896 #define MB_TYPE_16x8 0x0010
897 #define MB_TYPE_8x16 0x0020
898 #define MB_TYPE_8x8 0x0040
899 #define MB_TYPE_INTERLACED 0x0080
900 #define MB_TYPE_DIRECT2 0x0100 //FIXME
901 #define MB_TYPE_ACPRED 0x0200
902 #define MB_TYPE_GMC 0x0400
903 #define MB_TYPE_SKIP 0x0800
904 #define MB_TYPE_P0L0 0x1000
905 #define MB_TYPE_P1L0 0x2000
906 #define MB_TYPE_P0L1 0x4000
907 #define MB_TYPE_P1L1 0x8000
908 #define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0)
909 #define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1)
910 #define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1)
911 #define MB_TYPE_QUANT 0x00010000
912 #define MB_TYPE_CBP 0x00020000
945 #if FF_API_QSCALE_TYPE
946 #define FF_QSCALE_TYPE_MPEG1 0
947 #define FF_QSCALE_TYPE_MPEG2 1
948 #define FF_QSCALE_TYPE_H264 2
949 #define FF_QSCALE_TYPE_VP56 3
952 #if FF_API_GET_BUFFER
953 #define FF_BUFFER_TYPE_INTERNAL 1
954 #define FF_BUFFER_TYPE_USER 2
955 #define FF_BUFFER_TYPE_SHARED 4
956 #define FF_BUFFER_TYPE_COPY 8
958 #define FF_BUFFER_HINTS_VALID 0x01 // Buffer hints value is meaningful (if 0 ignore).
959 #define FF_BUFFER_HINTS_READABLE 0x02 // Codec will read from buffer.
960 #define FF_BUFFER_HINTS_PRESERVE 0x04 // User must not alter buffer content.
961 #define FF_BUFFER_HINTS_REUSABLE 0x08 // Codec will reuse the buffer (update).
967 #define AV_GET_BUFFER_FLAG_REF (1 << 0)
1179 #if FF_API_DESTRUCT_PACKET
1206 #define AV_PKT_FLAG_KEY 0x0001
1207 #define AV_PKT_FLAG_CORRUPT 0x0002
1249 #if FF_API_CODEC_NAME
1273 #if FF_API_STREAM_CODEC_TAG
1326 #define FF_COMPRESSION_DEFAULT -1
1424 #if FF_API_ASPECT_EXTENDED
1425 #define FF_ASPECT_EXTENDED 15
1514 #define FF_RC_STRATEGY_XVID 1
1603 #define FF_PRED_LEFT 0
1604 #define FF_PRED_PLANE 1
1605 #define FF_PRED_MEDIAN 2
1647 #define FF_CMP_SAD 0
1648 #define FF_CMP_SSE 1
1649 #define FF_CMP_SATD 2
1650 #define FF_CMP_DCT 3
1651 #define FF_CMP_PSNR 4
1652 #define FF_CMP_BIT 5
1654 #define FF_CMP_ZERO 7
1655 #define FF_CMP_VSAD 8
1656 #define FF_CMP_VSSE 9
1657 #define FF_CMP_NSSE 10
1658 #define FF_CMP_W53 11
1659 #define FF_CMP_W97 12
1660 #define FF_CMP_DCTMAX 13
1661 #define FF_CMP_DCT264 14
1662 #define FF_CMP_CHROMA 256
1717 #define FF_DTG_AFD_SAME 8
1718 #define FF_DTG_AFD_4_3 9
1719 #define FF_DTG_AFD_16_9 10
1720 #define FF_DTG_AFD_14_9 11
1721 #define FF_DTG_AFD_4_3_SP_14_9 13
1722 #define FF_DTG_AFD_16_9_SP_14_9 14
1723 #define FF_DTG_AFD_SP_4_3 15
1741 #define FF_DEFAULT_QUANT_BIAS 999999
1756 #define SLICE_FLAG_CODED_ORDER 0x0001
1757 #define SLICE_FLAG_ALLOW_FIELD 0x0002
1758 #define SLICE_FLAG_ALLOW_PLANE 0x0004
1776 #define FF_MB_DECISION_SIMPLE 0
1777 #define FF_MB_DECISION_BITS 1
1778 #define FF_MB_DECISION_RD 2
1908 #if FF_API_UNUSED_MEMBERS
2029 #if FF_API_REQUEST_CHANNELS
2068 #if FF_API_GET_BUFFER
2366 #define FF_CODER_TYPE_VLC 0
2367 #define FF_CODER_TYPE_AC 1
2368 #define FF_CODER_TYPE_RAW 2
2369 #define FF_CODER_TYPE_RLE 3
2370 #if FF_API_UNUSED_MEMBERS
2371 #define FF_CODER_TYPE_DEFLATE 4
2508 #define FF_BUG_AUTODETECT 1
2509 #if FF_API_OLD_MSMPEG4
2510 #define FF_BUG_OLD_MSMPEG4 2
2512 #define FF_BUG_XVID_ILACE 4
2513 #define FF_BUG_UMP4 8
2514 #define FF_BUG_NO_PADDING 16
2515 #define FF_BUG_AMV 32
2517 #define FF_BUG_AC_VLC 0
2519 #define FF_BUG_QPEL_CHROMA 64
2520 #define FF_BUG_STD_QPEL 128
2521 #define FF_BUG_QPEL_CHROMA2 256
2522 #define FF_BUG_DIRECT_BLOCKSIZE 512
2523 #define FF_BUG_EDGE 1024
2524 #define FF_BUG_HPEL_CHROMA 2048
2525 #define FF_BUG_DC_CLIP 4096
2526 #define FF_BUG_MS 8192
2527 #define FF_BUG_TRUNCATED 16384
2542 #define FF_COMPLIANCE_VERY_STRICT 2
2543 #define FF_COMPLIANCE_STRICT 1
2544 #define FF_COMPLIANCE_NORMAL 0
2545 #define FF_COMPLIANCE_UNOFFICIAL -1
2546 #define FF_COMPLIANCE_EXPERIMENTAL -2
2554 #define FF_EC_GUESS_MVS 1
2555 #define FF_EC_DEBLOCK 2
2556 #define FF_EC_FAVOR_INTER 256
2564 #define FF_DEBUG_PICT_INFO 1
2565 #define FF_DEBUG_RC 2
2566 #define FF_DEBUG_BITSTREAM 4
2567 #define FF_DEBUG_MB_TYPE 8
2568 #define FF_DEBUG_QP 16
2573 #define FF_DEBUG_MV 32
2575 #define FF_DEBUG_DCT_COEFF 0x00000040
2576 #define FF_DEBUG_SKIP 0x00000080
2577 #define FF_DEBUG_STARTCODE 0x00000100
2578 #if FF_API_UNUSED_MEMBERS
2579 #define FF_DEBUG_PTS 0x00000200
2581 #define FF_DEBUG_ER 0x00000400
2582 #define FF_DEBUG_MMCO 0x00000800
2583 #define FF_DEBUG_BUGS 0x00001000
2585 #define FF_DEBUG_VIS_QP 0x00002000
2586 #define FF_DEBUG_VIS_MB_TYPE 0x00004000
2588 #define FF_DEBUG_BUFFERS 0x00008000
2589 #define FF_DEBUG_THREADS 0x00010000
2590 #define FF_DEBUG_NOMC 0x01000000
2600 #define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames
2601 #define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames
2602 #define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
2618 #define AV_EF_CRCCHECK (1<<0)
2619 #define AV_EF_BITSTREAM (1<<1)
2620 #define AV_EF_BUFFER (1<<2)
2621 #define AV_EF_EXPLODE (1<<3)
2623 #define AV_EF_IGNORE_ERR (1<<15)
2624 #define AV_EF_CAREFUL (1<<16)
2625 #define AV_EF_COMPLIANT (1<<17)
2626 #define AV_EF_AGGRESSIVE (1<<18)
2669 #define FF_DCT_AUTO 0
2670 #define FF_DCT_FASTINT 1
2671 #if FF_API_UNUSED_MEMBERS
2672 #define FF_DCT_INT 2
2674 #define FF_DCT_MMX 3
2675 #define FF_DCT_ALTIVEC 5
2676 #define FF_DCT_FAAN 6
2684 #define FF_IDCT_AUTO 0
2685 #define FF_IDCT_INT 1
2686 #define FF_IDCT_SIMPLE 2
2687 #define FF_IDCT_SIMPLEMMX 3
2688 #define FF_IDCT_ARM 7
2689 #define FF_IDCT_ALTIVEC 8
2691 #define FF_IDCT_SH4 9
2693 #define FF_IDCT_SIMPLEARM 10
2694 #if FF_API_UNUSED_MEMBERS
2695 #define FF_IDCT_IPP 13
2697 #define FF_IDCT_XVID 14
2698 #if FF_API_IDCT_XVIDMMX
2699 #define FF_IDCT_XVIDMMX 14
2701 #define FF_IDCT_SIMPLEARMV5TE 16
2702 #define FF_IDCT_SIMPLEARMV6 17
2703 #if FF_API_ARCH_SPARC
2704 #define FF_IDCT_SIMPLEVIS 18
2706 #define FF_IDCT_FAAN 20
2707 #define FF_IDCT_SIMPLENEON 22
2708 #if FF_API_ARCH_ALPHA
2709 #define FF_IDCT_SIMPLEALPHA 23
2711 #define FF_IDCT_SIMPLEAUTO 128
2762 #define FF_THREAD_FRAME 1
2763 #define FF_THREAD_SLICE 2
2813 #if FF_API_THREAD_OPAQUE
2834 #define FF_PROFILE_UNKNOWN -99
2835 #define FF_PROFILE_RESERVED -100
2837 #define FF_PROFILE_AAC_MAIN 0
2838 #define FF_PROFILE_AAC_LOW 1
2839 #define FF_PROFILE_AAC_SSR 2
2840 #define FF_PROFILE_AAC_LTP 3
2841 #define FF_PROFILE_AAC_HE 4
2842 #define FF_PROFILE_AAC_HE_V2 28
2843 #define FF_PROFILE_AAC_LD 22
2844 #define FF_PROFILE_AAC_ELD 38
2845 #define FF_PROFILE_MPEG2_AAC_LOW 128
2846 #define FF_PROFILE_MPEG2_AAC_HE 131
2848 #define FF_PROFILE_DTS 20
2849 #define FF_PROFILE_DTS_ES 30
2850 #define FF_PROFILE_DTS_96_24 40
2851 #define FF_PROFILE_DTS_HD_HRA 50
2852 #define FF_PROFILE_DTS_HD_MA 60
2854 #define FF_PROFILE_MPEG2_422 0
2855 #define FF_PROFILE_MPEG2_HIGH 1
2856 #define FF_PROFILE_MPEG2_SS 2
2857 #define FF_PROFILE_MPEG2_SNR_SCALABLE 3
2858 #define FF_PROFILE_MPEG2_MAIN 4
2859 #define FF_PROFILE_MPEG2_SIMPLE 5
2861 #define FF_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag
2862 #define FF_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag
2864 #define FF_PROFILE_H264_BASELINE 66
2865 #define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED)
2866 #define FF_PROFILE_H264_MAIN 77
2867 #define FF_PROFILE_H264_EXTENDED 88
2868 #define FF_PROFILE_H264_HIGH 100
2869 #define FF_PROFILE_H264_HIGH_10 110
2870 #define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA)
2871 #define FF_PROFILE_H264_HIGH_422 122
2872 #define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA)
2873 #define FF_PROFILE_H264_HIGH_444 144
2874 #define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244
2875 #define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA)
2876 #define FF_PROFILE_H264_CAVLC_444 44
2878 #define FF_PROFILE_VC1_SIMPLE 0
2879 #define FF_PROFILE_VC1_MAIN 1
2880 #define FF_PROFILE_VC1_COMPLEX 2
2881 #define FF_PROFILE_VC1_ADVANCED 3
2883 #define FF_PROFILE_MPEG4_SIMPLE 0
2884 #define FF_PROFILE_MPEG4_SIMPLE_SCALABLE 1
2885 #define FF_PROFILE_MPEG4_CORE 2
2886 #define FF_PROFILE_MPEG4_MAIN 3
2887 #define FF_PROFILE_MPEG4_N_BIT 4
2888 #define FF_PROFILE_MPEG4_SCALABLE_TEXTURE 5
2889 #define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6
2890 #define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7
2891 #define FF_PROFILE_MPEG4_HYBRID 8
2892 #define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME 9
2893 #define FF_PROFILE_MPEG4_CORE_SCALABLE 10
2894 #define FF_PROFILE_MPEG4_ADVANCED_CODING 11
2895 #define FF_PROFILE_MPEG4_ADVANCED_CORE 12
2896 #define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13
2897 #define FF_PROFILE_MPEG4_SIMPLE_STUDIO 14
2898 #define FF_PROFILE_MPEG4_ADVANCED_SIMPLE 15
2900 #define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 0
2901 #define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 1
2902 #define FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 2
2903 #define FF_PROFILE_JPEG2000_DCINEMA_2K 3
2904 #define FF_PROFILE_JPEG2000_DCINEMA_4K 4
2907 #define FF_PROFILE_HEVC_MAIN 1
2908 #define FF_PROFILE_HEVC_MAIN_10 2
2909 #define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3
2910 #define FF_PROFILE_HEVC_REXT 4
2918 #define FF_LEVEL_UNKNOWN -99
2952 #if FF_API_ERROR_RATE
2961 #if FF_API_CODEC_PKT
3077 #define FF_SUB_CHARENC_MODE_DO_NOTHING -1
3078 #define FF_SUB_CHARENC_MODE_AUTOMATIC 0
3079 #define FF_SUB_CHARENC_MODE_PRE_DECODER 1
3103 #if !FF_API_DEBUG_MV
3111 #define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames
3112 #define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames
3113 #define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
3257 int *got_packet_ptr);
3414 #define AV_HWACCEL_FLAG_IGNORE_LEVEL (1 << 0)
3420 #define AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH (1 << 1)
3466 #define AV_SUBTITLE_FLAG_FORCED 0x00000001
3617 #if FF_API_AVFRAME_LAVC
3622 AVFrame *avcodec_alloc_frame(
void);
3718 #if FF_API_DESTRUCT_PACKET
3959 #if FF_API_GET_BUFFER
4028 #if FF_API_OLD_DECODE_AUDIO
4084 int *frame_size_ptr,
4140 int *got_frame_ptr,
const AVPacket *avpkt);
4186 int *got_picture_ptr,
4259 #define AV_PARSER_PTS_NB 4
4266 #define PARSER_FLAG_COMPLETE_FRAMES 0x0001
4267 #define PARSER_FLAG_ONCE 0x0002
4269 #define PARSER_FLAG_FETCHED_OFFSET 0x0004
4270 #define PARSER_FLAG_USE_CODEC_TS 0x1000
4418 const uint8_t **poutbuf,
int *poutbuf_size,
4460 uint8_t **poutbuf,
int *poutbuf_size,
4462 int64_t
pts, int64_t dts,
4471 uint8_t **poutbuf,
int *poutbuf_size,
4472 const uint8_t *
buf,
int buf_size,
int keyframe);
4501 #if FF_API_OLD_ENCODE_AUDIO
4528 const short *samples);
4573 #if FF_API_OLD_ENCODE_VIDEO
4638 #if FF_API_AVCODEC_RESAMPLE
4669 int output_rate,
int input_rate,
4672 int filter_length,
int log2_phase_count,
4673 int linear,
double cutoff);
4811 unsigned char *dest,
int dest_size);
4827 #if FF_API_DEINTERLACE
4853 int padtop,
int padbottom,
int padleft,
int padright,
int *
color);
4924 int has_alpha,
int *loss_ptr);
4930 enum AVPixelFormat src_pix_fmt,
int has_alpha,
int *loss_ptr);
4933 #if AV_HAVE_INCOMPATIBLE_LIBAV_ABI
4936 int has_alpha,
int *loss_ptr);
4939 enum AVPixelFormat src_pix_fmt,
int has_alpha,
int *loss_ptr);
4949 #if FF_API_SET_DIMENSIONS
5008 int buf_size,
int align);
5071 uint8_t **poutbuf,
int *poutbuf_size,
5130 uint8_t **poutbuf,
int *poutbuf_size,
5131 const uint8_t *
buf,
int buf_size,
int keyframe);
5177 #if FF_API_MISSING_SAMPLE