avcodec/vc1: add Simple and Main profile to vc1_put_signed_blocks_clamped
[ffmpeg.git] / doc / codecs.texi
index 74dd775..3770f4f 100644 (file)
@@ -7,7 +7,7 @@ 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 unsensical or ignored by another, so you need to be aware
+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.
 
@@ -44,12 +44,6 @@ Use 1/4 pel motion compensation.
 Use loop filter.
 @item qscale
 Use fixed qscale.
-@item gmc
-Use gmc.
-@item mv0
-Always try a mb with mv=<0,0>.
-@item input_preserved
-
 @item pass1
 Use internal 2pass ratecontrol in first pass mode.
 @item pass2
@@ -62,8 +56,6 @@ Do not draw edges.
 Set error[?] variables during encoding.
 @item truncated
 
-@item naq
-Normalize adaptive quantization.
 @item ildct
 Use interlaced DCT.
 @item low_delay
@@ -71,7 +63,9 @@ Force low delay.
 @item global_header
 Place global headers in extradata instead of every keyframe.
 @item bitexact
-Use only bitexact stuff (except (I)DCT).
+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.
 @item aic
 Apply H263 advanced intra coding / mpeg4 ac prediction.
 @item cbp
@@ -127,7 +121,7 @@ should be @code{1 / frame_rate} and timestamp increments should be
 identically 1.
 
 @item g @var{integer} (@emph{encoding,video})
-Set the group of picture size. Default value is 12.
+Set the group of picture (GOP) size. Default value is 12.
 
 @item ar @var{integer} (@emph{decoding/encoding,audio})
 Set audio sampling rate (in Hz).
@@ -136,7 +130,8 @@ Set audio sampling rate (in Hz).
 Set number of audio channels.
 
 @item cutoff @var{integer} (@emph{encoding,audio})
-Set cutoff bandwidth.
+Set cutoff bandwidth. (Supported only by selected encoders, see
+their respective documentation sections.)
 
 @item frame_size @var{integer} (@emph{encoding,audio})
 Set audio frame size.
@@ -172,7 +167,13 @@ Set max video quantizer scale (VBR). Must be included between -1 and
 Set max difference between the quantizer scale (VBR).
 
 @item bf @var{integer} (@emph{encoding,video})
-Set max number of B frames.
+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.
 
 @item b_qfactor @var{float} (@emph{encoding,video})
 Set qp factor between P and B frames.
@@ -249,7 +250,7 @@ Specify how strictly to follow the standards.
 Possible values:
 @table @samp
 @item very
-strictly conform to a older more strict version of the spec or reference software
+strictly conform to an older more strict version of the spec or reference software
 @item strict
 strictly conform to all the things in the spec no matter what consequences
 @item normal
@@ -279,6 +280,11 @@ detect bitstream specification deviations
 detect improper bitstream length
 @item explode
 abort decoding on minor error detection
+@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.
 @item careful
 consider things that violate the spec and have not been seen in the wild as errors
 @item compliant
@@ -383,6 +389,9 @@ Possible values:
 
 @item simplemmx
 
+@item simpleauto
+Automatically pick a IDCT compatible with the simple one
+
 @item arm
 
 @item altivec
@@ -418,6 +427,8 @@ Possible values:
 iterative motion vector (MV) search (slow)
 @item deblock
 use strong deblock filter for damaged MBs
+@item favor_inter
+favor predicting from the previous frame instead of the current
 @end table
 
 @item bits_per_coded_sample @var{integer}
@@ -438,6 +449,9 @@ Possible values:
 @item aspect @var{rational number} (@emph{encoding,video})
 Set sample aspect ratio.
 
+@item sar @var{rational number} (@emph{encoding,video})
+Set sample aspect ratio. Alias to @var{aspect}.
+
 @item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
 Print specific debug info.
 
@@ -453,43 +467,27 @@ rate control
 macroblock (MB) type
 @item qp
 per-block quantization parameter (QP)
-@item mv
-motion vector
 @item dct_coeff
 
+@item green_metadata
+display complexity metadata for the upcoming frame, GoP or for a given duration.
+
 @item skip
 
 @item startcode
 
-@item pts
-
 @item er
 error recognition
 @item mmco
 memory management control operations (H.264)
 @item bugs
 
-@item vis_qp
-visualize quantization parameter (QP), lower QP are tinted greener
-@item vis_mb_type
-visualize block types
 @item buffers
 picture buffer allocations
 @item thread_ops
 threading operations
-@end table
-
-@item vismv @var{integer} (@emph{decoding,video})
-Visualize motion vectors (MVs).
-
-Possible values:
-@table @samp
-@item pf
-forward predicted MVs of P-frames
-@item bf
-forward predicted MVs of B-frames
-@item bb
-backward predicted MVs of B-frames
+@item nomc
+skip motion compensation
 @end table
 
 @item cmp @var{integer} (@emph{encoding,video})
@@ -728,8 +726,6 @@ Set context model.
 
 @item slice_flags @var{integer}
 
-@item xvmc_acceleration @var{integer}
-
 @item mbd @var{integer} (@emph{encoding,video})
 Set macroblock decision algorithm (high quality mode).
 
@@ -781,6 +777,9 @@ Frame data might be split into multiple chunks.
 Show all frames before the first keyframe.
 @item skiprd
 Deprecated, use mpegvideo private options instead.
+@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}.
 @end table
 
 @item error @var{integer} (@emph{encoding,video})
@@ -789,13 +788,17 @@ Deprecated, use mpegvideo private options instead.
 Deprecated, use mpegvideo private options instead.
 
 @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:
 @table @samp
-@item auto
-detect a good number of threads
+@item auto, 0
+automatically select the number of threads to set
 @end table
 
+Default value is @samp{auto}.
+
 @item me_threshold @var{integer} (@emph{encoding,video})
 Set motion estimation threshold.
 
@@ -840,6 +843,14 @@ Possible values:
 
 @item mpeg2_aac_he
 
+@item mpeg4_sp
+
+@item mpeg4_core
+
+@item mpeg4_main
+
+@item mpeg4_asp
+
 @item dts
 
 @item dts_es
@@ -871,6 +882,9 @@ Set frame skip factor.
 
 @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.
 
 @item skipcmp @var{integer} (@emph{encoding,video})
 Set frame skip compare function.
@@ -972,10 +986,6 @@ Set chroma qp offset from luma.
 @item trellis @var{integer} (@emph{encoding,audio,video})
 Set rate-distortion optimal quantization.
 
-@item sc_factor @var{integer} (@emph{encoding,video})
-Set value multiplied by qscale for each frame and added to
-scene_change_score.
-
 @item mv0_threshold @var{integer} (@emph{encoding,video})
 @item b_sensitivity @var{integer} (@emph{encoding,video})
 Adjust sensitivity of b_frame_strategy 1.
@@ -1003,11 +1013,136 @@ Possible values:
 @item rc_max_vbv_use @var{float} (@emph{encoding,video})
 @item rc_min_vbv_use @var{float} (@emph{encoding,video})
 @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
+
 @item color_primaries @var{integer} (@emph{decoding/encoding,video})
+Possible values:
+@table @samp
+@item bt709
+BT.709
+@item bt470m
+BT.470 M
+@item bt470bg
+BT.470 BG
+@item smpte170m
+SMPTE 170 M
+@item smpte240m
+SMPTE 240 M
+@item film
+Film
+@item bt2020
+BT.2020
+@item smpte428
+@item smpte428_1
+SMPTE ST 428-1
+@item smpte431
+SMPTE 431-2
+@item smpte432
+SMPTE 432-1
+@item jedec-p22
+JEDEC P22
+@end table
+
 @item color_trc @var{integer} (@emph{decoding/encoding,video})
+Possible values:
+@table @samp
+@item bt709
+BT.709
+@item gamma22
+BT.470 M
+@item gamma28
+BT.470 BG
+@item smpte170m
+SMPTE 170 M
+@item smpte240m
+SMPTE 240 M
+@item linear
+Linear
+@item log
+@item log100
+Log
+@item log_sqrt
+@item log316
+Log square root
+@item iec61966_2_4
+@item iec61966-2-4
+IEC 61966-2-4
+@item bt1361
+@item bt1361e
+BT.1361
+@item iec61966_2_1
+@item iec61966-2-1
+IEC 61966-2-1
+@item bt2020_10
+@item bt2020_10bit
+BT.2020 - 10 bit
+@item bt2020_12
+@item bt2020_12bit
+BT.2020 - 12 bit
+@item smpte2084
+SMPTE ST 2084
+@item smpte428
+@item smpte428_1
+SMPTE ST 428-1
+@item arib-std-b67
+ARIB STD-B67
+@end table
+
 @item colorspace @var{integer} (@emph{decoding/encoding,video})
+Possible values:
+@table @samp
+@item rgb
+RGB
+@item bt709
+BT.709
+@item fcc
+FCC
+@item bt470bg
+BT.470 BG
+@item smpte170m
+SMPTE 170 M
+@item smpte240m
+SMPTE 240 M
+@item ycocg
+YCOCG
+@item bt2020nc
+@item bt2020_ncl
+BT.2020 NCL
+@item bt2020c
+@item bt2020_cl
+BT.2020 CL
+@item smpte2085
+SMPTE 2085
+@end table
+
 @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:
+@table @samp
+@item tv
+@item mpeg
+MPEG (219*2^(n-8))
+@item pc
+@item jpeg
+JPEG (2^n-1)
+@end table
+
 @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
+Possible values:
+@table @samp
+@item left
+
+@item center
+
+@item topleft
+
+@item top
+
+@item bottomleft
+
+@item bottom
+
+@end table
 
 @item log_level_offset @var{integer}
 Set the log level offset.
@@ -1016,15 +1151,26 @@ Set the log level offset.
 Number of slices, used in parallelized encoding.
 
 @item thread_type @var{flags} (@emph{decoding/encoding,video})
-Select multithreading type.
+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:
 @table @samp
 @item slice
+Decode more than one part of a single frame at once.
 
-@item frame
+Multithreading using slices works only when the video was encoded with
+slices.
 
+@item frame
+Decode more than one frame at once.
 @end table
+
+Default value is @samp{slice+frame}.
+
 @item audio_service_type @var{integer} (@emph{encoding,audio})
 Set audio service type.
 
@@ -1075,11 +1221,44 @@ Interlaced video, top coded first, bottom displayed first
 Interlaced video, bottom coded first, top displayed first
 @end table
 
-@item skip_alpha @var{integer} (@emph{decoding,video})
-causes alpha plane not to be decoded, like "gray" which skips chroma.
+@item skip_alpha @var{bool} (@emph{decoding,video})
+Set to 1 to disable processing alpha (transparency). This works like the
+@samp{gray} flag in the @option{flags} option which skips chroma information
+instead of alpha. Default is 0.
+
+@item codec_whitelist @var{list} (@emph{input})
+"," separated list of allowed decoders. By default all are allowed.
+
+@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:
+@example
+ffprobe -dump_separator "
+                          "  -i ~/videos/matrixbench_mpeg2.mpg
+@end example
+
+@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.
+
+@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.
+
+
 @end table
 
 @c man end CODEC OPTIONS
 
+@ifclear config-writeonly
 @include decoders.texi
+@end ifclear
+@ifclear config-readonly
 @include encoders.texi
+@end ifclear