[FFmpeg-cvslog] Merge commit 'dcc39ee10e82833ce24aa57926c00ffeb1948198'
James Almer
git at videolan.org
Mon Oct 23 21:40:10 EEST 2017
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Mon Oct 23 15:11:42 2017 -0300| [b46613dd9b8b4adc68312a283486c33c109aab19] | committer: James Almer
Merge commit 'dcc39ee10e82833ce24aa57926c00ffeb1948198'
* commit 'dcc39ee10e82833ce24aa57926c00ffeb1948198':
lavc: Remove deprecated XvMC support hacks
Merged-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b46613dd9b8b4adc68312a283486c33c109aab19
---
configure | 2 --
doc/codecs.texi | 2 --
libavcodec/allcodecs.c | 3 ---
libavcodec/avcodec.h | 23 -----------------------
libavcodec/codec_desc.c | 9 ---------
libavcodec/mpeg12dec.c | 43 -------------------------------------------
libavcodec/options_table.h | 3 ---
libavcodec/version.h | 3 ---
libavutil/pixdesc.c | 12 ------------
libavutil/pixfmt.h | 9 ++-------
libavutil/version.h | 3 ---
11 files changed, 2 insertions(+), 110 deletions(-)
diff --git a/configure b/configure
index e487610c1a..2443986d21 100755
--- a/configure
+++ b/configure
@@ -2542,8 +2542,6 @@ mp3on4_decoder_select="mpegaudio"
mp3on4float_decoder_select="mpegaudio"
mpc7_decoder_select="bswapdsp mpegaudiodsp"
mpc8_decoder_select="mpegaudiodsp"
-mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
-mpeg_xvmc_decoder_select="mpeg2video_decoder"
mpegvideo_decoder_select="mpegvideo"
mpeg1video_decoder_select="mpegvideo"
mpeg1video_encoder_select="aandcttables mpegvideoenc h263dsp"
diff --git a/doc/codecs.texi b/doc/codecs.texi
index 40f64fe4c8..6ab02c35de 100644
--- a/doc/codecs.texi
+++ b/doc/codecs.texi
@@ -757,8 +757,6 @@ Set context model.
@item slice_flags @var{integer}
- at item xvmc_acceleration @var{integer}
-
@item mbd @var{integer} (@emph{encoding,video})
Set macroblock decision algorithm (high quality mode).
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 60b66d46b9..dea1b1d13b 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -250,9 +250,6 @@ static void register_all(void)
REGISTER_DECODER(MJPEGB, mjpegb);
REGISTER_DECODER(MMVIDEO, mmvideo);
REGISTER_DECODER(MOTIONPIXELS, motionpixels);
-#if FF_API_XVMC
- REGISTER_DECODER(MPEG_XVMC, mpeg_xvmc);
-#endif /* FF_API_XVMC */
REGISTER_ENCDEC (MPEG1VIDEO, mpeg1video);
REGISTER_ENCDEC (MPEG2VIDEO, mpeg2video);
REGISTER_ENCDEC (MPEG4, mpeg4);
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index c1090456f5..9d2127b21d 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -217,9 +217,6 @@ enum AVCodecID {
/* video codecs */
AV_CODEC_ID_MPEG1VIDEO,
AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
-#if FF_API_XVMC
- AV_CODEC_ID_MPEG2VIDEO_XVMC,
-#endif /* FF_API_XVMC */
AV_CODEC_ID_H261,
AV_CODEC_ID_H263,
AV_CODEC_ID_RV10,
@@ -1170,16 +1167,6 @@ typedef struct RcOverride{
*/
#define CODEC_CAP_DR1 AV_CODEC_CAP_DR1
#define CODEC_CAP_TRUNCATED AV_CODEC_CAP_TRUNCATED
-#if FF_API_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 */
/**
* Encoder or decoder requires flushing with NULL input at the end in order to
* give the complete and correct output.
@@ -2284,16 +2271,6 @@ typedef struct AVCodecContext {
#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG-2 field pics)
#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1)
-#if FF_API_XVMC
- /**
- * XVideo Motion Acceleration
- * - encoding: forbidden
- * - decoding: set by decoder
- * @deprecated XvMC doesn't need it anymore.
- */
- attribute_deprecated int xvmc_acceleration;
-#endif /* FF_API_XVMC */
-
/**
* macroblock decision mode
* - encoding: Set by user.
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
index 669d2458c9..92bf1d2681 100644
--- a/libavcodec/codec_desc.c
+++ b/libavcodec/codec_desc.c
@@ -46,15 +46,6 @@ static const AVCodecDescriptor codec_descriptors[] = {
.props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
.profiles = NULL_IF_CONFIG_SMALL(ff_mpeg2_video_profiles),
},
-#if FF_API_XVMC
- {
- .id = AV_CODEC_ID_MPEG2VIDEO_XVMC,
- .type = AVMEDIA_TYPE_VIDEO,
- .name = "mpegvideo_xvmc",
- .long_name = NULL_IF_CONFIG_SMALL("MPEG-1/2 video XvMC (X-Video Motion Compensation)"),
- .props = AV_CODEC_PROP_LOSSY,
- },
-#endif /* FF_API_XVMC */
{
.id = AV_CODEC_ID_H261,
.type = AVMEDIA_TYPE_VIDEO,
diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index 4e68be27f1..97885c0be8 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -1224,11 +1224,6 @@ static void setup_hwaccel_for_pixfmt(AVCodecContext *avctx)
MpegEncContext *s = &s1->mpeg_enc_ctx;
s->pack_pblocks = 1;
-#if FF_API_XVMC
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->xvmc_acceleration = 2;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif /* FF_API_XVMC */
}
}
@@ -2915,44 +2910,6 @@ AVCodec ff_mpegvideo_decoder = {
.max_lowres = 3,
};
-#if FF_API_XVMC
-#if CONFIG_MPEG_XVMC_DECODER
-FF_DISABLE_DEPRECATION_WARNINGS
-static av_cold int mpeg_mc_decode_init(AVCodecContext *avctx)
-{
- if (avctx->active_thread_type & FF_THREAD_SLICE)
- return -1;
- if (!(avctx->slice_flags & SLICE_FLAG_CODED_ORDER))
- return -1;
- if (!(avctx->slice_flags & SLICE_FLAG_ALLOW_FIELD)) {
- ff_dlog(avctx, "mpeg12.c: XvMC decoder will work better if SLICE_FLAG_ALLOW_FIELD is set\n");
- }
- mpeg_decode_init(avctx);
-
- avctx->pix_fmt = AV_PIX_FMT_XVMC_MPEG2_IDCT;
- avctx->xvmc_acceleration = 2; // 2 - the blocks are packed!
-
- return 0;
-}
-
-AVCodec ff_mpeg_xvmc_decoder = {
- .name = "mpegvideo_xvmc",
- .long_name = NULL_IF_CONFIG_SMALL("MPEG-1/2 video XvMC (X-Video Motion Compensation)"),
- .type = AVMEDIA_TYPE_VIDEO,
- .id = AV_CODEC_ID_MPEG2VIDEO_XVMC,
- .priv_data_size = sizeof(Mpeg1Context),
- .init = mpeg_mc_decode_init,
- .close = mpeg_decode_end,
- .decode = mpeg_decode_frame,
- .capabilities = AV_CODEC_CAP_DRAW_HORIZ_BAND | AV_CODEC_CAP_DR1 |
- AV_CODEC_CAP_TRUNCATED | CODEC_CAP_HWACCEL |
- AV_CODEC_CAP_DELAY,
- .flush = flush,
-};
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-#endif /* FF_API_XVMC */
-
#if CONFIG_MPEG_VDPAU_DECODER && FF_API_VDPAU
AVCodec ff_mpeg_vdpau_decoder = {
.name = "mpegvideo_vdpau",
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index c40b3e61b4..6e90c0d77c 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -329,9 +329,6 @@ static const AVOption avcodec_options[] = {
{"context", "context model", OFFSET(context_model), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
#endif
{"slice_flags", NULL, OFFSET(slice_flags), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
-#if FF_API_XVMC
-{"xvmc_acceleration", NULL, OFFSET(xvmc_acceleration), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
-#endif /* FF_API_XVMC */
{"mbd", "macroblock decision algorithm (high quality mode)", OFFSET(mb_decision), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, 2, V|E, "mbd"},
{"simple", "use mbcmp", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_SIMPLE }, INT_MIN, INT_MAX, V|E, "mbd"},
{"bits", "use fewest bits", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_BITS }, INT_MIN, INT_MAX, V|E, "mbd"},
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 2d85e25a26..3c9356d8ce 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -57,9 +57,6 @@
#ifndef FF_API_DEBUG_MV
#define FF_API_DEBUG_MV (LIBAVCODEC_VERSION_MAJOR < 58)
#endif
-#ifndef FF_API_XVMC
-#define FF_API_XVMC (LIBAVCODEC_VERSION_MAJOR < 58)
-#endif
#ifndef FF_API_ERROR_RATE
#define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 58)
#endif
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index a428d63066..81b763b961 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -326,22 +326,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
},
.flags = AV_PIX_FMT_FLAG_PLANAR,
},
-#if FF_API_XVMC
- [AV_PIX_FMT_XVMC_MPEG2_MC] = {
- .name = "xvmcmc",
- .flags = AV_PIX_FMT_FLAG_HWACCEL,
- },
- [AV_PIX_FMT_XVMC_MPEG2_IDCT] = {
- .name = "xvmcidct",
- .flags = AV_PIX_FMT_FLAG_HWACCEL,
- },
-#endif /* FF_API_XVMC */
-#if !FF_API_XVMC
[AV_PIX_FMT_XVMC] = {
.name = "xvmc",
.flags = AV_PIX_FMT_FLAG_HWACCEL,
},
-#endif /* !FF_API_XVMC */
[AV_PIX_FMT_UYVY422] = {
.name = "uyvy422",
.nb_components = 3,
diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
index f54f5549b6..6b6b4ae0fb 100644
--- a/libavutil/pixfmt.h
+++ b/libavutil/pixfmt.h
@@ -74,11 +74,6 @@ enum AVPixelFormat {
AV_PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range
AV_PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting color_range
AV_PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting color_range
-#if FF_API_XVMC
- AV_PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing
- AV_PIX_FMT_XVMC_MPEG2_IDCT,
- AV_PIX_FMT_XVMC = AV_PIX_FMT_XVMC_MPEG2_IDCT,
-#endif /* FF_API_XVMC */
AV_PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
AV_PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3
AV_PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)
@@ -280,9 +275,9 @@ enum AVPixelFormat {
AV_PIX_FMT_BAYER_GBRG16BE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, big-endian */
AV_PIX_FMT_BAYER_GRBG16LE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian */
AV_PIX_FMT_BAYER_GRBG16BE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian */
-#if !FF_API_XVMC
+
AV_PIX_FMT_XVMC,///< XVideo Motion Acceleration via common packet passing
-#endif /* !FF_API_XVMC */
+
AV_PIX_FMT_YUV440P10LE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
AV_PIX_FMT_YUV440P10BE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
AV_PIX_FMT_YUV440P12LE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
diff --git a/libavutil/version.h b/libavutil/version.h
index aa56ad2fbd..f5b4f1548d 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -109,9 +109,6 @@
#ifndef FF_API_VDPAU
#define FF_API_VDPAU (LIBAVUTIL_VERSION_MAJOR < 56)
#endif
-#ifndef FF_API_XVMC
-#define FF_API_XVMC (LIBAVUTIL_VERSION_MAJOR < 56)
-#endif
#ifndef FF_API_OPT_TYPE_METADATA
#define FF_API_OPT_TYPE_METADATA (LIBAVUTIL_VERSION_MAJOR < 56)
#endif
======================================================================
diff --cc configure
index e487610c1a,366520cf96..2443986d21
--- a/configure
+++ b/configure
@@@ -2542,13 -2073,10 +2542,11 @@@ mp3on4_decoder_select="mpegaudio
mp3on4float_decoder_select="mpegaudio"
mpc7_decoder_select="bswapdsp mpegaudiodsp"
mpc8_decoder_select="mpegaudiodsp"
- mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
- mpeg_xvmc_decoder_select="mpeg2video_decoder"
-mpeg1video_decoder_select="error_resilience mpeg_er mpegvideo"
-mpeg1video_encoder_select="aandcttables mpegvideoenc"
-mpeg2video_decoder_select="error_resilience mpeg_er mpegvideo"
-mpeg2video_encoder_select="aandcttables mpegvideoenc"
+mpegvideo_decoder_select="mpegvideo"
+mpeg1video_decoder_select="mpegvideo"
+mpeg1video_encoder_select="aandcttables mpegvideoenc h263dsp"
+mpeg2video_decoder_select="mpegvideo"
+mpeg2video_encoder_select="aandcttables mpegvideoenc h263dsp"
mpeg4_decoder_select="h263_decoder mpeg4video_parser"
mpeg4_encoder_select="h263_encoder"
msa1_decoder_select="mss34dsp"
diff --cc doc/codecs.texi
index 40f64fe4c8,0000000000..6ab02c35de
mode 100644,000000..100644
--- a/doc/codecs.texi
+++ b/doc/codecs.texi
@@@ -1,1301 -1,0 +1,1299 @@@
+ at anchor{codec-options}
+ at chapter Codec Options
+ at c man begin CODEC OPTIONS
+
+libavcodec provides some generic global options, which can be set on
+all the encoders and decoders. In addition each codec may support
+so-called private options, which are specific for a given codec.
+
+Sometimes, a global option may only affect a specific kind of codec,
+and may be nonsensical or ignored by another, so you need to be aware
+of the meaning of the specified options. Also some options are
+meant only for decoding or encoding.
+
+Options may be set by specifying - at var{option} @var{value} in the
+FFmpeg tools, or by setting the value explicitly in the
+ at code{AVCodecContext} options or using the @file{libavutil/opt.h} API
+for programmatic use.
+
+The list of supported options follow:
+
+ at table @option
+ at item b @var{integer} (@emph{encoding,audio,video})
+Set bitrate in bits/s. Default value is 200K.
+
+ at item ab @var{integer} (@emph{encoding,audio})
+Set audio bitrate (in bits/s). Default value is 128K.
+
+ at item bt @var{integer} (@emph{encoding,video})
+Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
+tolerance specifies how far ratecontrol is willing to deviate from the
+target average bitrate value. This is not related to min/max
+bitrate. Lowering tolerance too much has an adverse effect on quality.
+
+ at item flags @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
+Set generic flags.
+
+Possible values:
+ at table @samp
+ at item mv4
+Use four motion vector by macroblock (mpeg4).
+ at item qpel
+Use 1/4 pel motion compensation.
+ at item loop
+Use loop filter.
+ at item qscale
+Use fixed qscale.
+ at item gmc
+Use gmc.
+ at item mv0
+Always try a mb with mv=<0,0>.
+ at item input_preserved
+
+ at item pass1
+Use internal 2pass ratecontrol in first pass mode.
+ at item pass2
+Use internal 2pass ratecontrol in second pass mode.
+ at item gray
+Only decode/encode grayscale.
+ at item emu_edge
+Do not draw edges.
+ at item psnr
+Set error[?] variables during encoding.
+ at item truncated
+
+ at item naq
+Normalize adaptive quantization.
+ at item ildct
+Use interlaced DCT.
+ at item low_delay
+Force low delay.
+ at item global_header
+Place global headers in extradata instead of every keyframe.
+ at item bitexact
+Only write platform-, build- and time-independent data. (except (I)DCT).
+This ensures that file and data checksums are reproducible and match between
+platforms. Its primary use is for regression testing.
+ at item aic
+Apply H263 advanced intra coding / mpeg4 ac prediction.
+ at item cbp
+Deprecated, use mpegvideo private options instead.
+ at item qprd
+Deprecated, use mpegvideo private options instead.
+ at item ilme
+Apply interlaced motion estimation.
+ at item cgop
+Use closed gop.
+ at end table
+
+ at item me_method @var{integer} (@emph{encoding,video})
+Set motion estimation method.
+
+Possible values:
+ at table @samp
+ at item zero
+zero motion estimation (fastest)
+ at item full
+full motion estimation (slowest)
+ at item epzs
+EPZS motion estimation (default)
+ at item esa
+esa motion estimation (alias for full)
+ at item tesa
+tesa motion estimation
+ at item dia
+dia motion estimation (alias for epzs)
+ at item log
+log motion estimation
+ at item phods
+phods motion estimation
+ at item x1
+X1 motion estimation
+ at item hex
+hex motion estimation
+ at item umh
+umh motion estimation
+ at item iter
+iter motion estimation
+ at end table
+
+ at item extradata_size @var{integer}
+Set extradata size.
+
+ at item time_base @var{rational number}
+Set codec time base.
+
+It is the fundamental unit of time (in seconds) in terms of which
+frame timestamps are represented. For fixed-fps content, timebase
+should be @code{1 / frame_rate} and timestamp increments should be
+identically 1.
+
+ at item g @var{integer} (@emph{encoding,video})
+Set the group of picture (GOP) size. Default value is 12.
+
+ at item ar @var{integer} (@emph{decoding/encoding,audio})
+Set audio sampling rate (in Hz).
+
+ at item ac @var{integer} (@emph{decoding/encoding,audio})
+Set number of audio channels.
+
+ at item cutoff @var{integer} (@emph{encoding,audio})
+Set cutoff bandwidth. (Supported only by selected encoders, see
+their respective documentation sections.)
+
+ at item frame_size @var{integer} (@emph{encoding,audio})
+Set audio frame size.
+
+Each submitted frame except the last must contain exactly frame_size
+samples per channel. May be 0 when the codec has
+CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not
+restricted. It is set by some decoders to indicate constant frame
+size.
+
+ at item frame_number @var{integer}
+Set the frame number.
+
+ at item delay @var{integer}
+
+ at item qcomp @var{float} (@emph{encoding,video})
+Set video quantizer scale compression (VBR). It is used as a constant
+in the ratecontrol equation. Recommended range for default rc_eq:
+0.0-1.0.
+
+ at item qblur @var{float} (@emph{encoding,video})
+Set video quantizer scale blur (VBR).
+
+ at item qmin @var{integer} (@emph{encoding,video})
+Set min video quantizer scale (VBR). Must be included between -1 and
+69, default value is 2.
+
+ at item qmax @var{integer} (@emph{encoding,video})
+Set max video quantizer scale (VBR). Must be included between -1 and
+1024, default value is 31.
+
+ at item qdiff @var{integer} (@emph{encoding,video})
+Set max difference between the quantizer scale (VBR).
+
+ at item bf @var{integer} (@emph{encoding,video})
+Set max number of B frames between non-B-frames.
+
+Must be an integer between -1 and 16. 0 means that B-frames are
+disabled. If a value of -1 is used, it will choose an automatic value
+depending on the encoder.
+
+Default value is 0.
+
+ at item b_qfactor @var{float} (@emph{encoding,video})
+Set qp factor between P and B frames.
+
+ at item rc_strategy @var{integer} (@emph{encoding,video})
+Set ratecontrol method.
+
+ at item b_strategy @var{integer} (@emph{encoding,video})
+Set strategy to choose between I/P/B-frames.
+
+ at item ps @var{integer} (@emph{encoding,video})
+Set RTP payload size in bytes.
+
+ at item mv_bits @var{integer}
+ at item header_bits @var{integer}
+ at item i_tex_bits @var{integer}
+ at item p_tex_bits @var{integer}
+ at item i_count @var{integer}
+ at item p_count @var{integer}
+ at item skip_count @var{integer}
+ at item misc_bits @var{integer}
+ at item frame_bits @var{integer}
+ at item codec_tag @var{integer}
+ at item bug @var{flags} (@emph{decoding,video})
+Workaround not auto detected encoder bugs.
+
+Possible values:
+ at table @samp
+ at item autodetect
+
+ at item old_msmpeg4
+some old lavc generated msmpeg4v3 files (no autodetection)
+ at item xvid_ilace
+Xvid interlacing bug (autodetected if fourcc==XVIX)
+ at item ump4
+(autodetected if fourcc==UMP4)
+ at item no_padding
+padding bug (autodetected)
+ at item amv
+
+ at item ac_vlc
+illegal vlc bug (autodetected per fourcc)
+ at item qpel_chroma
+
+ at item std_qpel
+old standard qpel (autodetected per fourcc/version)
+ at item qpel_chroma2
+
+ at item direct_blocksize
+direct-qpel-blocksize bug (autodetected per fourcc/version)
+ at item edge
+edge padding bug (autodetected per fourcc/version)
+ at item hpel_chroma
+
+ at item dc_clip
+
+ at item ms
+Workaround various bugs in microsoft broken decoders.
+ at item trunc
+trancated frames
+ at end table
+
+ at item lelim @var{integer} (@emph{encoding,video})
+Set single coefficient elimination threshold for luminance (negative
+values also consider DC coefficient).
+
+ at item celim @var{integer} (@emph{encoding,video})
+Set single coefficient elimination threshold for chrominance (negative
+values also consider dc coefficient)
+
+ at item strict @var{integer} (@emph{decoding/encoding,audio,video})
+Specify how strictly to follow the standards.
+
+Possible values:
+ at table @samp
+ at item very
+strictly conform to an older more strict version of the spec or reference software
+ at item strict
+strictly conform to all the things in the spec no matter what consequences
+ at item normal
+
+ at item unofficial
+allow unofficial extensions
+ at item experimental
+allow non standardized experimental things, experimental
+(unfinished/work in progress/not well tested) decoders and encoders.
+Note: experimental decoders can pose a security risk, do not use this for
+decoding untrusted input.
+ at end table
+
+ at item b_qoffset @var{float} (@emph{encoding,video})
+Set QP offset between P and B frames.
+
+ at item err_detect @var{flags} (@emph{decoding,audio,video})
+Set error detection flags.
+
+Possible values:
+ at table @samp
+ at item crccheck
+verify embedded CRCs
+ at item bitstream
+detect bitstream specification deviations
+ at item buffer
+detect improper bitstream length
+ at item explode
+abort decoding on minor error detection
+ at item ignore_err
+ignore decoding errors, and continue decoding.
+This is useful if you want to analyze the content of a video and thus want
+everything to be decoded no matter what. This option will not result in a video
+that is pleasing to watch in case of errors.
+ at item careful
+consider things that violate the spec and have not been seen in the wild as errors
+ at item compliant
+consider all spec non compliancies as errors
+ at item aggressive
+consider things that a sane encoder should not do as an error
+ at end table
+
+ at item has_b_frames @var{integer}
+
+ at item block_align @var{integer}
+
+ at item mpeg_quant @var{integer} (@emph{encoding,video})
+Use MPEG quantizers instead of H.263.
+
+ at item qsquish @var{float} (@emph{encoding,video})
+How to keep quantizer between qmin and qmax (0 = clip, 1 = use
+differentiable function).
+
+ at item rc_qmod_amp @var{float} (@emph{encoding,video})
+Set experimental quantizer modulation.
+
+ at item rc_qmod_freq @var{integer} (@emph{encoding,video})
+Set experimental quantizer modulation.
+
+ at item rc_override_count @var{integer}
+
+ at item rc_eq @var{string} (@emph{encoding,video})
+Set rate control equation. When computing the expression, besides the
+standard functions defined in the section 'Expression Evaluation', the
+following functions are available: bits2qp(bits), qp2bits(qp). Also
+the following constants are available: iTex pTex tex mv fCode iCount
+mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex
+avgTex.
+
+ at item maxrate @var{integer} (@emph{encoding,audio,video})
+Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
+
+ at item minrate @var{integer} (@emph{encoding,audio,video})
+Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR
+encode. It is of little use elsewise.
+
+ at item bufsize @var{integer} (@emph{encoding,audio,video})
+Set ratecontrol buffer size (in bits).
+
+ at item rc_buf_aggressivity @var{float} (@emph{encoding,video})
+Currently useless.
+
+ at item i_qfactor @var{float} (@emph{encoding,video})
+Set QP factor between P and I frames.
+
+ at item i_qoffset @var{float} (@emph{encoding,video})
+Set QP offset between P and I frames.
+
+ at item rc_init_cplx @var{float} (@emph{encoding,video})
+Set initial complexity for 1-pass encoding.
+
+ at item dct @var{integer} (@emph{encoding,video})
+Set DCT algorithm.
+
+Possible values:
+ at table @samp
+ at item auto
+autoselect a good one (default)
+ at item fastint
+fast integer
+ at item int
+accurate integer
+ at item mmx
+
+ at item altivec
+
+ at item faan
+floating point AAN DCT
+ at end table
+
+ at item lumi_mask @var{float} (@emph{encoding,video})
+Compress bright areas stronger than medium ones.
+
+ at item tcplx_mask @var{float} (@emph{encoding,video})
+Set temporal complexity masking.
+
+ at item scplx_mask @var{float} (@emph{encoding,video})
+Set spatial complexity masking.
+
+ at item p_mask @var{float} (@emph{encoding,video})
+Set inter masking.
+
+ at item dark_mask @var{float} (@emph{encoding,video})
+Compress dark areas stronger than medium ones.
+
+ at item idct @var{integer} (@emph{decoding/encoding,video})
+Select IDCT implementation.
+
+Possible values:
+ at table @samp
+ at item auto
+
+ at item int
+
+ at item simple
+
+ at item simplemmx
+
+ at item simpleauto
+Automatically pick a IDCT compatible with the simple one
+
+ at item arm
+
+ at item altivec
+
+ at item sh4
+
+ at item simplearm
+
+ at item simplearmv5te
+
+ at item simplearmv6
+
+ at item simpleneon
+
+ at item simplealpha
+
+ at item ipp
+
+ at item xvidmmx
+
+ at item faani
+floating point AAN IDCT
+ at end table
+
+ at item slice_count @var{integer}
+
+ at item ec @var{flags} (@emph{decoding,video})
+Set error concealment strategy.
+
+Possible values:
+ at table @samp
+ at item guess_mvs
+iterative motion vector (MV) search (slow)
+ at item deblock
+use strong deblock filter for damaged MBs
+ at item favor_inter
+favor predicting from the previous frame instead of the current
+ at end table
+
+ at item bits_per_coded_sample @var{integer}
+
+ at item pred @var{integer} (@emph{encoding,video})
+Set prediction method.
+
+Possible values:
+ at table @samp
+ at item left
+
+ at item plane
+
+ at item median
+
+ at end table
+
+ at item aspect @var{rational number} (@emph{encoding,video})
+Set sample aspect ratio.
+
+ at item sar @var{rational number} (@emph{encoding,video})
+Set sample aspect ratio. Alias to @var{aspect}.
+
+ at item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
+Print specific debug info.
+
+Possible values:
+ at table @samp
+ at item pict
+picture info
+ at item rc
+rate control
+ at item bitstream
+
+ at item mb_type
+macroblock (MB) type
+ at item qp
+per-block quantization parameter (QP)
+ at item mv
+motion vector
+ at item dct_coeff
+
+ at item green_metadata
+display complexity metadata for the upcoming frame, GoP or for a given duration.
+
+ at item skip
+
+ at item startcode
+
+ at item pts
+
+ at item er
+error recognition
+ at item mmco
+memory management control operations (H.264)
+ at item bugs
+
+ at item vis_qp
+visualize quantization parameter (QP), lower QP are tinted greener
+ at item vis_mb_type
+visualize block types
+ at item buffers
+picture buffer allocations
+ at item thread_ops
+threading operations
+ at item nomc
+skip motion compensation
+ at end table
+
+ at item vismv @var{integer} (@emph{decoding,video})
+Visualize motion vectors (MVs).
+
+This option is deprecated, see the codecview filter instead.
+
+Possible values:
+ at table @samp
+ at item pf
+forward predicted MVs of P-frames
+ at item bf
+forward predicted MVs of B-frames
+ at item bb
+backward predicted MVs of B-frames
+ at end table
+
+ at item cmp @var{integer} (@emph{encoding,video})
+Set full pel me compare function.
+
+Possible values:
+ at table @samp
+ at item sad
+sum of absolute differences, fast (default)
+ at item sse
+sum of squared errors
+ at item satd
+sum of absolute Hadamard transformed differences
+ at item dct
+sum of absolute DCT transformed differences
+ at item psnr
+sum of squared quantization errors (avoid, low quality)
+ at item bit
+number of bits needed for the block
+ at item rd
+rate distortion optimal, slow
+ at item zero
+0
+ at item vsad
+sum of absolute vertical differences
+ at item vsse
+sum of squared vertical differences
+ at item nsse
+noise preserving sum of squared differences
+ at item w53
+5/3 wavelet, only used in snow
+ at item w97
+9/7 wavelet, only used in snow
+ at item dctmax
+
+ at item chroma
+
+ at end table
+
+ at item subcmp @var{integer} (@emph{encoding,video})
+Set sub pel me compare function.
+
+Possible values:
+ at table @samp
+ at item sad
+sum of absolute differences, fast (default)
+ at item sse
+sum of squared errors
+ at item satd
+sum of absolute Hadamard transformed differences
+ at item dct
+sum of absolute DCT transformed differences
+ at item psnr
+sum of squared quantization errors (avoid, low quality)
+ at item bit
+number of bits needed for the block
+ at item rd
+rate distortion optimal, slow
+ at item zero
+0
+ at item vsad
+sum of absolute vertical differences
+ at item vsse
+sum of squared vertical differences
+ at item nsse
+noise preserving sum of squared differences
+ at item w53
+5/3 wavelet, only used in snow
+ at item w97
+9/7 wavelet, only used in snow
+ at item dctmax
+
+ at item chroma
+
+ at end table
+
+ at item mbcmp @var{integer} (@emph{encoding,video})
+Set macroblock compare function.
+
+Possible values:
+ at table @samp
+ at item sad
+sum of absolute differences, fast (default)
+ at item sse
+sum of squared errors
+ at item satd
+sum of absolute Hadamard transformed differences
+ at item dct
+sum of absolute DCT transformed differences
+ at item psnr
+sum of squared quantization errors (avoid, low quality)
+ at item bit
+number of bits needed for the block
+ at item rd
+rate distortion optimal, slow
+ at item zero
+0
+ at item vsad
+sum of absolute vertical differences
+ at item vsse
+sum of squared vertical differences
+ at item nsse
+noise preserving sum of squared differences
+ at item w53
+5/3 wavelet, only used in snow
+ at item w97
+9/7 wavelet, only used in snow
+ at item dctmax
+
+ at item chroma
+
+ at end table
+
+ at item ildctcmp @var{integer} (@emph{encoding,video})
+Set interlaced dct compare function.
+
+Possible values:
+ at table @samp
+ at item sad
+sum of absolute differences, fast (default)
+ at item sse
+sum of squared errors
+ at item satd
+sum of absolute Hadamard transformed differences
+ at item dct
+sum of absolute DCT transformed differences
+ at item psnr
+sum of squared quantization errors (avoid, low quality)
+ at item bit
+number of bits needed for the block
+ at item rd
+rate distortion optimal, slow
+ at item zero
+0
+ at item vsad
+sum of absolute vertical differences
+ at item vsse
+sum of squared vertical differences
+ at item nsse
+noise preserving sum of squared differences
+ at item w53
+5/3 wavelet, only used in snow
+ at item w97
+9/7 wavelet, only used in snow
+ at item dctmax
+
+ at item chroma
+
+ at end table
+
+ at item dia_size @var{integer} (@emph{encoding,video})
+Set diamond type & size for motion estimation.
+
+ at item last_pred @var{integer} (@emph{encoding,video})
+Set amount of motion predictors from the previous frame.
+
+ at item preme @var{integer} (@emph{encoding,video})
+Set pre motion estimation.
+
+ at item precmp @var{integer} (@emph{encoding,video})
+Set pre motion estimation compare function.
+
+Possible values:
+ at table @samp
+ at item sad
+sum of absolute differences, fast (default)
+ at item sse
+sum of squared errors
+ at item satd
+sum of absolute Hadamard transformed differences
+ at item dct
+sum of absolute DCT transformed differences
+ at item psnr
+sum of squared quantization errors (avoid, low quality)
+ at item bit
+number of bits needed for the block
+ at item rd
+rate distortion optimal, slow
+ at item zero
+0
+ at item vsad
+sum of absolute vertical differences
+ at item vsse
+sum of squared vertical differences
+ at item nsse
+noise preserving sum of squared differences
+ at item w53
+5/3 wavelet, only used in snow
+ at item w97
+9/7 wavelet, only used in snow
+ at item dctmax
+
+ at item chroma
+
+ at end table
+
+ at item pre_dia_size @var{integer} (@emph{encoding,video})
+Set diamond type & size for motion estimation pre-pass.
+
+ at item subq @var{integer} (@emph{encoding,video})
+Set sub pel motion estimation quality.
+
+ at item dtg_active_format @var{integer}
+
+ at item me_range @var{integer} (@emph{encoding,video})
+Set limit motion vectors range (1023 for DivX player).
+
+ at item ibias @var{integer} (@emph{encoding,video})
+Set intra quant bias.
+
+ at item pbias @var{integer} (@emph{encoding,video})
+Set inter quant bias.
+
+ at item color_table_id @var{integer}
+
+ at item global_quality @var{integer} (@emph{encoding,audio,video})
+
+ at item coder @var{integer} (@emph{encoding,video})
+
+Possible values:
+ at table @samp
+ at item vlc
+variable length coder / huffman coder
+ at item ac
+arithmetic coder
+ at item raw
+raw (no encoding)
+ at item rle
+run-length coder
+ at item deflate
+deflate-based coder
+ at end table
+
+ at item context @var{integer} (@emph{encoding,video})
+Set context model.
+
+ at item slice_flags @var{integer}
+
- @item xvmc_acceleration @var{integer}
-
+ at item mbd @var{integer} (@emph{encoding,video})
+Set macroblock decision algorithm (high quality mode).
+
+Possible values:
+ at table @samp
+ at item simple
+use mbcmp (default)
+ at item bits
+use fewest bits
+ at item rd
+use best rate distortion
+ at end table
+
+ at item stream_codec_tag @var{integer}
+
+ at item sc_threshold @var{integer} (@emph{encoding,video})
+Set scene change threshold.
+
+ at item lmin @var{integer} (@emph{encoding,video})
+Set min lagrange factor (VBR).
+
+ at item lmax @var{integer} (@emph{encoding,video})
+Set max lagrange factor (VBR).
+
+ at item nr @var{integer} (@emph{encoding,video})
+Set noise reduction.
+
+ at item rc_init_occupancy @var{integer} (@emph{encoding,video})
+Set number of bits which should be loaded into the rc buffer before
+decoding starts.
+
+ at item flags2 @var{flags} (@emph{decoding/encoding,audio,video})
+
+Possible values:
+ at table @samp
+ at item fast
+Allow non spec compliant speedup tricks.
+ at item sgop
+Deprecated, use mpegvideo private options instead.
+ at item noout
+Skip bitstream encoding.
+ at item ignorecrop
+Ignore cropping information from sps.
+ at item local_header
+Place global headers at every keyframe instead of in extradata.
+ at item chunks
+Frame data might be split into multiple chunks.
+ at item showall
+Show all frames before the first keyframe.
+ at item skiprd
+Deprecated, use mpegvideo private options instead.
+ at item export_mvs
+Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
+for codecs that support it. See also @file{doc/examples/export_mvs.c}.
+ at end table
+
+ at item error @var{integer} (@emph{encoding,video})
+
+ at item qns @var{integer} (@emph{encoding,video})
+Deprecated, use mpegvideo private options instead.
+
+ at item threads @var{integer} (@emph{decoding/encoding,video})
+Set the number of threads to be used, in case the selected codec
+implementation supports multi-threading.
+
+Possible values:
+ at table @samp
+ at item auto, 0
+automatically select the number of threads to set
+ at end table
+
+Default value is @samp{auto}.
+
+ at item me_threshold @var{integer} (@emph{encoding,video})
+Set motion estimation threshold.
+
+ at item mb_threshold @var{integer} (@emph{encoding,video})
+Set macroblock threshold.
+
+ at item dc @var{integer} (@emph{encoding,video})
+Set intra_dc_precision.
+
+ at item nssew @var{integer} (@emph{encoding,video})
+Set nsse weight.
+
+ at item skip_top @var{integer} (@emph{decoding,video})
+Set number of macroblock rows at the top which are skipped.
+
+ at item skip_bottom @var{integer} (@emph{decoding,video})
+Set number of macroblock rows at the bottom which are skipped.
+
+ at item profile @var{integer} (@emph{encoding,audio,video})
+
+Possible values:
+ at table @samp
+ at item unknown
+
+ at item aac_main
+
+ at item aac_low
+
+ at item aac_ssr
+
+ at item aac_ltp
+
+ at item aac_he
+
+ at item aac_he_v2
+
+ at item aac_ld
+
+ at item aac_eld
+
+ at item mpeg2_aac_low
+
+ at item mpeg2_aac_he
+
+ at item mpeg4_sp
+
+ at item mpeg4_core
+
+ at item mpeg4_main
+
+ at item mpeg4_asp
+
+ at item dts
+
+ at item dts_es
+
+ at item dts_96_24
+
+ at item dts_hd_hra
+
+ at item dts_hd_ma
+
+ at end table
+
+ at item level @var{integer} (@emph{encoding,audio,video})
+
+Possible values:
+ at table @samp
+ at item unknown
+
+ at end table
+
+ at item lowres @var{integer} (@emph{decoding,audio,video})
+Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
+
+ at item skip_threshold @var{integer} (@emph{encoding,video})
+Set frame skip threshold.
+
+ at item skip_factor @var{integer} (@emph{encoding,video})
+Set frame skip factor.
+
+ at item skip_exp @var{integer} (@emph{encoding,video})
+Set frame skip exponent.
+Negative values behave identical to the corresponding positive ones, except
+that the score is normalized.
+Positive values exist primarily for compatibility reasons and are not so useful.
+
+ at item skipcmp @var{integer} (@emph{encoding,video})
+Set frame skip compare function.
+
+Possible values:
+ at table @samp
+ at item sad
+sum of absolute differences, fast (default)
+ at item sse
+sum of squared errors
+ at item satd
+sum of absolute Hadamard transformed differences
+ at item dct
+sum of absolute DCT transformed differences
+ at item psnr
+sum of squared quantization errors (avoid, low quality)
+ at item bit
+number of bits needed for the block
+ at item rd
+rate distortion optimal, slow
+ at item zero
+0
+ at item vsad
+sum of absolute vertical differences
+ at item vsse
+sum of squared vertical differences
+ at item nsse
+noise preserving sum of squared differences
+ at item w53
+5/3 wavelet, only used in snow
+ at item w97
+9/7 wavelet, only used in snow
+ at item dctmax
+
+ at item chroma
+
+ at end table
+
+ at item border_mask @var{float} (@emph{encoding,video})
+Increase the quantizer for macroblocks close to borders.
+
+ at item mblmin @var{integer} (@emph{encoding,video})
+Set min macroblock lagrange factor (VBR).
+
+ at item mblmax @var{integer} (@emph{encoding,video})
+Set max macroblock lagrange factor (VBR).
+
+ at item mepc @var{integer} (@emph{encoding,video})
+Set motion estimation bitrate penalty compensation (1.0 = 256).
+
+ at item skip_loop_filter @var{integer} (@emph{decoding,video})
+ at item skip_idct @var{integer} (@emph{decoding,video})
+ at item skip_frame @var{integer} (@emph{decoding,video})
+
+Make decoder discard processing depending on the frame type selected
+by the option value.
+
+ at option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
+skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
+
+Possible values:
+ at table @samp
+ at item none
+Discard no frame.
+
+ at item default
+Discard useless frames like 0-sized frames.
+
+ at item noref
+Discard all non-reference frames.
+
+ at item bidir
+Discard all bidirectional frames.
+
+ at item nokey
+Discard all frames excepts keyframes.
+
+ at item all
+Discard all frames.
+ at end table
+
+Default value is @samp{default}.
+
+ at item bidir_refine @var{integer} (@emph{encoding,video})
+Refine the two motion vectors used in bidirectional macroblocks.
+
+ at item brd_scale @var{integer} (@emph{encoding,video})
+Downscale frames for dynamic B-frame decision.
+
+ at item keyint_min @var{integer} (@emph{encoding,video})
+Set minimum interval between IDR-frames.
+
+ at item refs @var{integer} (@emph{encoding,video})
+Set reference frames to consider for motion compensation.
+
+ at item chromaoffset @var{integer} (@emph{encoding,video})
+Set chroma qp offset from luma.
+
+ at item trellis @var{integer} (@emph{encoding,audio,video})
+Set rate-distortion optimal quantization.
+
+ at item sc_factor @var{integer} (@emph{encoding,video})
+Set value multiplied by qscale for each frame and added to
+scene_change_score.
+
+ at item mv0_threshold @var{integer} (@emph{encoding,video})
+ at item b_sensitivity @var{integer} (@emph{encoding,video})
+Adjust sensitivity of b_frame_strategy 1.
+
+ at item compression_level @var{integer} (@emph{encoding,audio,video})
+ at item min_prediction_order @var{integer} (@emph{encoding,audio})
+ at item max_prediction_order @var{integer} (@emph{encoding,audio})
+ at item timecode_frame_start @var{integer} (@emph{encoding,video})
+Set GOP timecode frame start number, in non drop frame format.
+
+ at item request_channels @var{integer} (@emph{decoding,audio})
+Set desired number of audio channels.
+
+ at item bits_per_raw_sample @var{integer}
+ at item channel_layout @var{integer} (@emph{decoding/encoding,audio})
+
+Possible values:
+ at table @samp
+ at end table
+ at item request_channel_layout @var{integer} (@emph{decoding,audio})
+
+Possible values:
+ at table @samp
+ at end table
+ at item rc_max_vbv_use @var{float} (@emph{encoding,video})
+ at item rc_min_vbv_use @var{float} (@emph{encoding,video})
+ at item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
+
+ at item color_primaries @var{integer} (@emph{decoding/encoding,video})
+Possible values:
+ at table @samp
+ at item bt709
+BT.709
+ at item bt470m
+BT.470 M
+ at item bt470bg
+BT.470 BG
+ at item smpte170m
+SMPTE 170 M
+ at item smpte240m
+SMPTE 240 M
+ at item film
+Film
+ at item bt2020
+BT.2020
+ at item smpte428
+ at item smpte428_1
+SMPTE ST 428-1
+ at item smpte431
+SMPTE 431-2
+ at item smpte432
+SMPTE 432-1
+ at item jedec-p22
+JEDEC P22
+ at end table
+
+ at item color_trc @var{integer} (@emph{decoding/encoding,video})
+Possible values:
+ at table @samp
+ at item bt709
+BT.709
+ at item gamma22
+BT.470 M
+ at item gamma28
+BT.470 BG
+ at item smpte170m
+SMPTE 170 M
+ at item smpte240m
+SMPTE 240 M
+ at item linear
+Linear
+ at item log
+ at item log100
+Log
+ at item log_sqrt
+ at item log316
+Log square root
+ at item iec61966_2_4
+ at item iec61966-2-4
+IEC 61966-2-4
+ at item bt1361
+ at item bt1361e
+BT.1361
+ at item iec61966_2_1
+ at item iec61966-2-1
+IEC 61966-2-1
+ at item bt2020_10
+ at item bt2020_10bit
+BT.2020 - 10 bit
+ at item bt2020_12
+ at item bt2020_12bit
+BT.2020 - 12 bit
+ at item smpte2084
+SMPTE ST 2084
+ at item smpte428
+ at item smpte428_1
+SMPTE ST 428-1
+ at item arib-std-b67
+ARIB STD-B67
+ at end table
+
+ at item colorspace @var{integer} (@emph{decoding/encoding,video})
+Possible values:
+ at table @samp
+ at item rgb
+RGB
+ at item bt709
+BT.709
+ at item fcc
+FCC
+ at item bt470bg
+BT.470 BG
+ at item smpte170m
+SMPTE 170 M
+ at item smpte240m
+SMPTE 240 M
+ at item ycocg
+YCOCG
+ at item bt2020nc
+ at item bt2020_ncl
+BT.2020 NCL
+ at item bt2020c
+ at item bt2020_cl
+BT.2020 CL
+ at item smpte2085
+SMPTE 2085
+ at end table
+
+ at item color_range @var{integer} (@emph{decoding/encoding,video})
+If used as input parameter, it serves as a hint to the decoder, which
+color_range the input has.
+Possible values:
+ at table @samp
+ at item tv
+ at item mpeg
+MPEG (219*2^(n-8))
+ at item pc
+ at item jpeg
+JPEG (2^n-1)
+ at end table
+
+ at item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
+Possible values:
+ at table @samp
+ at item left
+
+ at item center
+
+ at item topleft
+
+ at item top
+
+ at item bottomleft
+
+ at item bottom
+
+ at end table
+
+ at item log_level_offset @var{integer}
+Set the log level offset.
+
+ at item slices @var{integer} (@emph{encoding,video})
+Number of slices, used in parallelized encoding.
+
+ at item thread_type @var{flags} (@emph{decoding/encoding,video})
+Select which multithreading methods to use.
+
+Use of @samp{frame} will increase decoding delay by one frame per
+thread, so clients which cannot provide future frames should not use
+it.
+
+Possible values:
+ at table @samp
+ at item slice
+Decode more than one part of a single frame at once.
+
+Multithreading using slices works only when the video was encoded with
+slices.
+
+ at item frame
+Decode more than one frame at once.
+ at end table
+
+Default value is @samp{slice+frame}.
+
+ at item audio_service_type @var{integer} (@emph{encoding,audio})
+Set audio service type.
+
+Possible values:
+ at table @samp
+ at item ma
+Main Audio Service
+ at item ef
+Effects
+ at item vi
+Visually Impaired
+ at item hi
+Hearing Impaired
+ at item di
+Dialogue
+ at item co
+Commentary
+ at item em
+Emergency
+ at item vo
+Voice Over
+ at item ka
+Karaoke
+ at end table
+
+ at item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
+Set sample format audio decoders should prefer. Default value is
+ at code{none}.
+
+ at item pkt_timebase @var{rational number}
+
+ at item sub_charenc @var{encoding} (@emph{decoding,subtitles})
+Set the input subtitles character encoding.
+
+ at item field_order @var{field_order} (@emph{video})
+Set/override the field order of the video.
+Possible values:
+ at table @samp
+ at item progressive
+Progressive video
+ at item tt
+Interlaced video, top field coded and displayed first
+ at item bb
+Interlaced video, bottom field coded and displayed first
+ at item tb
+Interlaced video, top coded first, bottom displayed first
+ at item bt
+Interlaced video, bottom coded first, top displayed first
+ at end table
+
+ at item skip_alpha @var{bool} (@emph{decoding,video})
+Set to 1 to disable processing alpha (transparency). This works like the
+ at samp{gray} flag in the @option{flags} option which skips chroma information
+instead of alpha. Default is 0.
+
+ at item codec_whitelist @var{list} (@emph{input})
+"," separated list of allowed decoders. By default all are allowed.
+
+ at item dump_separator @var{string} (@emph{input})
+Separator used to separate the fields printed on the command line about the
+Stream parameters.
+For example to separate the fields with newlines and indention:
+ at example
+ffprobe -dump_separator "
+ " -i ~/videos/matrixbench_mpeg2.mpg
+ at end example
+
+ at item max_pixels @var{integer} (@emph{decoding/encoding,video})
+Maximum number of pixels per image. This value can be used to avoid out of
+memory failures due to large images.
+
+ at item apply_cropping @var{bool} (@emph{decoding,video})
+Enable cropping if cropping parameters are multiples of the required
+alignment for the left and top parameters. If the alignment is not met the
+cropping will be partially applied to maintain alignment.
+Default is 1 (enabled).
+Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
+CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
+decoders will not apply left/top Cropping.
+
+
+ at end table
+
+ at c man end CODEC OPTIONS
+
+ at ifclear config-writeonly
+ at include decoders.texi
+ at end ifclear
+ at ifclear config-readonly
+ at include encoders.texi
+ at end ifclear
diff --cc libavcodec/allcodecs.c
index 60b66d46b9,556bdb43f3..dea1b1d13b
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@@ -250,31 -203,12 +250,28 @@@ static void register_all(void
REGISTER_DECODER(MJPEGB, mjpegb);
REGISTER_DECODER(MMVIDEO, mmvideo);
REGISTER_DECODER(MOTIONPIXELS, motionpixels);
- #if FF_API_XVMC
- REGISTER_DECODER(MPEG_XVMC, mpeg_xvmc);
- #endif /* FF_API_XVMC */
REGISTER_ENCDEC (MPEG1VIDEO, mpeg1video);
REGISTER_ENCDEC (MPEG2VIDEO, mpeg2video);
+ REGISTER_ENCDEC (MPEG4, mpeg4);
+ REGISTER_DECODER(MPEG4_CRYSTALHD, mpeg4_crystalhd);
+ REGISTER_DECODER(MPEG4_V4L2M2M, mpeg4_v4l2m2m);
+ REGISTER_DECODER(MPEG4_MMAL, mpeg4_mmal);
+#if FF_API_VDPAU
+ REGISTER_DECODER(MPEG4_VDPAU, mpeg4_vdpau);
+#endif
+ REGISTER_DECODER(MPEGVIDEO, mpegvideo);
+#if FF_API_VDPAU
+ REGISTER_DECODER(MPEG_VDPAU, mpeg_vdpau);
+ REGISTER_DECODER(MPEG1_VDPAU, mpeg1_vdpau);
+#endif
+ REGISTER_DECODER(MPEG1_V4L2M2M, mpeg1_v4l2m2m);
REGISTER_DECODER(MPEG2_MMAL, mpeg2_mmal);
+ REGISTER_DECODER(MPEG2_CRYSTALHD, mpeg2_crystalhd);
+ REGISTER_DECODER(MPEG2_V4L2M2M, mpeg2_v4l2m2m);
REGISTER_DECODER(MPEG2_QSV, mpeg2_qsv);
- REGISTER_ENCDEC (MPEG4, mpeg4);
+ REGISTER_DECODER(MPEG2_MEDIACODEC, mpeg2_mediacodec);
REGISTER_DECODER(MSA1, msa1);
+ REGISTER_DECODER(MSCC, mscc);
REGISTER_DECODER(MSMPEG4V1, msmpeg4v1);
REGISTER_ENCDEC (MSMPEG4V2, msmpeg4v2);
REGISTER_ENCDEC (MSMPEG4V3, msmpeg4v3);
diff --cc libavcodec/avcodec.h
index c1090456f5,8567c8b28f..9d2127b21d
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@@ -1168,18 -1005,8 +1165,8 @@@ typedef struct RcOverride
* If not set, it might not use get_buffer() at all or use operations that
* assume the buffer was allocated by avcodec_default_get_buffer.
*/
-#define CODEC_CAP_DR1 0x0002
-#define CODEC_CAP_TRUNCATED 0x0008
+#define CODEC_CAP_DR1 AV_CODEC_CAP_DR1
+#define CODEC_CAP_TRUNCATED AV_CODEC_CAP_TRUNCATED
- #if FF_API_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 */
/**
* Encoder or decoder requires flushing with NULL input at the end in order to
* give the complete and correct output.
diff --cc libavcodec/mpeg12dec.c
index 4e68be27f1,528a4ed16d..97885c0be8
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@@ -1205,31 -1145,7 +1205,26 @@@ static enum AVPixelFormat mpeg_get_pixe
else
pix_fmts = mpeg12_pixfmt_list_444;
- return ff_get_format(avctx, pix_fmts);
+ return ff_thread_get_format(avctx, pix_fmts);
+}
+
+static void setup_hwaccel_for_pixfmt(AVCodecContext *avctx)
+{
+ // until then pix_fmt may be changed right after codec init
+ if (avctx->hwaccel
+#if FF_API_VDPAU
+ || uses_vdpau(avctx)
+#endif
+ )
+ if (avctx->idct_algo == FF_IDCT_AUTO)
+ avctx->idct_algo = FF_IDCT_NONE;
+
+ if (avctx->hwaccel && avctx->pix_fmt == AV_PIX_FMT_XVMC) {
+ Mpeg1Context *s1 = avctx->priv_data;
+ MpegEncContext *s = &s1->mpeg_enc_ctx;
+
+ s->pack_pblocks = 1;
- #if FF_API_XVMC
- FF_DISABLE_DEPRECATION_WARNINGS
- avctx->xvmc_acceleration = 2;
- FF_ENABLE_DEPRECATION_WARNINGS
- #endif /* FF_API_XVMC */
+ }
}
/* Call this function when we know all parameters.
@@@ -2893,94 -2613,6 +2888,56 @@@ AVCodec ff_mpeg2video_decoder =
.capabilities = AV_CODEC_CAP_DRAW_HORIZ_BAND | AV_CODEC_CAP_DR1 |
AV_CODEC_CAP_TRUNCATED | AV_CODEC_CAP_DELAY |
AV_CODEC_CAP_SLICE_THREADS,
+ .caps_internal = FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM,
.flush = flush,
+ .max_lowres = 3,
.profiles = NULL_IF_CONFIG_SMALL(ff_mpeg2_video_profiles),
};
+
+//legacy decoder
+AVCodec ff_mpegvideo_decoder = {
+ .name = "mpegvideo",
+ .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video"),
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = AV_CODEC_ID_MPEG2VIDEO,
+ .priv_data_size = sizeof(Mpeg1Context),
+ .init = mpeg_decode_init,
+ .close = mpeg_decode_end,
+ .decode = mpeg_decode_frame,
+ .capabilities = AV_CODEC_CAP_DRAW_HORIZ_BAND | AV_CODEC_CAP_DR1 | AV_CODEC_CAP_TRUNCATED | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SLICE_THREADS,
+ .caps_internal = FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM,
+ .flush = flush,
+ .max_lowres = 3,
+};
+
- #if FF_API_XVMC
- #if CONFIG_MPEG_XVMC_DECODER
- FF_DISABLE_DEPRECATION_WARNINGS
- static av_cold int mpeg_mc_decode_init(AVCodecContext *avctx)
- {
- if (avctx->active_thread_type & FF_THREAD_SLICE)
- return -1;
- if (!(avctx->slice_flags & SLICE_FLAG_CODED_ORDER))
- return -1;
- if (!(avctx->slice_flags & SLICE_FLAG_ALLOW_FIELD)) {
- ff_dlog(avctx, "mpeg12.c: XvMC decoder will work better if SLICE_FLAG_ALLOW_FIELD is set\n");
- }
- mpeg_decode_init(avctx);
-
- avctx->pix_fmt = AV_PIX_FMT_XVMC_MPEG2_IDCT;
- avctx->xvmc_acceleration = 2; // 2 - the blocks are packed!
-
- return 0;
- }
-
- AVCodec ff_mpeg_xvmc_decoder = {
- .name = "mpegvideo_xvmc",
- .long_name = NULL_IF_CONFIG_SMALL("MPEG-1/2 video XvMC (X-Video Motion Compensation)"),
- .type = AVMEDIA_TYPE_VIDEO,
- .id = AV_CODEC_ID_MPEG2VIDEO_XVMC,
- .priv_data_size = sizeof(Mpeg1Context),
- .init = mpeg_mc_decode_init,
- .close = mpeg_decode_end,
- .decode = mpeg_decode_frame,
- .capabilities = AV_CODEC_CAP_DRAW_HORIZ_BAND | AV_CODEC_CAP_DR1 |
- AV_CODEC_CAP_TRUNCATED | CODEC_CAP_HWACCEL |
- AV_CODEC_CAP_DELAY,
- .flush = flush,
- };
- FF_ENABLE_DEPRECATION_WARNINGS
- #endif
- #endif /* FF_API_XVMC */
-
+#if CONFIG_MPEG_VDPAU_DECODER && FF_API_VDPAU
+AVCodec ff_mpeg_vdpau_decoder = {
+ .name = "mpegvideo_vdpau",
+ .long_name = NULL_IF_CONFIG_SMALL("MPEG-1/2 video (VDPAU acceleration)"),
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = AV_CODEC_ID_MPEG2VIDEO,
+ .priv_data_size = sizeof(Mpeg1Context),
+ .init = mpeg_decode_init,
+ .close = mpeg_decode_end,
+ .decode = mpeg_decode_frame,
+ .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_TRUNCATED |
+ AV_CODEC_CAP_HWACCEL_VDPAU | AV_CODEC_CAP_DELAY,
+ .flush = flush,
+};
+#endif
+
+#if CONFIG_MPEG1_VDPAU_DECODER && FF_API_VDPAU
+AVCodec ff_mpeg1_vdpau_decoder = {
+ .name = "mpeg1video_vdpau",
+ .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video (VDPAU acceleration)"),
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = AV_CODEC_ID_MPEG1VIDEO,
+ .priv_data_size = sizeof(Mpeg1Context),
+ .init = mpeg_decode_init,
+ .close = mpeg_decode_end,
+ .decode = mpeg_decode_frame,
+ .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_TRUNCATED |
+ AV_CODEC_CAP_HWACCEL_VDPAU | AV_CODEC_CAP_DELAY,
+ .flush = flush,
+};
+#endif
diff --cc libavcodec/options_table.h
index c40b3e61b4,5e3540d2dd..6e90c0d77c
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@@ -329,11 -294,8 +329,8 @@@ static const AVOption avcodec_options[
{"context", "context model", OFFSET(context_model), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
#endif
{"slice_flags", NULL, OFFSET(slice_flags), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
- #if FF_API_XVMC
- {"xvmc_acceleration", NULL, OFFSET(xvmc_acceleration), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
- #endif /* FF_API_XVMC */
-{"mbd", "macroblock decision algorithm (high quality mode)", OFFSET(mb_decision), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "mbd"},
-{"simple", "use mbcmp (default)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_SIMPLE }, INT_MIN, INT_MAX, V|E, "mbd"},
+{"mbd", "macroblock decision algorithm (high quality mode)", OFFSET(mb_decision), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, 2, V|E, "mbd"},
+{"simple", "use mbcmp", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_SIMPLE }, INT_MIN, INT_MAX, V|E, "mbd"},
{"bits", "use fewest bits", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_BITS }, INT_MIN, INT_MAX, V|E, "mbd"},
{"rd", "use best rate distortion", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MB_DECISION_RD }, INT_MIN, INT_MAX, V|E, "mbd"},
#if FF_API_STREAM_CODEC_TAG
diff --cc libavcodec/version.h
index 2d85e25a26,986e697bc9..3c9356d8ce
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@@ -45,21 -45,8 +45,18 @@@
* FF_API_* defines may be placed below to indicate public API that will be
* dropped at a future version bump. The defines themselves are not part of
* the public API and may change, break or disappear at any time.
+ *
+ * @note, when bumping the major version it is recommended to manually
+ * disable each FF_API_* in its own commit instead of disabling them all
+ * at once through the bump. This improves the git bisect-ability of the change.
*/
+#ifndef FF_API_LOWRES
+#define FF_API_LOWRES (LIBAVCODEC_VERSION_MAJOR < 59)
+#endif
+#ifndef FF_API_DEBUG_MV
+#define FF_API_DEBUG_MV (LIBAVCODEC_VERSION_MAJOR < 58)
+#endif
- #ifndef FF_API_XVMC
- #define FF_API_XVMC (LIBAVCODEC_VERSION_MAJOR < 58)
- #endif
#ifndef FF_API_ERROR_RATE
#define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 58)
#endif
diff --cc libavutil/pixdesc.c
index a428d63066,e4e5674a66..81b763b961
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@@ -326,22 -313,6 +326,10 @@@ static const AVPixFmtDescriptor av_pix_
},
.flags = AV_PIX_FMT_FLAG_PLANAR,
},
- #if FF_API_XVMC
- [AV_PIX_FMT_XVMC_MPEG2_MC] = {
- .name = "xvmcmc",
- .flags = AV_PIX_FMT_FLAG_HWACCEL,
- },
- [AV_PIX_FMT_XVMC_MPEG2_IDCT] = {
- .name = "xvmcidct",
- .flags = AV_PIX_FMT_FLAG_HWACCEL,
- },
- #endif /* FF_API_XVMC */
- #if !FF_API_XVMC
+ [AV_PIX_FMT_XVMC] = {
+ .name = "xvmc",
+ .flags = AV_PIX_FMT_FLAG_HWACCEL,
+ },
- #endif /* !FF_API_XVMC */
[AV_PIX_FMT_UYVY422] = {
.name = "uyvy422",
.nb_components = 3,
diff --cc libavutil/pixfmt.h
index f54f5549b6,0b7582576b..6b6b4ae0fb
--- a/libavutil/pixfmt.h
+++ b/libavutil/pixfmt.h
@@@ -245,53 -223,6 +240,53 @@@ enum AVPixelFormat
*/
AV_PIX_FMT_CUDA,
+ AV_PIX_FMT_0RGB=0x123+4,///< packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined
+ AV_PIX_FMT_RGB0, ///< packed RGB 8:8:8, 32bpp, RGBXRGBX... X=unused/undefined
+ AV_PIX_FMT_0BGR, ///< packed BGR 8:8:8, 32bpp, XBGRXBGR... X=unused/undefined
+ AV_PIX_FMT_BGR0, ///< packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined
+
+ AV_PIX_FMT_YUV420P12BE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
+ AV_PIX_FMT_YUV420P12LE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
+ AV_PIX_FMT_YUV420P14BE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
+ AV_PIX_FMT_YUV420P14LE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
+ AV_PIX_FMT_YUV422P12BE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
+ AV_PIX_FMT_YUV422P12LE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
+ AV_PIX_FMT_YUV422P14BE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
+ AV_PIX_FMT_YUV422P14LE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
+ AV_PIX_FMT_YUV444P12BE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
+ AV_PIX_FMT_YUV444P12LE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
+ AV_PIX_FMT_YUV444P14BE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
+ AV_PIX_FMT_YUV444P14LE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
+ AV_PIX_FMT_GBRP12BE, ///< planar GBR 4:4:4 36bpp, big-endian
+ AV_PIX_FMT_GBRP12LE, ///< planar GBR 4:4:4 36bpp, little-endian
+ AV_PIX_FMT_GBRP14BE, ///< planar GBR 4:4:4 42bpp, big-endian
+ AV_PIX_FMT_GBRP14LE, ///< planar GBR 4:4:4 42bpp, little-endian
+ AV_PIX_FMT_YUVJ411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV411P and setting color_range
+
+ AV_PIX_FMT_BAYER_BGGR8, ///< bayer, BGBG..(odd line), GRGR..(even line), 8-bit samples */
+ AV_PIX_FMT_BAYER_RGGB8, ///< bayer, RGRG..(odd line), GBGB..(even line), 8-bit samples */
+ AV_PIX_FMT_BAYER_GBRG8, ///< bayer, GBGB..(odd line), RGRG..(even line), 8-bit samples */
+ AV_PIX_FMT_BAYER_GRBG8, ///< bayer, GRGR..(odd line), BGBG..(even line), 8-bit samples */
+ AV_PIX_FMT_BAYER_BGGR16LE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, little-endian */
+ AV_PIX_FMT_BAYER_BGGR16BE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, big-endian */
+ AV_PIX_FMT_BAYER_RGGB16LE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, little-endian */
+ AV_PIX_FMT_BAYER_RGGB16BE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, big-endian */
+ AV_PIX_FMT_BAYER_GBRG16LE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, little-endian */
+ AV_PIX_FMT_BAYER_GBRG16BE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, big-endian */
+ AV_PIX_FMT_BAYER_GRBG16LE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian */
+ AV_PIX_FMT_BAYER_GRBG16BE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian */
- #if !FF_API_XVMC
++
+ AV_PIX_FMT_XVMC,///< XVideo Motion Acceleration via common packet passing
- #endif /* !FF_API_XVMC */
++
+ AV_PIX_FMT_YUV440P10LE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
+ AV_PIX_FMT_YUV440P10BE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
+ AV_PIX_FMT_YUV440P12LE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
+ AV_PIX_FMT_YUV440P12BE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
+ AV_PIX_FMT_AYUV64LE, ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), little-endian
+ AV_PIX_FMT_AYUV64BE, ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), big-endian
+
+ AV_PIX_FMT_VIDEOTOOLBOX, ///< hardware decoding through Videotoolbox
+
AV_PIX_FMT_P010LE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, little-endian
AV_PIX_FMT_P010BE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, big-endian
More information about the ffmpeg-cvslog
mailing list