]> git.sesse.net Git - ffmpeg/blobdiff - doc/codecs.texi
lavu: bump minor and add APIchanges entry for the lavu/tx changes
[ffmpeg] / doc / codecs.texi
index 02d5a1b2222f66219db18139736ee6a9db4188d4..9add7629cf5c2830eebf54343d92f4f7518500a8 100644 (file)
@@ -50,11 +50,13 @@ Use internal 2pass ratecontrol in first pass mode.
 Use internal 2pass ratecontrol in second pass mode.
 @item gray
 Only decode/encode grayscale.
-@item emu_edge
-Do not draw edges.
 @item psnr
 Set error[?] variables during encoding.
 @item truncated
+Input bitstream might be randomly truncated.
+@item drop_changed
+Don't output frames whose parameters differ from first decoded frame in stream.
+Error AVERROR_INPUT_CHANGED is returned when a frame is dropped.
 
 @item ildct
 Use interlaced DCT.
@@ -68,50 +70,14 @@ This ensures that file and data checksums are reproducible and match between
 platforms. Its primary use is for regression testing.
 @item aic
 Apply H263 advanced intra coding / mpeg4 ac prediction.
-@item cbp
-Deprecated, use mpegvideo private options instead.
-@item qprd
-Deprecated, use mpegvideo private options instead.
 @item ilme
 Apply interlaced motion estimation.
 @item cgop
 Use closed gop.
+@item output_corrupt
+Output even potentially corrupted frames.
 @end table
 
-@item me_method @var{integer} (@emph{encoding,video})
-Set motion estimation method.
-
-Possible values:
-@table @samp
-@item zero
-zero motion estimation (fastest)
-@item full
-full motion estimation (slowest)
-@item epzs
-EPZS motion estimation (default)
-@item esa
-esa motion estimation (alias for full)
-@item tesa
-tesa motion estimation
-@item dia
-dia motion estimation (alias for epzs)
-@item log
-log motion estimation
-@item phods
-phods motion estimation
-@item x1
-X1 motion estimation
-@item hex
-hex motion estimation
-@item umh
-umh motion estimation
-@item iter
-iter motion estimation
-@end table
-
-@item extradata_size @var{integer}
-Set extradata size.
-
 @item time_base @var{rational number}
 Set codec time base.
 
@@ -178,9 +144,6 @@ Default value is 0.
 @item b_qfactor @var{float} (@emph{encoding,video})
 Set qp factor between P and B frames.
 
-@item rc_strategy @var{integer} (@emph{encoding,video})
-Set ratecontrol method.
-
 @item b_strategy @var{integer} (@emph{encoding,video})
 Set strategy to choose between I/P/B-frames.
 
@@ -204,8 +167,6 @@ Possible values:
 @table @samp
 @item autodetect
 
-@item old_msmpeg4
-some old lavc generated msmpeg4v3 files (no autodetection)
 @item xvid_ilace
 Xvid interlacing bug (autodetected if fourcc==XVIX)
 @item ump4
@@ -214,8 +175,6 @@ Xvid interlacing bug (autodetected if fourcc==XVIX)
 padding bug (autodetected)
 @item amv
 
-@item ac_vlc
-illegal vlc bug (autodetected per fourcc)
 @item qpel_chroma
 
 @item std_qpel
@@ -236,14 +195,6 @@ Workaround various bugs in microsoft broken decoders.
 trancated frames
 @end table
 
-@item lelim @var{integer} (@emph{encoding,video})
-Set single coefficient elimination threshold for luminance (negative
-values also consider DC coefficient).
-
-@item celim @var{integer} (@emph{encoding,video})
-Set single coefficient elimination threshold for chrominance (negative
-values also consider dc coefficient)
-
 @item strict @var{integer} (@emph{decoding/encoding,audio,video})
 Specify how strictly to follow the standards.
 
@@ -300,26 +251,8 @@ consider things that a sane encoder should not do as an error
 @item mpeg_quant @var{integer} (@emph{encoding,video})
 Use MPEG quantizers instead of H.263.
 
-@item qsquish @var{float} (@emph{encoding,video})
-How to keep quantizer between qmin and qmax (0 = clip, 1 = use
-differentiable function).
-
-@item rc_qmod_amp @var{float} (@emph{encoding,video})
-Set experimental quantizer modulation.
-
-@item rc_qmod_freq @var{integer} (@emph{encoding,video})
-Set experimental quantizer modulation.
-
 @item rc_override_count @var{integer}
 
-@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.
-
 @item maxrate @var{integer} (@emph{encoding,audio,video})
 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
 
@@ -330,18 +263,12 @@ encode. It is of little use elsewise.
 @item bufsize @var{integer} (@emph{encoding,audio,video})
 Set ratecontrol buffer size (in bits).
 
-@item rc_buf_aggressivity @var{float} (@emph{encoding,video})
-Currently useless.
-
 @item i_qfactor @var{float} (@emph{encoding,video})
 Set QP factor between P and I frames.
 
 @item i_qoffset @var{float} (@emph{encoding,video})
 Set QP offset between P and I frames.
 
-@item rc_init_cplx @var{float} (@emph{encoding,video})
-Set initial complexity for 1-pass encoding.
-
 @item dct @var{integer} (@emph{encoding,video})
 Set DCT algorithm.
 
@@ -406,11 +333,7 @@ Automatically pick a IDCT compatible with the simple one
 
 @item simpleneon
 
-@item simplealpha
-
-@item ipp
-
-@item xvidmmx
+@item xvid
 
 @item faani
 floating point AAN IDCT
@@ -640,6 +563,24 @@ noise preserving sum of squared differences
 
 @item dia_size @var{integer} (@emph{encoding,video})
 Set diamond type & size for motion estimation.
+@table @samp
+@item (1024, INT_MAX)
+full motion estimation(slowest)
+@item (768, 1024]
+umh motion estimation
+@item (512, 768]
+hex motion estimation
+@item (256, 512]
+l2s diamond motion estimation
+@item [2,256]
+var diamond motion estimation
+@item (-1,  2)
+small diamond motion estimation
+@item -1
+funny diamond motion estimation
+@item (INT_MIN, -1)
+sab diamond motion estimation
+@end table
 
 @item last_pred @var{integer} (@emph{encoding,video})
 Set amount of motion predictors from the previous frame.
@@ -690,19 +631,9 @@ Set diamond type & size for motion estimation pre-pass.
 @item subq @var{integer} (@emph{encoding,video})
 Set sub pel motion estimation quality.
 
-@item dtg_active_format @var{integer}
-
 @item me_range @var{integer} (@emph{encoding,video})
 Set limit motion vectors range (1023 for DivX player).
 
-@item ibias @var{integer} (@emph{encoding,video})
-Set intra quant bias.
-
-@item pbias @var{integer} (@emph{encoding,video})
-Set inter quant bias.
-
-@item color_table_id @var{integer}
-
 @item global_quality @var{integer} (@emph{encoding,audio,video})
 
 @item coder @var{integer} (@emph{encoding,video})
@@ -717,8 +648,6 @@ arithmetic coder
 raw (no encoding)
 @item rle
 run-length coder
-@item deflate
-deflate-based coder
 @end table
 
 @item context @var{integer} (@emph{encoding,video})
@@ -739,17 +668,9 @@ use fewest bits
 use best rate distortion
 @end table
 
-@item stream_codec_tag @var{integer}
-
 @item sc_threshold @var{integer} (@emph{encoding,video})
 Set scene change threshold.
 
-@item lmin @var{integer} (@emph{encoding,video})
-Set min lagrange factor (VBR).
-
-@item lmax @var{integer} (@emph{encoding,video})
-Set max lagrange factor (VBR).
-
 @item nr @var{integer} (@emph{encoding,video})
 Set noise reduction.
 
@@ -757,14 +678,12 @@ Set noise reduction.
 Set number of bits which should be loaded into the rc buffer before
 decoding starts.
 
-@item flags2 @var{flags} (@emph{decoding/encoding,audio,video})
+@item flags2 @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
 
 Possible values:
 @table @samp
 @item fast
 Allow non spec compliant speedup tricks.
-@item sgop
-Deprecated, use mpegvideo private options instead.
 @item noout
 Skip bitstream encoding.
 @item ignorecrop
@@ -778,12 +697,29 @@ Show all frames before the first keyframe.
 @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}.
+@item skip_manual
+Do not skip samples and export skip information as frame side data.
+@item ass_ro_flush_noop
+Do not reset ASS ReadOrder field on flush.
 @end table
 
-@item error @var{integer} (@emph{encoding,video})
+@item export_side_data @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
 
-@item qns @var{integer} (@emph{encoding,video})
-Deprecated, use mpegvideo private options instead.
+Possible values:
+@table @samp
+@item 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}.
+@item prft
+Export encoder Producer Reference Time into packet side-data (see @code{AV_PKT_DATA_PRFT})
+for codecs that support it.
+@item venc_params
+Export video encoding parameters through frame side data (see @code{AV_FRAME_DATA_VIDEO_ENC_PARAMS})
+for codecs that support it. At present, those are H.264 and VP9.
+@item film_grain
+Export film grain parameters through frame side data (see @code{AV_FRAME_DATA_FILM_GRAIN_PARAMS}).
+Supported at present by AV1 decoders.
+@end table
 
 @item threads @var{integer} (@emph{decoding/encoding,video})
 Set the number of threads to be used, in case the selected codec
@@ -797,12 +733,6 @@ automatically select the number of threads to set
 
 Default value is @samp{auto}.
 
-@item me_threshold @var{integer} (@emph{encoding,video})
-Set motion estimation threshold.
-
-@item mb_threshold @var{integer} (@emph{encoding,video})
-Set macroblock threshold.
-
 @item dc @var{integer} (@emph{encoding,video})
 Set intra_dc_precision.
 
@@ -817,49 +747,8 @@ Set number of macroblock rows at the bottom which are skipped.
 
 @item profile @var{integer} (@emph{encoding,audio,video})
 
-Possible values:
-@table @samp
-@item unknown
-
-@item aac_main
-
-@item aac_low
-
-@item aac_ssr
-
-@item aac_ltp
-
-@item aac_he
-
-@item aac_he_v2
-
-@item aac_ld
-
-@item aac_eld
-
-@item mpeg2_aac_low
-
-@item mpeg2_aac_he
-
-@item mpeg4_sp
-
-@item mpeg4_core
-
-@item mpeg4_main
-
-@item mpeg4_asp
-
-@item dts
-
-@item dts_es
-
-@item dts_96_24
-
-@item dts_hd_hra
-
-@item dts_hd_ma
-
-@end table
+Set encoder codec profile. Default value is @samp{unknown}. Encoder specific
+profiles are documented in the relevant encoder documentation.
 
 @item level @var{integer} (@emph{encoding,audio,video})
 
@@ -921,9 +810,6 @@ noise preserving sum of squared differences
 
 @end table
 
-@item border_mask @var{float} (@emph{encoding,video})
-Increase the quantizer for macroblocks close to borders.
-
 @item mblmin @var{integer} (@emph{encoding,video})
 Set min macroblock lagrange factor (VBR).
 
@@ -960,6 +846,9 @@ Discard all bidirectional frames.
 @item nokey
 Discard all frames excepts keyframes.
 
+@item nointra
+Discard all frames except I frames.
+
 @item all
 Discard all frames.
 @end table
@@ -994,9 +883,6 @@ Adjust sensitivity of b_frame_strategy 1.
 @item timecode_frame_start @var{integer} (@emph{encoding,video})
 Set GOP timecode frame start number, in non drop frame format.
 
-@item request_channels @var{integer} (@emph{decoding,audio})
-Set desired number of audio channels.
-
 @item bits_per_raw_sample @var{integer}
 @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
 
@@ -1110,6 +996,12 @@ BT.2020 NCL
 BT.2020 CL
 @item smpte2085
 SMPTE 2085
+@item chroma-derived-nc
+Chroma-derived NCL
+@item chroma-derived-c
+Chroma-derived CL
+@item ictcp
+ICtCp
 @end table
 
 @item color_range @var{integer} (@emph{decoding/encoding,video})
@@ -1230,7 +1122,7 @@ instead of alpha. Default is 0.
 @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:
+For example, to separate the fields with newlines and indentation:
 @example
 ffprobe -dump_separator "
                           "  -i ~/videos/matrixbench_mpeg2.mpg