X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Favcodec.h;h=9ca61c0bfe5a3c6b9851b4d5fad4c81240bab93a;hb=0389f9abe9b11287636ddfbaf3897231905964fc;hp=fbf31ef4f68388e2cf69529aafaef1a939ebde38;hpb=2644df82e6b3610eaf374352ed981bc5d48d2762;p=ffmpeg diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index fbf31ef4f68..9ca61c0bfe5 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -513,6 +513,7 @@ enum AVCodecID { AV_CODEC_ID_OTF = MKBETAG( 0 ,'O','T','F'), AV_CODEC_ID_SMPTE_KLV = MKBETAG('K','L','V','A'), AV_CODEC_ID_DVD_NAV = MKBETAG('D','N','A','V'), + AV_CODEC_ID_TIMED_ID3 = MKBETAG('T','I','D','3'), AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it @@ -767,7 +768,13 @@ typedef struct RcOverride{ #define CODEC_CAP_DR1 0x0002 #define CODEC_CAP_TRUNCATED 0x0008 #if FF_API_XVMC -/* Codec can export data for HW decoding (XvMC). */ +/* Codec can export data for HW decoding. This flag indicates that + * the codec would call get_format() with list that might contain HW accelerated + * pixel formats (XvMC, VDPAU, VAAPI, etc). The application can pick any of them + * including raw image format. + * The application can use the passed context to determine bitstream version, + * chroma format, resolution etc. + */ #define CODEC_CAP_HWACCEL 0x0010 #endif /* FF_API_XVMC */ /** @@ -1695,7 +1702,7 @@ typedef struct AVCodecContext { * XVideo Motion Acceleration * - encoding: forbidden * - decoding: set by decoder - * @deprecated XvMC support is slated for removal. + * @deprecated XvMC doesn't need it anymore. */ attribute_deprecated int xvmc_acceleration; #endif /* FF_API_XVMC */ @@ -2151,6 +2158,8 @@ typedef struct AVCodecContext { * avcodec_align_dimensions2() should be used to find the required width and * height, as they normally need to be rounded up to the next multiple of 16. * + * Some decoders do not support linesizes changing between frames. + * * If frame multithreading is used and thread_safe_callbacks is set, * this callback may be called from a different thread, but not from more * than one at once. Does not need to be reentrant. @@ -3100,6 +3109,8 @@ typedef struct AVCodec { int av_codec_get_max_lowres(const AVCodec *codec); +struct MpegEncContext; + /** * AVHWAccel. */ @@ -3161,6 +3172,7 @@ typedef struct AVHWAccel { * * Meaningful slice information (codec specific) is guaranteed to * be parsed at this point. This function is mandatory. + * The only exception is XvMC, that works on MB level. * * @param avctx the codec context * @param buf the slice data buffer base @@ -3188,6 +3200,17 @@ typedef struct AVHWAccel { * AVCodecContext.release_buffer(). */ int priv_data_size; + + /** + * Called for every Macroblock in a slice. + * + * XvMC uses it to replace the ff_MPV_decode_mb(). + * Instead of decoding to raw picture, MB parameters are + * stored in an array provided by the video driver. + * + * @param s the mpeg context + */ + void (*decode_mb)(struct MpegEncContext *s); } AVHWAccel; /**