[FFmpeg-cvslog] doc/filters/perlin: specify default values

2024-07-06 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jul  6 
14:10:49 2024 +0200| [9c357324f0425fc7e04ec5593cf92d133fda21a9] | committer: 
Stefano Sabatini

doc/filters/perlin: specify default values

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9c357324f0425fc7e04ec5593cf92d133fda21a9
---

 doc/filters.texi | 16 ++--
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index c9c4f7cf6b..a43e4b8055 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -29306,28 +29306,30 @@ due to boulders in a generated terrain).
 Specify the size (width and height) of the buffered video frames. For the
 syntax of this option, check the
 @ref{video size syntax,,"Video size" section in the ffmpeg-utils 
manual,ffmpeg-utils}.
+Default value is @code{320x240}.
 
 @item rate, r
 Specify the frame rate expected for the video stream, expressed as a
-number of frames per second.
+number of frames per second. Default value is @code{25}.
 
 @item octaves
 Specify the total number of components making up the noise, each one
-with doubled frequency.
+with doubled frequency. Default value is @code{1}.
 
 @item persistence
 Set the ratio used to compute the amplitude of the next octave
-component with respect to the previous component amplitude.
+component with respect to the previous component amplitude. Default
+value is @code{1}.
 
 @item xscale
 @item yscale
 Define a scale factor used to multiple the x, y coordinates. This can
 be useful to define an effect with a pattern stretched along the x or
-y axis.
+y axis. Default value is @code{1}.
 
 @item tscale
 Define a scale factor used to multiple the time coordinate. This can
-be useful to change the time variation speed.
+be useful to change the time variation speed. Default value is @code{1}.
 
 @item random_mode
 Set random mode used to compute initial pattern.
@@ -29346,9 +29348,11 @@ sources.
 Use the value specified by @option{random_seed} option.
 @end table
 
+Default value is @code{random}.
+
 @item random_seed, seed
 When @option{random_mode} is set to @var{random_seed}, use this value
-to compute the initial pattern.
+to compute the initial pattern. Default value is @code{0}.
 @end table
 
 @subsection Examples

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavfi: add Perlin noise generator

2024-07-01 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Mon May 27 
11:19:08 2024 +0200| [3764b8ecdb40873af5eb49afa0582b7cc0f99b64] | committer: 
Stefano Sabatini

lavfi: add Perlin noise generator

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3764b8ecdb40873af5eb49afa0582b7cc0f99b64
---

 Changelog |   1 +
 doc/filters.texi  | 100 +
 libavfilter/Makefile  |   1 +
 libavfilter/allfilters.c  |   1 +
 libavfilter/perlin.c  | 224 ++
 libavfilter/perlin.h  | 101 +
 libavfilter/vsrc_perlin.c | 169 ++
 7 files changed, 597 insertions(+)

diff --git a/Changelog b/Changelog
index 06c00e981a..e6a40b0252 100644
--- a/Changelog
+++ b/Changelog
@@ -14,6 +14,7 @@ version :
 - xHE-AAC decoder
 - removed DEC Alpha DSP and support code
 - VVC encoding support via libvvenc
+- perlin video source
 
 
 version 7.0:
diff --git a/doc/filters.texi b/doc/filters.texi
index 347103c04f..0ff7c142b6 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -17290,6 +17290,9 @@ The command accepts the same syntax of the 
corresponding option.
 If the specified expression is not valid, it is kept at its current
 value.
 
+@anchor{lutrgb}
+@anchor{lutyuv}
+@anchor{lut}
 @section lut, lutrgb, lutyuv
 
 Compute a look-up table for binding each pixel component input value
@@ -29281,6 +29284,103 @@ ffplay -f lavfi 
life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_c
 @end example
 @end itemize
 
+@section perlin
+Generate Perlin noise.
+
+Perlin noise is a kind of noise with local continuity in space. This
+can be used to generate patterns with continuity in space and time,
+e.g. to simulate smoke, fluids, or terrain.
+
+In case more than one octave is specified through the @option{octaves}
+option, Perlin noise is generated as a sum of components, each one
+with doubled frequency. In this case the @option{persistence} option
+specify the ratio of the amplitude with respect to the previous
+component. More octave components enable to specify more high
+frequency details in the generated noise (e.g. small size variations
+due to boulders in a generated terrain).
+
+@subsection Options
+@table @option
+
+@item size, s
+Specify the size (width and height) of the buffered video frames. For the
+syntax of this option, check the
+@ref{video size syntax,,"Video size" section in the ffmpeg-utils 
manual,ffmpeg-utils}.
+
+@item rate, r
+Specify the frame rate expected for the video stream, expressed as a
+number of frames per second.
+
+@item octaves
+Specify the total number of components making up the noise, each one
+with doubled frequency.
+
+@item persistence
+Set the ratio used to compute the amplitude of the next octave
+component with respect to the previous component amplitude.
+
+@item xscale
+@item yscale
+Define a scale factor used to multiple the x, y coordinates. This can
+be useful to define an effect with a pattern stretched along the x or
+y axis.
+
+@item tscale
+Define a scale factor used to multiple the time coordinate. This can
+be useful to change the time variation speed.
+
+@item random_mode
+Set random mode used to compute initial pattern.
+
+Supported values are:
+@table @option
+@item random
+Compute and use random seed.
+
+@item ken
+Use the predefined initial pattern defined by Ken Perlin in the
+original article, can be useful to compare the output with other
+sources.
+
+@item seed
+Use the value specified by @option{random_seed} option.
+@end table
+
+@item random_seed, seed
+When @option{random_mode} is set to @var{random_seed}, use this value
+to compute the initial pattern.
+@end table
+
+@subsection Examples
+@itemize
+@item
+Generate single component:
+@example
+perlin
+@end example
+
+@item
+Use Perlin noise with 7 components, each one with a halved contribution
+to total amplitude:
+@example
+perlin=octaves=7:persistence=0.5
+@end example
+
+@item
+Chain Perlin noise with the @ref{lutyuv} to generate a black&white
+effect:
+@example
+perlin=octaves=3:tscale=0.3,lutyuv=y='if(lt(val\,128)\,255\,0)'
+@end example
+
+@item
+Stretch noise along the y axis, and convert gray level to red-only
+signal:
+@example
+perlin=octaves=7:tscale=0.4:yscale=0.3,lutrgb=r=val:b=0:g=0
+@end example
+@end itemize
+
 @section qrencodesrc
 
 Generate a QR code using the libqrencode library (see
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 5992fd161f..63088e9286 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -603,6 +603,7 @@ OBJS-$(CONFIG_NULLSRC_FILTER)+= 
vsrc_testsrc.o
 OBJS-$(CONFIG_OPENCLSRC_FILTER)  += vf_program_opencl.o opencl.o
 OBJS-$(CONFIG_PAL75BARS_FILTER)  += vsrc_testsrc.o
 OBJS-$(CONFIG_PAL100BARS_FILTER) += vsrc_testsrc.o
+OBJS-$(CONFIG_PERLIN_FILTER) += vsrc_perlin.o perlin.o
 OBJS-$(CONFIG_QRENCODE_FILTER) 

[FFmpeg-cvslog] doc/filters/curves: fix typos

2024-06-03 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Mon Jun  3 
11:24:33 2024 +0200| [77ad4499117860e03254044bfb7b929d3ae40f0e] | committer: 
Stefano Sabatini

doc/filters/curves: fix typos

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=77ad4499117860e03254044bfb7b929d3ae40f0e
---

 doc/filters.texi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index 766b662ebe..347103c04f 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -11092,8 +11092,8 @@ By default, a component curve is defined by the two 
points @var{(0;0)} and
 "adjusted" to its own value, which means no change to the image.
 
 The filter allows you to redefine these two points and add some more. A new
-curve will be define to pass smoothly through all these new coordinates. The
-new defined points needs to be strictly increasing over the x-axis, and their
+curve will be defined to pass smoothly through all these new coordinates. The
+new defined points need to be strictly increasing over the x-axis, and their
 @var{x} and @var{y} values must be in the @var{[0;1]} interval. The curve is
 formed by using a natural or monotonic cubic spline interpolation, depending
 on the @var{interp} option (default: @code{natural}). The @code{natural}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/filters/tiltandshift: apply typo fixes, add introductory description

2024-06-03 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Mon Jun  3 
11:07:27 2024 +0200| [17a759cce13b5d9562c8b9c07e0cf603292a44b2] | committer: 
Stefano Sabatini

doc/filters/tiltandshift: apply typo fixes, add introductory description

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=17a759cce13b5d9562c8b9c07e0cf603292a44b2
---

 doc/filters.texi | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index f5bf475d13..766b662ebe 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -23543,11 +23543,12 @@ tile=3x2:nb_frames=5:padding=7:margin=2
 @end itemize
 
 @section tiltandshift
+Apply tilt-and-shift effet.
 
 What happens when you invert time and space?
 
 Normally a video is composed of several frames that represent a different
-instant of time and shows a scence that evolves in the space captured by the
+instant of time and shows a scene that evolves in the space captured by the
 frame. This filter is the antipode of that concept, taking inspiration by
 tilt and shift photography.
 
@@ -23556,13 +23557,13 @@ and this is obtained by placing a slice of pixels 
from each frame into a single
 one. However, since there are no infinite-width frames, this is done up the
 width of the input frame, and a video is recomposed by shifting away one
 column for each subsequent frame. In order to map space to time, the filter
-tilts each input frame as well, so that motion is preseved. This is 
accomplished
+tilts each input frame as well, so that motion is preserved. This is 
accomplished
 by progressively selecting a different column from each input frame.
 
-The end result is a sort of inverted parralax, so that far away objects move
+The end result is a sort of inverted parallax, so that far away objects move
 much faster that the ones in the front. The ideal conditions for this video
 effect are when there is either very little motion and the backgroud is static,
-or when there is a lot of motion and a very wide depth of field (eg. wide
+or when there is a lot of motion and a very wide depth of field (e.g. wide
 panorama, while moving on a train).
 
 The filter accepts the following parameters:

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add mmf

2024-04-19 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Apr 16 
10:15:02 2024 +0200| [0fb0946de7d35e4d0c1455b82a04f8833106260e] | committer: 
Stefano Sabatini

doc/muxers: add mmf

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0fb0946de7d35e4d0c1455b82a04f8833106260e
---

 doc/muxers.texi | 9 +
 1 file changed, 9 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index ee89847d60..6340c8e54d 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2933,6 +2933,15 @@ MicroDVD subtitle format muxer.
 
 This muxer accepts a single @samp{microdvd} subtitles stream.
 
+@section mmf
+Synthetic music Mobile Application Format (SMAF) format muxer.
+
+SMAF is a music data format specified by Yamaha for portable
+electronic devices, such as mobile phones and personal digital
+assistants.
+
+This muxer accepts a single @samp{adpcm_yamaha} audio stream.
+
 @section mp3
 
 The MP3 muxer writes a raw MP3 stream with the following optional features:

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavf/matroskaenc: apply consistent style to options descriptions

2024-04-19 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Apr 16 
09:17:52 2024 +0200| [bba492dc9c4da8517385a14cbccf29bcd7c99e4b] | committer: 
Stefano Sabatini

lavf/matroskaenc: apply consistent style to options descriptions

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bba492dc9c4da8517385a14cbccf29bcd7c99e4b
---

 libavformat/matroskaenc.c | 26 +-
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 566e9f4981..63bae9fe1c 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -3500,20 +3500,20 @@ static const AVCodecTag additional_subtitle_tags[] = {
 #define OFFSET(x) offsetof(MatroskaMuxContext, x)
 #define FLAGS AV_OPT_FLAG_ENCODING_PARAM
 static const AVOption options[] = {
-{ "reserve_index_space", "Reserve a given amount of space (in bytes) at 
the beginning of the file for the index (cues).", OFFSET(reserve_cues_space), 
AV_OPT_TYPE_INT,   { .i64 = 0 },   0, INT_MAX,   FLAGS },
-{ "cues_to_front", "Move Cues (the index) to the front by shifting data if 
necessary", OFFSET(move_cues_to_front), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, 
FLAGS },
-{ "cluster_size_limit",  "Store at most the provided amount of bytes in a 
cluster. ", OFFSET(cluster_size_limit), 
AV_OPT_TYPE_INT  , { .i64 = -1 }, -1, INT_MAX,   FLAGS },
-{ "cluster_time_limit",  "Store at most the provided number of 
milliseconds in a cluster.",   
OFFSET(cluster_time_limit), AV_OPT_TYPE_INT64, { .i64 = -1 }, -1, INT64_MAX, 
FLAGS },
-{ "dash", "Create a WebM file conforming to WebM DASH specification", 
OFFSET(is_dash), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
-{ "dash_track_number", "Track number for the DASH stream", 
OFFSET(dash_track_number), AV_OPT_TYPE_INT, { .i64 = 1 }, 1, INT_MAX, FLAGS },
-{ "live", "Write files assuming it is a live stream.", OFFSET(is_live), 
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
-{ "allow_raw_vfw", "allow RAW VFW mode", OFFSET(allow_raw_vfw), 
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
-{ "flipped_raw_rgb", "Raw RGB bitmaps in VFW mode are stored bottom-up", 
OFFSET(flipped_raw_rgb), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
+{ "reserve_index_space", "reserve a given amount of space (in bytes) at 
the beginning of the file for the index (cues)", OFFSET(reserve_cues_space), 
AV_OPT_TYPE_INT,   { .i64 = 0 },   0, INT_MAX,   FLAGS },
+{ "cues_to_front", "move Cues (the index) to the front by shifting data if 
necessary", OFFSET(move_cues_to_front), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, 
FLAGS },
+{ "cluster_size_limit",  "store at most the provided amount of bytes in a 
cluster", OFFSET(cluster_size_limit), 
AV_OPT_TYPE_INT  , { .i64 = -1 }, -1, INT_MAX,   FLAGS },
+{ "cluster_time_limit",  "store at most the provided number of 
milliseconds in a cluster",   
OFFSET(cluster_time_limit), AV_OPT_TYPE_INT64, { .i64 = -1 }, -1, INT64_MAX, 
FLAGS },
+{ "dash", "create a WebM file conforming to WebM DASH specification", 
OFFSET(is_dash), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
+{ "dash_track_number", "track number for the DASH stream", 
OFFSET(dash_track_number), AV_OPT_TYPE_INT, { .i64 = 1 }, 1, INT_MAX, FLAGS },
+{ "live", "write files assuming it is a live stream", OFFSET(is_live), 
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
+{ "allow_raw_vfw", "allow raw VFW mode", OFFSET(allow_raw_vfw), 
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
+{ "flipped_raw_rgb", "store raw RGB bitmaps in VFW mode in bottom-up 
mode", OFFSET(flipped_raw_rgb), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
 { "write_crc32", "write a CRC32 element inside every Level 1 element", 
OFFSET(write_crc), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, FLAGS },
-{ "default_mode", "Controls how a track's FlagDefault is inferred", 
OFFSET(default_mode), AV_OPT_TYPE_INT, { .i64 = DEFAULT_MODE_PASSTHROUGH }, 
DEFAULT_MODE_INFER, DEFAULT_MODE_PASSTHROUGH, FLAGS, .unit = "default_mode" },
-{ "infer", "For each track type, mark each track of disposition default as 
default; if none exists, mark the first track as default.", 0, 
AV_OPT_TYPE_CONST, { .i64 = DEFAULT_MODE_INFER }, 0, 0, FLAGS, .unit = 
"default_mode" },
-{ "infer_no_subs", "For each track type, mark each track of disposition 
default as default; for audio and video: if none exist

[FFmpeg-cvslog] doc/muxers: add microdvd

2024-04-19 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Apr 16 
09:29:47 2024 +0200| [b9f2e1b9294947b7943977704b1f32eb1b7d3e0c] | committer: 
Stefano Sabatini

doc/muxers: add microdvd

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b9f2e1b9294947b7943977704b1f32eb1b7d3e0c
---

 doc/muxers.texi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 767477a25e..ee89847d60 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2928,6 +2928,11 @@ ffmpeg -i INPUT -f md5 -
 @end example
 @end itemize
 
+@section microdvd
+MicroDVD subtitle format muxer.
+
+This muxer accepts a single @samp{microdvd} subtitles stream.
+
 @section mp3
 
 The MP3 muxer writes a raw MP3 stream with the following optional features:

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/md5: apply misc consistency fixes

2024-04-19 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Apr 16 
09:23:08 2024 +0200| [ac3460c61c3b59165da8e89958c84b03ed0a21d3] | committer: 
Stefano Sabatini

doc/muxers/md5: apply misc consistency fixes

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ac3460c61c3b59165da8e89958c84b03ed0a21d3
---

 doc/muxers.texi | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index af53613bbf..767477a25e 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2905,26 +2905,28 @@ flag is set in the disposition of the corresponding 
stream.
 
 @anchor{md5}
 @section md5
-
 MD5 testing format.
 
 This is a variant of the @ref{hash} muxer. Unlike that muxer, it
 defaults to using the MD5 hash function.
 
-@subsection Examples
+See also the @ref{hash} and @ref{framemd5} muxers.
 
+@subsection Examples
+@itemize
+@item
 To compute the MD5 hash of the input converted to raw
 audio and video, and store it in the file @file{out.md5}:
 @example
 ffmpeg -i INPUT -f md5 out.md5
 @end example
 
-You can print the MD5 to stdout with the command:
+@item
+To print the MD5 hash to stdout:
 @example
 ffmpeg -i INPUT -f md5 -
 @end example
-
-See also the @ref{hash} and @ref{framemd5} muxers.
+@end itemize
 
 @section mp3
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/matroska: add missing options, apply misc style fixes

2024-04-19 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Apr 16 
09:18:21 2024 +0200| [4bd192ddf4fec20f7b25f2e40b7355c2c9fe4a8f] | committer: 
Stefano Sabatini

doc/muxers/matroska: add missing options, apply misc style fixes

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4bd192ddf4fec20f7b25f2e40b7355c2c9fe4a8f
---

 doc/muxers.texi | 44 +---
 1 file changed, 37 insertions(+), 7 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index a77472ef1b..af53613bbf 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2846,8 +2846,44 @@ the initially reserved space turns out to be 
insufficient.
 
 This option is ignored if the output is unseekable.
 
+@item cluster_size_limit @var{size}
+Store at most the provided amount of bytes in a cluster.
+
+If not specified, the limit is set automatically to a sensible
+hardcoded fixed value.
+
+@item cluster_time_limit @var{duration}
+Store at most the provided number of milliseconds in a cluster.
+
+If not specified, the limit is set automatically to a sensible
+hardcoded fixed value.
+
+@item dash @var{bool}
+Create a WebM file conforming to WebM DASH specification. By default
+it is set to @code{false}.
+
+@item dash_track_number @var{index}
+Track number for the DASH stream. By default it is set to @code{1}.
+
+@item live @var{bool}
+Write files assuming it is a live stream. By default it is set to
+@code{false}.
+
+@item allow_raw_vfw @var{bool}
+Allow raw VFW mode. By default it is set to @code{false}.
+
+@item flipped_raw_rgb @var{bool}
+If set to @code{true}, store positive height for raw RGB bitmaps, which 
indicates
+bitmap is stored bottom-up. Note that this option does not flip the bitmap
+which has to be done manually beforehand, e.g. by using the @samp{vflip} 
filter.
+Default is @code{false} and indicates bitmap is stored top down.
+
+@item write_crc32 @var{bool}
+Write a CRC32 element inside every Level 1 element. By default it is
+set to @code{true}. This option is ignored for WebM.
+
 @item default_mode @var{mode}
-This option controls how the FlagDefault of the output tracks will be set.
+Control how the FlagDefault of the output tracks will be set.
 It influences which tracks players should play by default. The default mode
 is @samp{passthrough}.
 @table @samp
@@ -2865,12 +2901,6 @@ disposition default exists, no subtitle track will be 
marked as default.
 In this mode the FlagDefault is set if and only if the AV_DISPOSITION_DEFAULT
 flag is set in the disposition of the corresponding stream.
 @end table
-
-@item flipped_raw_rgb @var{bool}
-If set to true, store positive height for raw RGB bitmaps, which indicates
-bitmap is stored bottom-up. Note that this option does not flip the bitmap
-which has to be done manually beforehand, e.g. by using the vflip filter.
-Default is @var{false} and indicates bitmap is stored top down.
 @end table
 
 @anchor{md5}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/utils/eval: review and extend, clarify ld/st index meaning

2024-04-15 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Fri Jan  5 
00:56:40 2024 +0100| [b2bc4ac69e5a8ff74a105de621e75fb722c31eae] | committer: 
Stefano Sabatini

doc/utils/eval: review and extend, clarify ld/st index meaning

Prefer idx in place of id for functions accessing the internal
variables, and add a short introduction to mention them.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b2bc4ac69e5a8ff74a105de621e75fb722c31eae
---

 doc/utils.texi | 60 --
 1 file changed, 33 insertions(+), 27 deletions(-)

diff --git a/doc/utils.texi b/doc/utils.texi
index 2f18a61bfd..9968725d2a 100644
--- a/doc/utils.texi
+++ b/doc/utils.texi
@@ -801,6 +801,11 @@ The following binary operators are available: @code{+}, 
@code{-},
 
 The following unary operators are available: @code{+}, @code{-}.
 
+Some internal variables can be used to store and load intermediary
+results. They can be accessed using the @code{ld} and @code{st}
+functions with an index argument varying from 0 to 9 to specify which
+internal variable to access.
+
 The following functions are available:
 @table @option
 @item abs(x)
@@ -898,9 +903,9 @@ Return 1.0 if @var{x} is +/-INFINITY, 0.0 otherwise.
 @item isnan(x)
 Return 1.0 if @var{x} is NAN, 0.0 otherwise.
 
-@item ld(var)
-Load the value of the internal variable with number
-@var{var}, which was previously stored with st(@var{var}, @var{expr}).
+@item ld(idx)
+Load the value of the internal variable with index @var{idx}, which was
+previously stored with st(@var{idx}, @var{expr}).
 The function returns the loaded value.
 
 @item lerp(x, y, z)
@@ -933,16 +938,14 @@ Compute the power of @var{x} elevated @var{y}, it is 
equivalent to
 
 @item print(t)
 @item print(t, l)
-Print the value of expression @var{t} with loglevel @var{l}. If
-@var{l} is not specified then a default log level is used.
-Returns the value of the expression printed.
-
-Prints t with loglevel l
+Print the value of expression @var{t} with loglevel @var{l}. If @var{l} is not
+specified then a default log level is used.
+Return the value of the expression printed.
 
 @item random(idx)
 Return a pseudo random value between 0.0 and 1.0. @var{idx} is the
-index of the internal variable which will be used to save the
-seed/state.
+index of the internal variable used to save the seed/state, which can be
+previously stored with @code{st(idx)}.
 
 To initialize the seed, you need to store the seed value as a 64-bit
 unsigned integer in the internal variable with index @var{idx}.
@@ -955,8 +958,8 @@ st(0,42); print(random(0)); print(random(0)); 
print(random(0))
 
 @item randomi(idx, min, max)
 Return a pseudo random value in the interval between @var{min} and
-@var{max}. @var{idx} is the index of the internal variable which will
-be used to save the seed/state.
+@var{max}. @var{idx} is the index of the internal variable which will be used 
to
+save the seed/state, which can be previously stored with @code{st(idx)}.
 
 To initialize the seed, you need to store the seed value as a 64-bit
 unsigned integer in the internal variable with index @var{idx}.
@@ -968,14 +971,14 @@ with argument @var{ld(0)} is 0 in the interval 
0..@var{max}.
 The expression in @var{expr} must denote a continuous function or the
 result is undefined.
 
-@var{ld(0)} is used to represent the function input value, which means
-that the given expression will be evaluated multiple times with
-various input values that the expression can access through
-@code{ld(0)}. When the expression evaluates to 0 then the
-corresponding input value will be returned.
+@var{ld(0)} is used to represent the function input value, which means that the
+given expression will be evaluated multiple times with various input values 
that
+the expression can access through @code{ld(0)}. When the expression evaluates 
to
+0 then the corresponding input value will be returned.
 
 @item round(expr)
-Round the value of expression @var{expr} to the nearest integer. For example, 
"round(1.5)" is "2.0".
+Round the value of expression @var{expr} to the nearest integer. For example,
+"round(1.5)" is "2.0".
 
 @item sgn(x)
 Compute sign of @var{x}.
@@ -993,12 +996,15 @@ Compute the square root of @var{expr}. This is equivalent 
to
 @item squish(x)
 Compute expression @code{1/(1 + exp(4*x))}.
 
-@item st(var, expr)
+@item st(idx, expr)
 Store the value of the expression @var{expr} in an internal
-variable. @var{var} specifies the number of the variable where to
-store the value, and it is a value ranging from 0 to 9. The function
-returns the value stored in the internal variable.
-Note, Variables are currently not shared between expressions.
+variable. @var{idx} specifies the index of the variable where to store
+the value, and it is a value ranging from 0 to 9. The function returns
+the value stored in the internal variable.
+
+The stored value can be retrieved with @code{ld(var)}.
+
+Note:

[FFmpeg-cvslog] doc/utils/eval: clarify meaning of random* seed value

2024-04-15 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Mon Jan  1 
20:38:03 2024 +0100| [8ceb37d5ad730b93e4a277b74a5279c5d1f7864a] | committer: 
Stefano Sabatini

doc/utils/eval: clarify meaning of random* seed value

Possible address trac issue:
http://trac.ffmpeg.org/ticket/10763

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8ceb37d5ad730b93e4a277b74a5279c5d1f7864a
---

 doc/utils.texi | 12 
 1 file changed, 12 insertions(+)

diff --git a/doc/utils.texi b/doc/utils.texi
index 76e704fc3c..2f18a61bfd 100644
--- a/doc/utils.texi
+++ b/doc/utils.texi
@@ -944,11 +944,23 @@ Return a pseudo random value between 0.0 and 1.0. 
@var{idx} is the
 index of the internal variable which will be used to save the
 seed/state.
 
+To initialize the seed, you need to store the seed value as a 64-bit
+unsigned integer in the internal variable with index @var{idx}.
+
+For example, to store the seed with value @code{42} in the internal
+variable with index @code{0} and print a few random values:
+@example
+st(0,42); print(random(0)); print(random(0)); print(random(0))
+@end example
+
 @item randomi(idx, min, max)
 Return a pseudo random value in the interval between @var{min} and
 @var{max}. @var{idx} is the index of the internal variable which will
 be used to save the seed/state.
 
+To initialize the seed, you need to store the seed value as a 64-bit
+unsigned integer in the internal variable with index @var{idx}.
+
 @item root(expr, max)
 Find an input value for which the function represented by @var{expr}
 with argument @var{ld(0)} is 0 in the interval 0..@var{max}.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add lrc

2024-04-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Apr  6 
12:55:58 2024 +0200| [8510108c1d8273cec2c5053e3b860f3aa89da8e9] | committer: 
Stefano Sabatini

doc/muxers: add lrc

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8510108c1d8273cec2c5053e3b860f3aa89da8e9
---

 doc/muxers.texi | 25 +
 1 file changed, 25 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 6eea856a40..3928ebc549 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2725,6 +2725,31 @@ games such as "Real War", and "Real War: Rogue States".
 
 This muxer accepts a single @samp{adpcm_ima_ssi} audio stream.
 
+@section lrc
+LRC lyrics file format muxer.
+
+LRC (short for LyRiCs) is a computer file format that synchronizes
+song lyrics with an audio file, such as MP3, Vorbis, or MIDI.
+
+This muxer accepts a single @samp{subrip} or @samp{text} subtitles stream.
+
+@subsection Metadata
+The following metadata tags are converted to the format corresponding
+metadata:
+
+@table @option
+@item title
+@item album
+@item artist
+@item author
+@item creator
+@item encoder
+@item encoder_version
+@end table
+
+If @samp{encoder_version} is not explicitly set, it is automatically
+set to the libavformat version.
+
 @section matroska
 
 Matroska container muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/matroska: apply misc consistency fixups

2024-04-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Apr  6 
13:08:21 2024 +0200| [7e59c4f90885a9b0a3f1d385b4eae3530529] | committer: 
Stefano Sabatini

doc/muxers/matroska: apply misc consistency fixups

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7e59c4f90885a9b0a3f1d385b4eae3530529
---

 doc/muxers.texi | 14 --
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 3928ebc549..4b30970b78 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2751,13 +2751,11 @@ If @samp{encoder_version} is not explicitly set, it is 
automatically
 set to the libavformat version.
 
 @section matroska
-
 Matroska container muxer.
 
 This muxer implements the matroska and webm container specs.
 
 @subsection Metadata
-
 The recognized metadata settings in this muxer are:
 
 @table @option
@@ -2817,11 +2815,8 @@ ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx 
-metadata stereo_mode=left_
 @end example
 
 @subsection Options
-
-This muxer supports the following options:
-
 @table @option
-@item reserve_index_space
+@item reserve_index_space @var{index}
 By default, this muxer writes the index for seeking (called cues in Matroska
 terms) at the end of the file, because it cannot know in advance how much space
 to leave for the index at the beginning of the file. However for some use cases
@@ -2837,7 +2832,7 @@ A safe size for most use cases should be about 50kB per 
hour of video.
 Note that cues are only written if the output is seekable and this option will
 have no effect if it is not.
 
-@item cues_to_front
+@item cues_to_front @var{bool}
 If set, the muxer will write the index at the beginning of the file
 by shifting the main data if necessary. This can be combined with
 reserve_index_space in which case the data is only shifted if
@@ -2845,7 +2840,7 @@ the initially reserved space turns out to be insufficient.
 
 This option is ignored if the output is unseekable.
 
-@item default_mode
+@item default_mode @var{mode}
 This option controls how the FlagDefault of the output tracks will be set.
 It influences which tracks players should play by default. The default mode
 is @samp{passthrough}.
@@ -2865,12 +2860,11 @@ In this mode the FlagDefault is set if and only if the 
AV_DISPOSITION_DEFAULT
 flag is set in the disposition of the corresponding stream.
 @end table
 
-@item flipped_raw_rgb
+@item flipped_raw_rgb @var{bool}
 If set to true, store positive height for raw RGB bitmaps, which indicates
 bitmap is stored bottom-up. Note that this option does not flip the bitmap
 which has to be done manually beforehand, e.g. by using the vflip filter.
 Default is @var{false} and indicates bitmap is stored top down.
-
 @end table
 
 @anchor{md5}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add jacosub

2024-04-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Apr  6 
12:29:57 2024 +0200| [f7fd22856046c94c06b80878e70d48881fa7fece] | committer: 
Stefano Sabatini

doc/muxers: add jacosub

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f7fd22856046c94c06b80878e70d48881fa7fece
---

 doc/muxers.texi | 8 
 1 file changed, 8 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 29b6fa1427..6b85befb43 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2709,6 +2709,14 @@ Corporation), to store internally developed codecs.
 This muxer accepts a single @samp{vp8}, @samp{vp9}, or @samp{av1}
 video stream.
 
+@section jacosub
+JACOsub subtitle format muxer.
+
+This muxer accepts a single @samp{jacosub} subtitles stream.
+
+For more information about the format, see
+@url{http://unicorn.us.com/jacosub/jscripts.html}.
+
 @section matroska
 
 Matroska container muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add kvag

2024-04-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Apr  6 
12:38:04 2024 +0200| [57d64bb715efc9fde58a733e6cafaada6ffc6a75] | committer: 
Stefano Sabatini

doc/muxers: add kvag

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=57d64bb715efc9fde58a733e6cafaada6ffc6a75
---

 doc/muxers.texi | 8 
 1 file changed, 8 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 6b85befb43..6eea856a40 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2717,6 +2717,14 @@ This muxer accepts a single @samp{jacosub} subtitles 
stream.
 For more information about the format, see
 @url{http://unicorn.us.com/jacosub/jscripts.html}.
 
+@section kvag
+Simon & Schuster Interactive VAG muxer.
+
+This custom VAG container is used by some Simon & Schuster Interactive
+games such as "Real War", and "Real War: Rogue States".
+
+This muxer accepts a single @samp{adpcm_ima_ssi} audio stream.
+
 @section matroska
 
 Matroska container muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add ivf

2024-04-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Apr  6 
12:17:46 2024 +0200| [4fe3c8dcfd550e04021d465d0ecbc1cacd3d53e9] | committer: 
Stefano Sabatini

doc/muxers: add ivf

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4fe3c8dcfd550e04021d465d0ecbc1cacd3d53e9
---

 doc/muxers.texi | 9 +
 1 file changed, 9 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index d8a1f83309..29b6fa1427 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2700,6 +2700,15 @@ computer-generated compositions.
 
 This muxer accepts a single audio stream containing PCM data.
 
+@section ivf
+On2 IVF muxer.
+
+IVF was developed by On2 Technologies (formerly known as Duck
+Corporation), to store internally developed codecs.
+
+This muxer accepts a single @samp{vp8}, @samp{vp9}, or @samp{av1}
+video stream.
+
 @section matroska
 
 Matroska container muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavf/lrc: fix comments in headers

2024-04-06 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Apr  6 
12:48:56 2024 +0200| [1cb1f29a04234d3d5d10e05d3ac52d77c402d254] | committer: 
Stefano Sabatini

lavf/lrc: fix comments in headers

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1cb1f29a04234d3d5d10e05d3ac52d77c402d254
---

 libavformat/lrc.c| 2 +-
 libavformat/lrcdec.c | 2 +-
 libavformat/lrcenc.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavformat/lrc.c b/libavformat/lrc.c
index 139c6506e4..6c78a91d61 100644
--- a/libavformat/lrc.c
+++ b/libavformat/lrc.c
@@ -1,5 +1,5 @@
 /*
- * LRC lyrics file format decoder
+ * LRC lyrics file format common structs
  * Copyright (c) 2014 StarBrilliant 
  *
  * This file is part of FFmpeg.
diff --git a/libavformat/lrcdec.c b/libavformat/lrcdec.c
index 5435a65b15..68c44bce97 100644
--- a/libavformat/lrcdec.c
+++ b/libavformat/lrcdec.c
@@ -1,5 +1,5 @@
 /*
- * LRC lyrics file format decoder
+ * LRC lyrics file format demuxer
  * Copyright (c) 2014 StarBrilliant 
  *
  * This file is part of FFmpeg.
diff --git a/libavformat/lrcenc.c b/libavformat/lrcenc.c
index 15c31d33b3..7570529c20 100644
--- a/libavformat/lrcenc.c
+++ b/libavformat/lrcenc.c
@@ -1,5 +1,5 @@
 /*
- * LRC lyrics file format decoder
+ * LRC lyrics file format muxer
  * Copyright (c) 2014 StarBrilliant 
  *
  * This file is part of FFmpeg.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] Changelog: add next entry

2024-04-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Apr  2 
20:04:00 2024 +0200| [dfd9c21754bd2928783c971423cac08e268b8e28] | committer: 
Stefano Sabatini

Changelog: add next entry

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dfd9c21754bd2928783c971423cac08e268b8e28
---

 Changelog | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Changelog b/Changelog
index e83a00e35c..a84d8db09b 100644
--- a/Changelog
+++ b/Changelog
@@ -1,6 +1,9 @@
 Entries are sorted chronologically from oldest to youngest within each release,
 releases are sorted from youngest to oldest.
 
+version :
+
+
 version 7.0:
 - DXV DXT1 encoder
 - LEAD MCMP decoder

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add ircam

2024-04-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Fri Mar 29 
14:20:24 2024 +0100| [13cdef9d450e5a164740a57a92f723b1bd4b41c6] | committer: 
Stefano Sabatini

doc/muxers: add ircam

Most of the content copy&pasted from:
http://fileformats.archiveteam.org/wiki/Berkeley/IRCAM/Carl_Sound_Format

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=13cdef9d450e5a164740a57a92f723b1bd4b41c6
---

 doc/muxers.texi | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 5cce26a43f..39597e000b 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2682,6 +2682,24 @@ ffmpeg -f x11grab -framerate 1 -i :0.0 -q:v 6 -update 1 
-protocol_opts method=PU
 @end example
 @end itemize
 
+@section ircam
+Berkeley / IRCAM / CARL Sound Filesystem (BICSF) format muxer.
+
+The Berkeley/IRCAM/CARL Sound Format, developed in the 1980s, is a result of 
the
+merging of several different earlier sound file formats and systems including
+the csound system developed by Dr Gareth Loy at the Computer Audio Research Lab
+(CARL) at UC San Diego, the IRCAM sound file system developed by Rob Gross and
+Dan Timis at the Institut de Recherche et Coordination Acoustique / Musique in
+Paris and the Berkeley Fast Filesystem.
+
+It was developed initially as part of the Berkeley/IRCAM/CARL Sound Filesystem,
+a suite of programs designed to implement a filesystem for audio applications
+running under Berkeley UNIX. It was particularly popular in academic music
+research centres, and was used a number of times in the creation of early
+computer-generated compositions.
+
+This muxer accepts a single audio stream containing PCM data.
+
 @section matroska
 
 Matroska container muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add stub for iamf

2024-04-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Fri Mar 29 
12:47:25 2024 +0100| [3e4f0b07de0a9bb48a1a179efbbe0a4d231e8262] | committer: 
Stefano Sabatini

doc/muxers: add stub for iamf

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3e4f0b07de0a9bb48a1a179efbbe0a4d231e8262
---

 doc/muxers.texi | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index f300f8c45f..450f72a73c 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2515,6 +2515,21 @@ Ignore IO errors during open, write and delete. Useful 
for long-duration runs wi
 Set custom HTTP headers, can override built in default headers. Applicable 
only for HTTP output.
 @end table
 
+@section iamf
+Immersive Audio Model and Formats (IAMF) muxer.
+
+IAMF is used to provide immersive audio content for presentation on a wide 
range
+of devices in both streaming and offline applications. These applications
+include internet audio streaming, multicasting/broadcasting services, file
+download, gaming, communication, virtual and augmented reality, and others. In
+these applications, audio may be played back on a wide range of devices, e.g.,
+headphones, mobile phones, tablets, TVs, sound bars, home theater systems, and
+big screens.
+
+This format was promoted and desgined by Alliance for Open Media.
+
+For more information about this format, see @url{https://aomedia.org/iamf/}.
+
 @anchor{ico}
 @section ico
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/image2: add mention to image2pipe

2024-04-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Fri Mar 29 
14:03:39 2024 +0100| [026bef777196946783d24c14aedd056fcead379d] | committer: 
Stefano Sabatini

doc/muxers/image2: add mention to image2pipe

Clarify the difference with regards to the image2 muxer.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=026bef777196946783d24c14aedd056fcead379d
---

 doc/muxers.texi | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 05a0c302cf..5cce26a43f 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2569,10 +2569,10 @@ Internet Low Bitrate Codec (iLBC) raw muxer.
 It accepts a single @samp{ilbc} audio stream.
 
 @anchor{image2}
-@section image2
+@section image2, image2pipe
 Image file muxer.
 
-The image file muxer writes video frames to image files.
+The @samp{image2} muxer writes video frames to image files.
 
 The output filenames are specified by a pattern, which can be used to
 produce sequentially numbered series of files.
@@ -2603,6 +2603,10 @@ each of the YUV420P components. To read or write this 
image file format,
 specify the name of the '.Y' file. The muxer will automatically open the
 '.U' and '.V' files as required.
 
+The @samp{image2pipe} muxer accepts the same options as the @samp{image2} 
muxer,
+but ignores the pattern verification and expansion, as it is supposed to write
+to the command output rather than to an actual stored file.
+
 @subsection Options
 @table @option
 @item frame_pts @var{bool}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/hls: review, apply consistency fixes

2024-04-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Fri Mar 29 
12:30:57 2024 +0100| [06f17cc9cec1f6c2f939b50c8647d3b44e4f3c1e] | committer: 
Stefano Sabatini

doc/muxers/hls: review, apply consistency fixes

Apply misc typo fixes, consistency fixes, and reformat the layout to provide 
more overall
internal and global consistency.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=06f17cc9cec1f6c2f939b50c8647d3b44e4f3c1e
---

 doc/muxers.texi | 404 +++-
 1 file changed, 225 insertions(+), 179 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index a10a8e216f..f300f8c45f 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1900,9 +1900,6 @@ flexible implementation of a segmenter, and can be used 
to perform HLS
 segmentation.
 
 @subsection Options
-
-This muxer supports the following options:
-
 @table @option
 @item hls_init_time @var{duration}
 Set the initial target segment length. Default value is @var{0}.
@@ -1910,9 +1907,9 @@ Set the initial target segment length. Default value is 
@var{0}.
 @var{duration} must be a time duration specification,
 see @ref{time duration syntax,,the Time duration section in the 
ffmpeg-utils(1) manual,ffmpeg-utils}.
 
-Segment will be cut on the next key frame after this time has passed on the 
first m3u8 list.
-After the initial playlist is filled @command{ffmpeg} will cut segments
-at duration equal to @code{hls_time}
+Segment will be cut on the next key frame after this time has passed on the
+first m3u8 list. After the initial playlist is filled, @command{ffmpeg} will 
cut
+segments at duration equal to @option{hls_time}.
 
 @item hls_time @var{duration}
 Set the target segment length. Default value is 2.
@@ -1929,12 +1926,12 @@ will contain all the segments. Default value is 5.
 Set the number of unreferenced segments to keep on disk before @code{hls_flags 
delete_segments}
 deletes them. Increase this to allow continue clients to download segments 
which
 were recently referenced in the playlist. Default value is 1, meaning segments 
older than
-@code{hls_list_size+1} will be deleted.
+@option{hls_list_size+1} will be deleted.
 
-@item hls_start_number_source
+@item hls_start_number_source @var{source}
 Start the playlist sequence number (@code{#EXT-X-MEDIA-SEQUENCE}) according to 
the specified source.
-Unless @code{hls_flags single_file} is set, it also specifies source of 
starting sequence numbers of
-segment and subtitle filenames. In any case, if @code{hls_flags append_list}
+Unless @option{hls_flags single_file} is set, it also specifies source of 
starting sequence numbers of
+segment and subtitle filenames. In any case, if @option{hls_flags append_list}
 is set and read playlist sequence number is greater than the specified start 
sequence number,
 then that value will be used as start value.
 
@@ -1943,26 +1940,25 @@ It accepts the following values:
 @table @option
 
 @item generic (default)
-Set the starting sequence numbers according to @var{start_number} option value.
+Set the start numbers according to the @option{start_number} option value.
 
 @item epoch
-The start number will be the seconds since epoch (1970-01-01 00:00:00)
+Set the start number as the seconds since epoch (1970-01-01 00:00:00).
 
 @item epoch_us
-The start number will be the microseconds since epoch (1970-01-01 00:00:00)
+Set the start number as the microseconds since epoch (1970-01-01 00:00:00).
 
 @item datetime
-The start number will be based on the current date/time as mmddHHMMSS. 
e.g. 20161231235759.
-
+Set the start number based on the current date/time as mmddHHMMSS. e.g. 
20161231235759.
 @end table
 
 @item start_number @var{number}
 Start the playlist sequence number (@code{#EXT-X-MEDIA-SEQUENCE}) from the 
specified @var{number}
-when @var{hls_start_number_source} value is @var{generic}. (This is the 
default case.)
-Unless @code{hls_flags single_file} is set, it also specifies starting 
sequence numbers of segment and subtitle filenames.
+when @option{hls_start_number_source} value is @var{generic}. (This is the 
default case.)
+Unless @option{hls_flags single_file} is set, it also specifies starting 
sequence numbers of segment and subtitle filenames.
 Default value is 0.
 
-@item hls_allow_cache @var{allowcache}
+@item hls_allow_cache @var{bool}
 Explicitly set whether the client MAY (1) or MUST NOT (0) cache media segments.
 
 @item hls_base_url @var{baseurl}
@@ -1975,29 +1971,37 @@ which can be cyclic, for example if the @option{wrap} 
option is
 specified.
 
 @item hls_segment_filename @var{filename}
-Set the segment filename. Unless @code{hls_flags single_file} is set,
-@var{filename} is used as a string format with the segment number:
+Set the segment filename. Unless the @option{hls_flags} option is set with
+@samp{single_file}, @var{filename} is used as a string format with the
+segment number appended.
+
+For example:
 @example
 ffmpeg -i in.nut -hls_segment_filename 'fil

[FFmpeg-cvslog] doc/muxers/image2: apply misc consistency fixes

2024-04-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Fri Mar 29 
13:38:50 2024 +0100| [827889d8f3999d426c5369e0976c3c7807d30071] | committer: 
Stefano Sabatini

doc/muxers/image2: apply misc consistency fixes

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=827889d8f3999d426c5369e0976c3c7807d30071
---

 doc/muxers.texi | 36 ++--
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index b8404c274c..05a0c302cf 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2604,39 +2604,37 @@ specify the name of the '.Y' file. The muxer will 
automatically open the
 '.U' and '.V' files as required.
 
 @subsection Options
-
 @table @option
-@item frame_pts
-If set to 1, expand the filename with pts from pkt->pts.
+@item frame_pts @var{bool}
+If set to 1, expand the filename with the packet PTS (presentation time stamp).
 Default value is 0.
 
-@item start_number
+@item start_number @var{count}
 Start the sequence from the specified number. Default value is 1.
 
-@item update
+@item update @var{bool}
 If set to 1, the filename will always be interpreted as just a
 filename, not a pattern, and the corresponding file will be continuously
 overwritten with new images. Default value is 0.
 
-@item strftime
+@item strftime @var{bool}
 If set to 1, expand the filename with date and time information from
 @code{strftime()}. Default value is 0.
 
-@item atomic_writing
+@item atomic_writing @var{bool}
 Write output to a temporary file, which is renamed to target filename once
 writing is completed. Default is disabled.
 
 @item protocol_opts @var{options_list}
 Set protocol options as a :-separated list of key=value parameters. Values
 containing the @code{:} special character must be escaped.
-
 @end table
 
 @subsection Examples
-
-The following example shows how to use @command{ffmpeg} for creating a
-sequence of files @file{img-001.jpeg}, @file{img-002.jpeg}, ...,
-taking one image every second from the input video:
+@itemize
+@item
+Use @command{ffmpeg} for creating a sequence of files @file{img-001.jpeg},
+@file{img-002.jpeg}, ..., taking one image every second from the input video:
 @example
 ffmpeg -i in.avi -vsync cfr -r 1 -f image2 'img-%03d.jpeg'
 @end example
@@ -2656,27 +2654,29 @@ Note also that the pattern must not necessarily contain 
"%d" or
 ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
 @end example
 
+@item
 The @option{strftime} option allows you to expand the filename with
 date and time information. Check the documentation of
 the @code{strftime()} function for the syntax.
 
-For example to generate image files from the @code{strftime()}
-"%Y-%m-%d_%H-%M-%S" pattern, the following @command{ffmpeg} command
-can be used:
+To generate image files from the @code{strftime()} "%Y-%m-%d_%H-%M-%S" pattern,
+the following @command{ffmpeg} command can be used:
 @example
 ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 
"%Y-%m-%d_%H-%M-%S.jpg"
 @end example
 
-You can set the file name with current frame's PTS:
+@item
+Set the file name with current frame's PTS:
 @example
 ffmpeg -f v4l2 -r 1 -i /dev/video0 -copyts -f image2 -frame_pts true %d.jpg
 @end example
 
-A more complex example is to publish contents of your desktop directly to a
-WebDAV server every second:
+@item
+Publish contents of your desktop directly to a WebDAV server every second:
 @example
 ffmpeg -f x11grab -framerate 1 -i :0.0 -q:v 6 -update 1 -protocol_opts 
method=PUT http://example.com/desktop.jpg
 @end example
+@end itemize
 
 @section matroska
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add ilbc

2024-04-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Fri Mar 29 
13:30:43 2024 +0100| [b5488392f0a3562092efda430dc97531f542d0cb] | committer: 
Stefano Sabatini

doc/muxers: add ilbc

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b5488392f0a3562092efda430dc97531f542d0cb
---

 doc/muxers.texi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 450f72a73c..b8404c274c 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -2563,6 +2563,11 @@ If a BMP image is used, it must use the BITMAPINFOHEADER 
DIB header
 If a PNG image is used, it must use the rgba pixel format
 @end itemize
 
+@section ilbc
+Internet Low Bitrate Codec (iLBC) raw muxer.
+
+It accepts a single @samp{ilbc} audio stream.
+
 @anchor{image2}
 @section image2
 Image file muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add gxf

2024-03-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Mar 20 
16:14:52 2024 +0100| [25248c9d755f17133432dd4a6d05072c64ea5fe0] | committer: 
Stefano Sabatini

doc/muxers: add gxf

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=25248c9d755f17133432dd4a6d05072c64ea5fe0
---

 doc/muxers.texi | 12 
 1 file changed, 12 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index d9dd72e613..a69b53ea37 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1776,6 +1776,18 @@ force the @ref{image2} muxer:
 ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
 @end example
 
+@section gxf
+General eXchange Format (GXF) muxer.
+
+GXF was developed by Grass Valley Group, then standardized by SMPTE as SMPTE
+360M and was extended in SMPTE RDD 14-2007 to include high-definition video
+resolutions.
+
+It accepts at most one video stream with codec @samp{mjpeg}, or
+@samp{mpeg1video}, or @samp{mpeg2video}, or @samp{dvvideo} with resolution
+@samp{512x480} or @samp{608x576}, and several audio streams with rate 48000Hz
+and codec @samp{pcm16_le}.
+
 @anchor{hash}
 @section hash
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavf/gxfenc: return proper error codes in case of failure

2024-03-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Mar 20 
16:03:42 2024 +0100| [5c60be3ab64fa3bcf8d2cbf3443b3e4b3d85cf13] | committer: 
Stefano Sabatini

lavf/gxfenc: return proper error codes in case of failure

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5c60be3ab64fa3bcf8d2cbf3443b3e4b3d85cf13
---

 libavformat/gxfenc.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/libavformat/gxfenc.c b/libavformat/gxfenc.c
index 9ea24c2f27..0aea7bd7c2 100644
--- a/libavformat/gxfenc.c
+++ b/libavformat/gxfenc.c
@@ -692,7 +692,7 @@ static int gxf_write_header(AVFormatContext *s)
 
 if (!(pb->seekable & AVIO_SEEKABLE_NORMAL)) {
 av_log(s, AV_LOG_ERROR, "gxf muxer does not support streamed output, 
patch welcome\n");
-return -1;
+return AVERROR_PATCHWELCOME;
 }
 
 gxf->flags |= 0x0008; /* material is simple clip */
@@ -707,15 +707,15 @@ static int gxf_write_header(AVFormatContext *s)
 if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
 if (st->codecpar->codec_id != AV_CODEC_ID_PCM_S16LE) {
 av_log(s, AV_LOG_ERROR, "only 16 BIT PCM LE allowed for 
now\n");
-return -1;
+return AVERROR(EINVAL);
 }
 if (st->codecpar->sample_rate != 48000) {
 av_log(s, AV_LOG_ERROR, "only 48000hz sampling rate is 
allowed\n");
-return -1;
+return AVERROR(EINVAL);
 }
 if (st->codecpar->ch_layout.nb_channels != 1) {
 av_log(s, AV_LOG_ERROR, "only mono tracks are allowed\n");
-return -1;
+return AVERROR(EINVAL);
 }
 ret = ff_stream_add_bitstream_filter(st, "pcm_rechunk", 
"n="AV_STRINGIFY(GXF_SAMPLES_PER_FRAME));
 if (ret < 0)
@@ -733,7 +733,7 @@ static int gxf_write_header(AVFormatContext *s)
 } else if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
 if (i != 0) {
 av_log(s, AV_LOG_ERROR, "video stream must be the first 
track\n");
-return -1;
+return AVERROR(EINVAL);
 }
 /* FIXME check from time_base ? */
 if (st->codecpar->height == 480 || st->codecpar->height == 512) { 
/* NTSC or NTSC+VBI */
@@ -750,7 +750,7 @@ static int gxf_write_header(AVFormatContext *s)
 } else {
 av_log(s, AV_LOG_ERROR, "unsupported video resolution, "
"gxf muxer only accepts PAL or NTSC resolutions 
currently\n");
-return -1;
+return AVERROR(EINVAL);
 }
 if (!tcr)
 tcr = av_dict_get(st->metadata, "timecode", NULL, 0);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add hds

2024-03-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Mar 20 
17:27:20 2024 +0100| [7852bf02b031e62e81c415848759761abdc6724a] | committer: 
Stefano Sabatini

doc/muxers: add hds

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7852bf02b031e62e81c415848759761abdc6724a
---

 doc/muxers.texi | 39 +++
 1 file changed, 39 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index a69b53ea37..a10a8e216f 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1833,6 +1833,45 @@ ffmpeg -i INPUT -f hash -hash md5 -
 
 See also the @ref{framehash} muxer.
 
+@anchor{hds}
+@section hds
+HTTP Dynamic Streaming (HDS) muxer.
+
+HTTP dynamic streaming, or HDS, is an adaptive bitrate streaming method
+developed by Adobe. HDS delivers MP4 video content over HTTP connections. HDS
+can be used for on-demand streaming or live streaming.
+
+This muxer creates an .f4m (Adobe Flash Media Manifest File) manifest, an .abst
+(Adobe Bootstrap File) for each stream, and segment files in a directory
+specified as the output.
+
+These needs to be accessed by an HDS player throuhg HTTPS for it to be able to
+perform playback on the generated stream.
+
+@subsection Options
+@table @option
+@item extra_window_size @var{int}
+number of fragments kept outside of the manifest before removing from disk
+
+@item min_frag_duration @var{microseconds}
+minimum fragment duration (in microseconds), default value is 1 second
+(@code{1000})
+
+@item remove_at_exit @var{bool}
+remove all fragments when finished when set to @code{true}
+
+@item window_size @var{int}
+number of fragments kept in the manifest, if set to a value different from
+@code{0}. By default all segments are kept in the output directory.
+@end table
+
+@subsection Example
+Use @command{ffmpeg} to generate HDS files to the @file{output.hds} directory 
in
+real-time rate:
+@example
+ffmpeg -re -i INPUT -f hds -b:v 200k output.hds
+@end example
+
 @anchor{hls}
 @section hls
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavf/gxfenc: consistently use snake_case in function names

2024-03-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Mar 20 
15:58:44 2024 +0100| [3733aa7b17dda9ff83deff0ca3002809a84aff96] | committer: 
Stefano Sabatini

lavf/gxfenc: consistently use snake_case in function names

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3733aa7b17dda9ff83deff0ca3002809a84aff96
---

 libavformat/gxfenc.c | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/libavformat/gxfenc.c b/libavformat/gxfenc.c
index 7495924722..9ea24c2f27 100644
--- a/libavformat/gxfenc.c
+++ b/libavformat/gxfenc.c
@@ -137,7 +137,7 @@ static void gxf_write_padding(AVIOContext *pb, int64_t 
to_pad)
 ffio_fill(pb, 0, to_pad);
 }
 
-static int64_t updatePacketSize(AVIOContext *pb, int64_t pos)
+static int64_t update_packet_size(AVIOContext *pb, int64_t pos)
 {
 int64_t curpos;
 int size;
@@ -154,7 +154,7 @@ static int64_t updatePacketSize(AVIOContext *pb, int64_t 
pos)
 return curpos - pos;
 }
 
-static int64_t updateSize(AVIOContext *pb, int64_t pos)
+static int64_t update_size(AVIOContext *pb, int64_t pos)
 {
 int64_t curpos;
 
@@ -300,7 +300,7 @@ static int gxf_write_track_description(AVFormatContext *s, 
GXFStreamContext *sc,
 avio_w8(pb, 4);
 avio_wb32(pb, sc->fields);
 
-return updateSize(pb, pos);
+return update_size(pb, pos);
 }
 
 static int gxf_write_material_data_section(AVFormatContext *s)
@@ -351,7 +351,7 @@ static int gxf_write_material_data_section(AVFormatContext 
*s)
 avio_w8(pb, 4);
 avio_wb32(pb, avio_size(pb) / 1024);
 
-return updateSize(pb, pos);
+return update_size(pb, pos);
 }
 
 static int gxf_write_track_description_section(AVFormatContext *s)
@@ -368,7 +368,7 @@ static int 
gxf_write_track_description_section(AVFormatContext *s)
 
 gxf_write_track_description(s, &gxf->timecode_track, s->nb_streams);
 
-return updateSize(pb, pos);
+return update_size(pb, pos);
 }
 
 static int gxf_write_map_packet(AVFormatContext *s, int rewrite)
@@ -400,7 +400,7 @@ static int gxf_write_map_packet(AVFormatContext *s, int 
rewrite)
 gxf_write_material_data_section(s);
 gxf_write_track_description_section(s);
 
-return updatePacketSize(pb, pos);
+return update_packet_size(pb, pos);
 }
 
 static int gxf_write_flt_packet(AVFormatContext *s)
@@ -424,7 +424,7 @@ static int gxf_write_flt_packet(AVFormatContext *s)
 
 ffio_fill(pb, 0, (1000 - i) * 4);
 
-return updatePacketSize(pb, pos);
+return update_packet_size(pb, pos);
 }
 
 static int gxf_write_umf_material_description(AVFormatContext *s)
@@ -643,7 +643,7 @@ static int gxf_write_umf_packet(AVFormatContext *s)
 gxf->umf_track_size = gxf_write_umf_track_description(s);
 gxf->umf_media_size = gxf_write_umf_media_description(s);
 gxf->umf_length = avio_tell(pb) - gxf->umf_start_offset;
-return updatePacketSize(pb, pos);
+return update_packet_size(pb, pos);
 }
 
 static void gxf_init_timecode_track(GXFStreamContext *sc, GXFStreamContext 
*vsc)
@@ -823,7 +823,7 @@ static int gxf_write_eos_packet(AVIOContext *pb)
 int64_t pos = avio_tell(pb);
 
 gxf_write_packet_header(pb, PKT_EOS);
-return updatePacketSize(pb, pos);
+return update_packet_size(pb, pos);
 }
 
 static int gxf_write_trailer(AVFormatContext *s)
@@ -956,7 +956,7 @@ static int gxf_write_packet(AVFormatContext *s, AVPacket 
*pkt)
 gxf->nb_fields += 2; // count fields
 }
 
-updatePacketSize(pb, pos);
+update_packet_size(pb, pos);
 
 gxf->packet_count++;
 if (gxf->packet_count == 100) {

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/gif: apply consistency fixes

2024-03-19 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Mar 12 
22:23:59 2024 +0100| [0cd13ad674dc9f04f7c6cfdc2b2cf7e8c2b32140] | committer: 
Stefano Sabatini

doc/muxers/gif: apply consistency fixes

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0cd13ad674dc9f04f7c6cfdc2b2cf7e8c2b32140
---

 doc/muxers.texi | 15 +++
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index c46933b47d..d9dd72e613 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1745,24 +1745,26 @@ See also the @ref{framehash} and @ref{md5} muxers.
 
 @anchor{gif}
 @section gif
-
 Animated GIF muxer.
 
-It accepts the following options:
+Note that the GIF format has a very large time base: the delay between two 
frames can
+therefore not be smaller than one centi second.
 
+@subsection Options
 @table @option
-@item loop
+@item loop @var{bool}
 Set the number of times to loop the output. Use @code{-1} for no loop, @code{0}
 for looping indefinitely (default).
 
-@item final_delay
+@item final_delay @var{delay}
 Force the delay (expressed in centiseconds) after the last frame. Each frame
 ends with a delay until the next frame. The default is @code{-1}, which is a
 special value to tell the muxer to re-use the previous delay. In case of a
 loop, you might want to customize this value to mark a pause for instance.
 @end table
 
-For example, to encode a gif looping 10 times, with a 5 seconds delay between
+@subsection Example
+Encode a gif looping 10 times, with a 5 seconds delay between
 the loops:
 @example
 ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
@@ -1774,9 +1776,6 @@ force the @ref{image2} muxer:
 ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
 @end example
 
-Note 2: the GIF format has a very large time base: the delay between two frames
-can therefore not be smaller than one centi second.
-
 @anchor{hash}
 @section hash
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/flv: apply misc consistency fixes

2024-03-19 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Mar 12 
22:15:18 2024 +0100| [f7d560e9191216feafd871b434dd000974637abb] | committer: 
Stefano Sabatini

doc/muxers/flv: apply misc consistency fixes

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f7d560e9191216feafd871b434dd000974637abb
---

 doc/muxers.texi | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index fe4be49b1c..c46933b47d 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1597,18 +1597,14 @@ ffmpeg -i INPUT -i pic1.png -i pic2.jpg -map 0:a -map 1 
-map 2 -disposition:v at
 @end example
 
 @section flv
-
 Adobe Flash Video Format muxer.
 
-This muxer accepts the following options:
-
+@subsection Options
 @table @option
-
 @item flvflags @var{flags}
 Possible values:
 
 @table @samp
-
 @item aac_seq_header_detect
 Place AAC sequence header based on audio stream data.
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add flac

2024-03-19 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Mar 12 
22:00:09 2024 +0100| [9afd9bb5c5ab9b6cb24d3b4b20ab576e691451a1] | committer: 
Stefano Sabatini

doc/muxers: add flac

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9afd9bb5c5ab9b6cb24d3b4b20ab576e691451a1
---

 doc/muxers.texi | 20 
 1 file changed, 20 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 454f2347cf..fe4be49b1c 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1576,6 +1576,26 @@ This image format is used to store astronomical data.
 For more information regarding the format, visit
 @url{https://fits.gsfc.nasa.gov}.
 
+@section flac
+Raw FLAC audio muxer.
+
+This muxer accepts exactly one FLAC audio stream. Additionally, it is possible 
to add
+images with disposition @samp{attached_pic}.
+
+@subsection Options
+@table @option
+@item write_header @var{bool}
+write the file header if set to @code{true}, default is @code{true}
+@end table
+
+@subsection Example
+Use @command{ffmpeg} to store the audio stream from an input file,
+together with several pictures used with @samp{attached_pic}
+disposition:
+@example
+ffmpeg -i INPUT -i pic1.png -i pic2.jpg -map 0:a -map 1 -map 2 -disposition:v 
attached_pic OUTPUT
+@end example
+
 @section flv
 
 Adobe Flash Video Format muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add film_cpk

2024-03-18 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Mar 12 
18:28:28 2024 +0100| [38c18dca6398ae8eb9f59f0b028a152306e8e1eb] | committer: 
Stefano Sabatini

doc/muxers: add film_cpk

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=38c18dca6398ae8eb9f59f0b028a152306e8e1eb
---

 doc/muxers.texi | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 9a6660e8a7..355dee1806 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1551,6 +1551,17 @@ ffmpeg -re -i ... -c:v libx264 -c:a aac -f fifo 
-fifo_format flv \
   -map 0:v -map 0:a rtmp://example.com/live/stream_name
 @end example
 
+@section film_cpk
+Sega film (.cpk) muxer.
+
+This format was used as internal format for several Sega games.
+
+For more information regarding the Sega film file format, visit
+@url{http://wiki.multimedia.cx/index.php?title=Sega_FILM}.
+
+It accepts at maximum one @samp{cinepak} or raw video stream, and at
+maximum one audio stream.
+
 @section flv
 
 Adobe Flash Video Format muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add fits

2024-03-18 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Mar 12 
21:44:55 2024 +0100| [39087e739c96ea75182978833324041b86ed87db] | committer: 
Stefano Sabatini

doc/muxers: add fits

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=39087e739c96ea75182978833324041b86ed87db
---

 doc/muxers.texi | 8 
 1 file changed, 8 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 407f379754..454f2347cf 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1568,6 +1568,14 @@ Adobe Filmstrip muxer.
 This format is used by several Adobe tools to store a generated filmstrip 
export. It
 accepts a single raw video stream.
 
+@section fits
+Flexible Image Transport System (FITS) muxer.
+
+This image format is used to store astronomical data.
+
+For more information regarding the format, visit
+@url{https://fits.gsfc.nasa.gov}.
+
 @section flv
 
 Adobe Flash Video Format muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add filmstrip

2024-03-18 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Mar 12 
21:33:58 2024 +0100| [9754e1f53239533ebd2fb1538c0e295335ce05e3] | committer: 
Stefano Sabatini

doc/muxers: add filmstrip

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9754e1f53239533ebd2fb1538c0e295335ce05e3
---

 doc/muxers.texi | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 355dee1806..407f379754 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1562,6 +1562,12 @@ For more information regarding the Sega film file 
format, visit
 It accepts at maximum one @samp{cinepak} or raw video stream, and at
 maximum one audio stream.
 
+@section filmstrip
+Adobe Filmstrip muxer.
+
+This format is used by several Adobe tools to store a generated filmstrip 
export. It
+accepts a single raw video stream.
+
 @section flv
 
 Adobe Flash Video Format muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add ffmetadata

2024-03-18 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan 20 
19:19:23 2024 +0100| [be37ce70fe1713f3272dee29b43d976807d4d8b3] | committer: 
Stefano Sabatini

doc/muxers: add ffmetadata

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=be37ce70fe1713f3272dee29b43d976807d4d8b3
---

 doc/metadata.texi |  1 +
 doc/muxers.texi   | 17 +
 2 files changed, 18 insertions(+)

diff --git a/doc/metadata.texi b/doc/metadata.texi
index be91059a98..e081da7735 100644
--- a/doc/metadata.texi
+++ b/doc/metadata.texi
@@ -1,3 +1,4 @@
+@anchor{metadata}
 @chapter Metadata
 @c man begin METADATA
 
diff --git a/doc/muxers.texi b/doc/muxers.texi
index 31249abd0b..9a6660e8a7 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1423,6 +1423,23 @@ Use @command{ffmpeg} to convert the input:
 ffmpeg -i INPUT -s:v 720x480 -pix_fmt yuv411p -r 29.97 -ac 2 -ar 48000 -y 
out.dv
 @end example
 
+@section ffmetadata
+FFmpeg metadata muxer.
+
+This muxer writes the streams metadata in the @samp{ffmetadata}
+format.
+
+See @ref{metadata,,the Metadata chapter,ffmpeg-formats} for
+information about the format.
+
+@subsection Example
+
+Use @command{ffmpeg} to extract metadata from an input file to a 
@file{metadata.ffmeta}
+file in @samp{ffmetadata} format:
+@example
+ffmpeg -i INPUT -f ffmetadata metadata.ffmeta
+@end example
+
 @anchor{fifo}
 @section fifo
 FIFO (First-In First-Out) muxer.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/fifo: review documentation

2024-03-12 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Jan 21 
11:26:13 2024 +0100| [75dd083904df72bf6ace42a80a690029b9a97781] | committer: 
Stefano Sabatini

doc/muxers/fifo: review documentation

Apply consistency fixes, sort options, clarify example.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=75dd083904df72bf6ace42a80a690029b9a97781
---

 doc/muxers.texi | 141 ++--
 1 file changed, 76 insertions(+), 65 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 2104cc4a95..7f05dfcb69 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1421,104 +1421,115 @@ ffmpeg -i INPUT -s:v 720x480 -pix_fmt yuv411p -r 
29.97 -ac 2 -ar 48000 -y out.dv
 
 @anchor{fifo}
 @section fifo
+FIFO (First-In First-Out) muxer.
 
-The fifo pseudo-muxer allows the separation of encoding and muxing by using
-first-in-first-out queue and running the actual muxer in a separate thread. 
This
-is especially useful in combination with the @ref{tee} muxer and can be used to
-send data to several destinations with different reliability/writing 
speed/latency.
+The @samp{fifo} pseudo-muxer allows the separation of encoding and
+muxing by using a first-in-first-out queue and running the actual muxer
+in a separate thread.
 
-API users should be aware that callback functions (interrupt_callback,
-io_open and io_close) used within its AVFormatContext must be thread-safe.
+This is especially useful in combination with
+the @ref{tee} muxer and can be used to send data to several
+destinations with different reliability/writing speed/latency.
 
-The behavior of the fifo muxer if the queue fills up or if the output fails is
-selectable,
+The target muxer is either selected from the output name or specified
+through the @option{fifo_format} option.
 
+The behavior of the @samp{fifo} muxer if the queue fills up or if the
+output fails (e.g. if a packet cannot be written to the output) is
+selectable:
 @itemize @bullet
-
 @item
-output can be transparently restarted with configurable delay between retries
-based on real time or time of the processed stream.
+Output can be transparently restarted with configurable delay between
+retries based on real time or time of the processed stream.
 
 @item
-encoding can be blocked during temporary failure, or continue transparently
-dropping packets in case fifo queue fills up.
-
+Encoding can be blocked during temporary failure, or continue transparently
+dropping packets in case the FIFO queue fills up.
 @end itemize
 
+API users should be aware that callback functions
+(@code{interrupt_callback}, @code{io_open} and @code{io_close}) used
+within its @code{AVFormatContext} must be thread-safe.
+
+@subsection Options
 @table @option
 
-@item fifo_format
+@item attempt_recovery @var{bool}
+If failure occurs, attempt to recover the output. This is especially
+useful when used with network output, since it makes it possible to
+restart streaming transparently. By default this option is set to
+@code{false}.
+
+@item drop_pkts_on_overflow @var{bool}
+If set to @code{true}, in case the fifo queue fills up, packets will
+be dropped rather than blocking the encoder. This makes it possible to
+continue streaming without delaying the input, at the cost of omitting
+part of the stream. By default this option is set to @code{false}, so in
+such cases the encoder will be blocked until the muxer processes some
+of the packets and none of them is lost.
+
+@item fifo_format @var{format_name}
 Specify the format name. Useful if it cannot be guessed from the
 output name suffix.
 
-@item queue_size
-Specify size of the queue (number of packets). Default value is 60.
+@item format_opts @var{options}
+Specify format options for the underlying muxer. Muxer options can be
+specified as a list of @var{key}=@var{value} pairs separated by ':'.
 
-@item format_opts
-Specify format options for the underlying muxer. Muxer options can be specified
-as a list of @var{key}=@var{value} pairs separated by ':'.
+@item max_recovery_attempts @var{count}
+Set maximum number of successive unsuccessful recovery attempts after
+which the output fails permanently. By default this option is set to
+@code{0} (unlimited).
 
-@item drop_pkts_on_overflow @var{bool}
-If set to 1 (true), in case the fifo queue fills up, packets will be dropped
-rather than blocking the encoder. This makes it possible to continue streaming 
without
-delaying the input, at the cost of omitting part of the stream. By default
-this option is set to 0 (false), so in such cases the encoder will be blocked
-until the muxer processes some of the packets and none of them is lost.
+@item queue_size @var{size}
+Specify size of the queue as a number of packets. Default value is
+@code{60}.
 
-@item attempt_recovery @var{bool}
-If failure occurs, attempt to recover the output. This is especially useful
-when used with network output, since it makes it possible to restart streaming 
tra

[FFmpeg-cvslog] lavf/fifo: sort options by name

2024-03-12 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Jan 28 
01:21:44 2024 +0100| [5828aaa2b5dad91474a1ca164d72e8792ffd5f66] | committer: 
Stefano Sabatini

lavf/fifo: sort options by name

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5828aaa2b5dad91474a1ca164d72e8792ffd5f66
---

 libavformat/fifo.c | 28 ++--
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/libavformat/fifo.c b/libavformat/fifo.c
index 074a46485c..a3d41ba0d3 100644
--- a/libavformat/fifo.c
+++ b/libavformat/fifo.c
@@ -663,36 +663,36 @@ static void fifo_deinit(AVFormatContext *avf)
 
 #define OFFSET(x) offsetof(FifoContext, x)
 static const AVOption options[] = {
-{"fifo_format", "Target muxer", OFFSET(format),
- AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM},
-
-{"queue_size", "Size of fifo queue", OFFSET(queue_size),
- AV_OPT_TYPE_INT, {.i64 = FIFO_DEFAULT_QUEUE_SIZE}, 1, INT_MAX, 
AV_OPT_FLAG_ENCODING_PARAM},
-
-{"format_opts", "Options to be passed to underlying muxer", 
OFFSET(format_options),
- AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM},
+{"attempt_recovery", "Attempt recovery in case of failure", 
OFFSET(attempt_recovery),
+AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
 
 {"drop_pkts_on_overflow", "Drop packets on fifo queue overflow not to 
block encoder", OFFSET(drop_pkts_on_overflow),
  AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
 
-{"restart_with_keyframe", "Wait for keyframe when restarting output", 
OFFSET(restart_with_keyframe),
- AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
+{"fifo_format", "Target muxer", OFFSET(format),
+ AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM},
 
-{"attempt_recovery", "Attempt recovery in case of failure", 
OFFSET(attempt_recovery),
-AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
+{"format_opts", "Options to be passed to underlying muxer", 
OFFSET(format_options),
+ AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM},
 
 {"max_recovery_attempts", "Maximal number of recovery attempts", 
OFFSET(max_recovery_attempts),
  AV_OPT_TYPE_INT, {.i64 = FIFO_DEFAULT_MAX_RECOVERY_ATTEMPTS}, 0, 
INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
 
-{"recovery_wait_time", "Waiting time between recovery attempts", 
OFFSET(recovery_wait_time),
- AV_OPT_TYPE_DURATION, {.i64 = FIFO_DEFAULT_RECOVERY_WAIT_TIME_USEC}, 
0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM},
+{"queue_size", "Size of fifo queue", OFFSET(queue_size),
+ AV_OPT_TYPE_INT, {.i64 = FIFO_DEFAULT_QUEUE_SIZE}, 1, INT_MAX, 
AV_OPT_FLAG_ENCODING_PARAM},
 
 {"recovery_wait_streamtime", "Use stream time instead of real time 
while waiting for recovery",
  OFFSET(recovery_wait_streamtime), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, 
AV_OPT_FLAG_ENCODING_PARAM},
 
+{"recovery_wait_time", "Waiting time between recovery attempts", 
OFFSET(recovery_wait_time),
+ AV_OPT_TYPE_DURATION, {.i64 = FIFO_DEFAULT_RECOVERY_WAIT_TIME_USEC}, 
0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM},
+
 {"recover_any_error", "Attempt recovery regardless of type of the 
error", OFFSET(recover_any_error),
  AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
 
+{"restart_with_keyframe", "Wait for keyframe when restarting output", 
OFFSET(restart_with_keyframe),
+ AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
+
 {"timeshift", "Delay fifo output", OFFSET(timeshift),
  AV_OPT_TYPE_DURATION, {.i64 = 0}, 0, INT64_MAX, 
AV_OPT_FLAG_ENCODING_PARAM},
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavf/fifo: fix typo

2024-03-11 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Jan 28 
01:21:14 2024 +0100| [53a952a7313f2c78d93a4f6805abe570fe35f96b] | committer: 
Stefano Sabatini

lavf/fifo: fix typo

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=53a952a7313f2c78d93a4f6805abe570fe35f96b
---

 libavformat/fifo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/fifo.c b/libavformat/fifo.c
index 94502129c6..074a46485c 100644
--- a/libavformat/fifo.c
+++ b/libavformat/fifo.c
@@ -90,7 +90,7 @@ typedef struct FifoThreadContext {
 
 /* Timestamp of last failure.
  * This is either pts in case stream time is used,
- * or microseconds as returned by av_getttime_relative() */
+ * or microseconds as returned by av_gettime_relative() */
 int64_t last_recovery_ts;
 
 /* Number of current recovery process

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavf/dvenc: improve error messaging

2024-03-11 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan 20 
16:17:59 2024 +0100| [bce9234f1065848dcd2bf70a2c2f34258db9b774] | committer: 
Stefano Sabatini

lavf/dvenc: improve error messaging

Provide useful information about the failure in the error message, do
not let the user guess.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bce9234f1065848dcd2bf70a2c2f34258db9b774
---

 libavformat/dvenc.c | 116 
 1 file changed, 80 insertions(+), 36 deletions(-)

diff --git a/libavformat/dvenc.c b/libavformat/dvenc.c
index 29d2dc47ac..0e9a6cfbb1 100644
--- a/libavformat/dvenc.c
+++ b/libavformat/dvenc.c
@@ -39,6 +39,7 @@
 #include "libavutil/fifo.h"
 #include "libavutil/mathematics.h"
 #include "libavutil/intreadwrite.h"
+#include "libavutil/pixdesc.h"
 #include "libavutil/timecode.h"
 
 #define MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32-bit audio
@@ -308,62 +309,107 @@ static int dv_assemble_frame(AVFormatContext *s,
 return 0;
 }
 
-static DVMuxContext* dv_init_mux(AVFormatContext* s)
+static int dv_init_mux(AVFormatContext* s)
 {
 DVMuxContext *c = s->priv_data;
 AVStream *vst = NULL;
 int i;
 
-/* we support at most 1 video and 2 audio streams */
-if (s->nb_streams > 5)
-return NULL;
+if (s->nb_streams > 5) {
+av_log(s, AV_LOG_ERROR,
+   "Invalid number of streams %d, the muxer supports at most 1 
video channel and 4 audio channels.\n",
+   s->nb_streams);
+return AVERROR_INVALIDDATA;
+}
 
 /* We have to sort out where audio and where video stream is */
 for (i=0; inb_streams; i++) {
 AVStream *st = s->streams[i];
 switch (st->codecpar->codec_type) {
 case AVMEDIA_TYPE_VIDEO:
-if (vst) return NULL;
-if (st->codecpar->codec_id != AV_CODEC_ID_DVVIDEO)
-goto bail_out;
+if (vst) {
+av_log(s, AV_LOG_ERROR,
+   "More than one video stream found, only one is 
accepted.\n");
+return AVERROR_INVALIDDATA;
+}
+if (st->codecpar->codec_id != AV_CODEC_ID_DVVIDEO) {
+av_log(s, AV_LOG_ERROR,
+   "Invalid codec for video stream, only DVVIDEO is 
supported.\n");
+return AVERROR_INVALIDDATA;
+}
 vst = st;
 break;
 case AVMEDIA_TYPE_AUDIO:
-if (c->n_ast > 1) return NULL;
+if (c->n_ast > 1) {
+av_log(s, AV_LOG_ERROR,
+   "More than two audio streams found, at most 2 are 
accepted.\n");
+return AVERROR_INVALIDDATA;
+}
 /* Some checks -- DV format is very picky about its incoming 
streams */
-if(st->codecpar->codec_id!= AV_CODEC_ID_PCM_S16LE ||
-   st->codecpar->ch_layout.nb_channels!= 2)
-goto bail_out;
+if (st->codecpar->codec_id != AV_CODEC_ID_PCM_S16LE) {
+av_log(s, AV_LOG_ERROR,
+   "Invalid codec for stream %d, only PCM_S16LE is 
supported\n.", i);
+return AVERROR_INVALIDDATA;
+}
+if (st->codecpar->ch_layout.nb_channels != 2) {
+av_log(s, AV_LOG_ERROR,
+   "Invalid number of audio channels %d for stream %d, 
only 2 channels are supported\n.",
+   st->codecpar->ch_layout.nb_channels, i);
+return AVERROR_INVALIDDATA;
+}
 if (st->codecpar->sample_rate != 48000 &&
 st->codecpar->sample_rate != 44100 &&
-st->codecpar->sample_rate != 32000)
-goto bail_out;
+st->codecpar->sample_rate != 32000) {
+av_log(s, AV_LOG_ERROR,
+   "Invalid audio sample rate %d for stream %d, only 
32000, 44100, and 48000 are supported.\n",
+   st->codecpar->sample_rate, i);
+return AVERROR_INVALIDDATA;
+}
 c->ast[c->n_ast++] = st;
 break;
 default:
-goto bail_out;
+av_log(s, AV_LOG_ERROR,
+   "Invalid media type for stream %d, only audio and video are 
supported.\n", i);
+return AVERROR_INVALIDDATA;
 }
 }
 
-if (!vst)
-goto bail_out;
+if (!vst) {
+av_log(s, AV_LOG_ERROR,
+   "Missing video stream, must be present\n");
+return AVERROR_INVALIDDATA;
+}
 
 c->sys = av_dv_codec_profile2(vst->codecpar->width, vst->codecpar->height,
  

[FFmpeg-cvslog] fftools/opt_common: show if muxer is device

2024-03-11 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Jan  7 
16:07:54 2024 +0100| [58a1386eaf770ba4969771bf0f433bc976199083] | committer: 
Stefano Sabatini

fftools/opt_common: show if muxer is device

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=58a1386eaf770ba4969771bf0f433bc976199083
---

 fftools/opt_common.c | 26 +++---
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/fftools/opt_common.c b/fftools/opt_common.c
index 02d7048c42..947a226d8d 100644
--- a/fftools/opt_common.c
+++ b/fftools/opt_common.c
@@ -852,15 +852,22 @@ static int show_formats_devices(void *optctx, const char 
*opt, const char *arg,
 const AVOutputFormat *ofmt = NULL;
 const char *last_name;
 int is_dev;
+const char *is_device_placeholder = device_only ? "" : ".";
+
+printf("%s:\n"
+   " D.%s = Demuxing supported\n"
+   " .E%s = Muxing supported\n"
+   "%s"
+   " ---\n",
+   device_only ? "Devices" : "Formats",
+   is_device_placeholder, is_device_placeholder,
+   device_only ? "": " ..d = Is a device\n");
 
-printf("%s\n"
-   " D. = Demuxing supported\n"
-   " .E = Muxing supported\n"
-   " --\n", device_only ? "Devices:" : "File formats:");
 last_name = "000";
 for (;;) {
 int decode = 0;
 int encode = 0;
+int device = 0;
 const char *name  = NULL;
 const char *long_name = NULL;
 
@@ -875,6 +882,7 @@ static int show_formats_devices(void *optctx, const char 
*opt, const char *arg,
 name  = ofmt->name;
 long_name = ofmt->long_name;
 encode= 1;
+device= is_dev;
 }
 }
 }
@@ -889,20 +897,24 @@ static int show_formats_devices(void *optctx, const char 
*opt, const char *arg,
 name  = ifmt->name;
 long_name = ifmt->long_name;
 encode= 0;
+device= is_dev;
 }
-if (name && strcmp(ifmt->name, name) == 0)
+if (name && strcmp(ifmt->name, name) == 0) {
 decode = 1;
+device = is_dev;
+}
 }
 }
 if (!name)
 break;
 last_name = name;
 
-printf(" %c%c %-15s %s\n",
+printf(" %c%c%s %-15s %s\n",
decode ? 'D' : ' ',
encode ? 'E' : ' ',
+   device_only ? "" : (device ? "d" : " "),
name,
-long_name ? long_name:" ");
+long_name ? long_name : " ");
 }
 return 0;
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add dv

2024-01-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan 20 
16:23:43 2024 +0100| [58d13d637767c6629faba66efce81b675bcb754e] | committer: 
Stefano Sabatini

doc/muxers: add dv

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=58d13d637767c6629faba66efce81b675bcb754e
---

 doc/muxers.texi | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 24ed1b3369..a8bc642c00 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1339,6 +1339,20 @@ of each audio packet, with a size computed according to 
the formula:
 The @var{encoded_sample_size} = 3 factor is due to sample size of the
 @samp{pcm_24daud} encoder.
 
+@section dv
+DV (Digital Video) muxer.
+
+It accepts exactly one @samp{dvvideo} video stream and at most two
+@samp{pcm_s16} audio streams. More constraints are defined by the
+property of the video, which must correspond to a DV video supported
+profile, and on the framerate.
+
+@subsection Example
+Use @command{ffmpeg} to convert the input:
+@example
+ffmpeg -i INPUT -s:v 720x480 -pix_fmt yuv411p -r 29.97 -ac 2 -ar 48000 -y 
out.dv
+@end example
+
 @anchor{fifo}
 @section fifo
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add MPEG-1/2 muxers section

2024-01-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan 20 
18:07:02 2024 +0100| [792c71350434d63e94fb1742d24365c44177ff8f] | committer: 
Stefano Sabatini

doc/muxers: add MPEG-1/2 muxers section

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=792c71350434d63e94fb1742d24365c44177ff8f
---

 doc/muxers.texi | 66 +
 1 file changed, 66 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index a8bc642c00..2104cc4a95 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -261,6 +261,72 @@ PCM unsigned 8-bit
 PCM Archimedes VIDC
 @end table
 
+@section MPEG-1/MPEG-2 program stream muxers
+
+This section covers formats belonging to the MPEG-1 and MPEG-2 Systems
+family.
+
+The MPEG-1 Systems format (also known as ISO/IEEC 11172-1 or MPEG-1
+program stream) has been adopted for the format of media track stored
+in VCD (Video Compact Disc).
+
+The MPEG-2 Systems standard (also known as ISO/IEEC 13818-1) covers
+two containers formats, one known as transport stream and one known as
+program stream; only the latter is covered here.
+
+The MPEG-2 program stream format (also known as VOB due to the
+corresponding file extension) is an extension of MPEG-1 program
+stream: in addition to support different codecs for the audio and
+video streams, it also stores subtitles and navigation metadata.
+MPEG-2 program stream has been adopted for storing media streams in
+SVCD and DVD storage devices.
+
+This section comprises the following muxers.
+
+@table @samp
+@item mpeg (mpg,mpeg)
+MPEG-1 Systems / MPEG-1 program stream muxer.
+
+@item vcd
+MPEG-1 Systems / MPEG-1 program stream (VCD) muxer.
+
+This muxer can be used to generate tracks in the format accepted by
+the VCD (Video Compact Disc) storage devices.
+
+It is the same as the @samp{mpeg} muxer with a few differences.
+
+@item vob
+MPEG-2 program stream (VOB) muxer.
+
+@item dvd
+MPEG-2 program stream (DVD VOB) muxer.
+
+This muxer can be used to generate tracks in the format accepted by
+the DVD (Digital Versatile Disc) storage devices.
+
+This is the same as the @samp{vob} muxer with a few differences.
+
+@item svcd (vob)
+MPEG-2 program stream (SVCD VOB) muxer.
+
+This muxer can be used to generate tracks in the format accepted by
+the SVCD (Super Video Compact Disc) storage devices.
+
+This is the same as the @samp{vob} muxer with a few differences.
+@end table
+
+@subsection Options
+@table @option
+@item muxrate @var{rate}
+Set user-defined mux rate expressed as a number of bits/s. If not
+specied the automatically computed mux rate is employed. Default value
+is @code{0}.
+
+@item preload @var{delay}
+Set initial demux-decode delay in microseconds. Default value is
+@code{50}.
+@end table
+
 @section MOV/MPEG-4/ISOMBFF muxers
 
 This section covers formats belonging to the QuickTime / MOV family,

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavf/mpegenc: extend options definition

2024-01-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan 20 
17:54:37 2024 +0100| [02e4598f8f40d0ac43d73fa79f02caecf79cbac1] | committer: 
Stefano Sabatini

lavf/mpegenc: extend options definition

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=02e4598f8f40d0ac43d73fa79f02caecf79cbac1
---

 libavformat/mpegenc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index 12d9fb33ec..14caf9e162 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -1291,8 +1291,8 @@ static void mpeg_mux_deinit(AVFormatContext *ctx)
 #define OFFSET(x) offsetof(MpegMuxContext, x)
 #define E AV_OPT_FLAG_ENCODING_PARAM
 static const AVOption options[] = {
-{ "muxrate", NULL,  
OFFSET(user_mux_rate), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, ((1<<22) - 1) * (8 * 
50), E },
-{ "preload", "Initial demux-decode delay in microseconds.", 
OFFSET(preload),  AV_OPT_TYPE_INT, { .i64 = 50 }, 0, INT_MAX, E },
+{ "muxrate", "mux rate as bits/s", OFFSET(user_mux_rate), AV_OPT_TYPE_INT, 
{ .i64 = 0 }, 0, ((1<<22) - 1) * (8 * 50), E },
+{ "preload", "initial demux-decode delay in microseconds", 
OFFSET(preload),  AV_OPT_TYPE_INT, { .i64 = 50 }, 0, INT_MAX, E },
 { NULL },
 };
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/raw: drop duplicated whitespace

2024-01-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan 20 
15:20:49 2024 +0100| [f6f781625a866f4a2ac3c74971089cbd6767b72a] | committer: 
Stefano Sabatini

doc/muxers/raw: drop duplicated whitespace

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f6f781625a866f4a2ac3c74971089cbd6767b72a
---

 doc/muxers.texi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index c2e3aea10e..24ed1b3369 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -91,7 +91,7 @@ It is standardized as SMPTE VC-3. Accepts DNxHR streams.
 @item dts @emph{audio}
 DTS Coherent Acoustics (DCA) audio
 
-@item  eac3 @emph{audio}
+@item eac3 @emph{audio}
 Dolby Digital Plus, also known as Enhanced AC-3
 
 @item evc @emph{video} (evc)

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/raw: add dfpwm item

2024-01-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan 20 
15:19:59 2024 +0100| [8bcea02f6cb08cec30aa4b50fba8af33d5600082] | committer: 
Stefano Sabatini

doc/muxers/raw: add dfpwm item

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8bcea02f6cb08cec30aa4b50fba8af33d5600082
---

 doc/muxers.texi | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index d65eaa767b..c2e3aea10e 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -75,6 +75,9 @@ input stream has to be selected using the @code{-map} option 
with the
 No extension is registered so format name has to be supplied e.g. with
 the @command{ffmpeg} CLI tool @code{-f data}.
 
+@item dfpwm @emph{audio} (dfpwm)
+Raw DFPWM1a (Dynamic Filter Pulse With Modulation) audio muxer.
+
 @item dirac @emph{video} (drc, vc2)
 BBC Dirac video.
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add daud

2024-01-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan 20 
15:10:35 2024 +0100| [916373014e006379468832830870810c5d985836] | committer: 
Stefano Sabatini

doc/muxers: add daud

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=916373014e006379468832830870810c5d985836
---

 doc/muxers.texi | 24 
 1 file changed, 24 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index a49853daf2..d65eaa767b 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1312,6 +1312,30 @@ ffmpeg -re -i  -map 0 -map 0 -c:a libfdk_aac -c:v 
libx264 \
 -f dash /path/to/out.mpd
 @end example
 
+@section daud
+D-Cinema audio muxer.
+
+It accepts a single 6-channels audio stream resampled at 96000 Hz
+encoded with the @samp{pcm_24daud} codec.
+
+In addition, each muxed packet size must not be greater than 65535 bytes.
+
+@subsection Example
+Use @command{ffmpeg} to mux input audio to a @samp{5.1} channel layout
+resampled at 96000Hz:
+@example
+ffmpeg -i INPUT -af aresample=96000,pan=5.1,asetnsamples=3640 slow.302
+@end example
+
+The @samp{asetnsamples} filter is used to reduce the number of samples
+of each audio packet, with a size computed according to the formula:
+@example
+65535 / (@var{channels} * @var{encoded_sample_size}) = 655535 / (6 * 3) = 3640
+@end example
+
+The @var{encoded_sample_size} = 3 factor is due to sample size of the
+@samp{pcm_24daud} encoder.
+
 @anchor{fifo}
 @section fifo
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavf/daudenc: clarify error messages

2024-01-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan 20 
15:08:49 2024 +0100| [bba784d60401e0d2f669cd79799c434ba0357deb] | committer: 
Stefano Sabatini

lavf/daudenc: clarify error messages

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bba784d60401e0d2f669cd79799c434ba0357deb
---

 libavformat/daudenc.c | 18 --
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/libavformat/daudenc.c b/libavformat/daudenc.c
index 2d84b16650..37c20618bd 100644
--- a/libavformat/daudenc.c
+++ b/libavformat/daudenc.c
@@ -25,8 +25,21 @@
 static int daud_init(struct AVFormatContext *s)
 {
 AVCodecParameters *par = s->streams[0]->codecpar;
-if (par->ch_layout.nb_channels != 6 || par->sample_rate != 96000)
+
+if (par->ch_layout.nb_channels != 6) {
+av_log(s, AV_LOG_ERROR,
+   "Invalid number of channels %d, must be exactly 6\n",
+   par->ch_layout.nb_channels);
+return AVERROR(EINVAL);
+}
+
+if (par->sample_rate != 96000) {
+av_log(s, AV_LOG_ERROR,
+   "Invalid sample rate %d, must be 96000\n",
+   par->sample_rate);
 return AVERROR(EINVAL);
+}
+
 return 0;
 }
 
@@ -34,7 +47,8 @@ static int daud_write_packet(struct AVFormatContext *s, 
AVPacket *pkt)
 {
 if (pkt->size > 65535) {
 av_log(s, AV_LOG_ERROR,
-   "Packet size too large for s302m. (%d > 65535)\n", pkt->size);
+   "Packet size %d too large for s302m, must be <= 65535.\n",
+   pkt->size);
 return AVERROR_INVALIDDATA;
 }
 avio_wb16(s->pb, pkt->size);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavf/dashenc: sort options by name

2024-01-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Jan 17 
00:14:40 2024 +0100| [f8b14d8bee16515293eb3cc77e8cdbbdad0de8d5] | committer: 
Stefano Sabatini

lavf/dashenc: sort options by name

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f8b14d8bee16515293eb3cc77e8cdbbdad0de8d5
---

 libavformat/dashenc.c | 68 +--
 1 file changed, 34 insertions(+), 34 deletions(-)

diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index 2f5394c308..4a92863f22 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -2362,50 +2362,50 @@ static int dash_check_bitstream(AVFormatContext *s, 
AVStream *st,
 #define E AV_OPT_FLAG_ENCODING_PARAM
 static const AVOption options[] = {
 { "adaptation_sets", "Adaptation sets. Syntax: id=0,streams=0,1,2 
id=1,streams=3,4 and so on", OFFSET(adaptation_sets), AV_OPT_TYPE_STRING, { 0 
}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM },
-{ "window_size", "number of segments kept in the manifest", 
OFFSET(window_size), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, E },
+{ "dash_segment_type", "set dash segment files type", 
OFFSET(segment_type_option), AV_OPT_TYPE_INT, {.i64 = SEGMENT_TYPE_AUTO }, 0, 
SEGMENT_TYPE_NB - 1, E, "segment_type"},
+{ "auto", "select segment file format based on codec", 0, 
AV_OPT_TYPE_CONST, {.i64 = SEGMENT_TYPE_AUTO }, 0, UINT_MAX,   E, 
"segment_type"},
+{ "mp4", "make segment file in ISOBMFF format", 0, AV_OPT_TYPE_CONST, 
{.i64 = SEGMENT_TYPE_MP4 }, 0, UINT_MAX,   E, "segment_type"},
+{ "webm", "make segment file in WebM format", 0, AV_OPT_TYPE_CONST, 
{.i64 = SEGMENT_TYPE_WEBM }, 0, UINT_MAX,   E, "segment_type"},
 { "extra_window_size", "number of segments kept outside of the manifest 
before removing from disk", OFFSET(extra_window_size), AV_OPT_TYPE_INT, { .i64 
= 5 }, 0, INT_MAX, E },
-{ "seg_duration", "segment duration (in seconds, fractional value can be 
set)", OFFSET(seg_duration), AV_OPT_TYPE_DURATION, { .i64 = 500 }, 0, 
INT_MAX, E },
+{ "format_options","set list of options for the container format 
(mp4/webm) used for dash", OFFSET(format_options), AV_OPT_TYPE_DICT, {.str = 
NULL},  0, 0, E},
 { "frag_duration", "fragment duration (in seconds, fractional value can be 
set)", OFFSET(frag_duration), AV_OPT_TYPE_DURATION, { .i64 = 0 }, 0, INT_MAX, E 
},
 { "frag_type", "set type of interval for fragments", OFFSET(frag_type), 
AV_OPT_TYPE_INT, {.i64 = FRAG_TYPE_NONE }, 0, FRAG_TYPE_NB - 1, E, "frag_type"},
-{ "none", "one fragment per segment", 0, AV_OPT_TYPE_CONST, {.i64 = 
FRAG_TYPE_NONE }, 0, UINT_MAX, E, "frag_type"},
-{ "every_frame", "fragment at every frame", 0, AV_OPT_TYPE_CONST, {.i64 = 
FRAG_TYPE_EVERY_FRAME }, 0, UINT_MAX, E, "frag_type"},
-{ "duration", "fragment at specific time intervals", 0, AV_OPT_TYPE_CONST, 
{.i64 = FRAG_TYPE_DURATION }, 0, UINT_MAX, E, "frag_type"},
-{ "pframes", "fragment at keyframes and following P-Frame reordering 
(Video only, experimental)", 0, AV_OPT_TYPE_CONST, {.i64 = FRAG_TYPE_PFRAMES }, 
0, UINT_MAX, E, "frag_type"},
-{ "remove_at_exit", "remove all segments when finished", 
OFFSET(remove_at_exit), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
-{ "use_template", "Use SegmentTemplate instead of SegmentList", 
OFFSET(use_template), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, E },
-{ "use_timeline", "Use SegmentTimeline in SegmentTemplate", 
OFFSET(use_timeline), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, E },
-{ "single_file", "Store all segments in one file, accessed using byte 
ranges", OFFSET(single_file), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
-{ "single_file_name", "DASH-templated name to be used for baseURL. Implies 
storing all segments in one file, accessed using byte ranges", 
OFFSET(single_file_name), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, E },
-{ "init_seg_name", "DASH-templated name to used for the initialization 
segment", OFFSET(init_seg_name), AV_OPT_TYPE_STRING, {.str = 
"init-stream$RepresentationID$.$ext$"}, 0, 0, E },
-{ "media_seg_name", "DASH-templated name to used for the media segments", 
OFFSET(media_seg_name), AV_OPT_TYPE_STRING, {.str = 
"chunk-stream$RepresentationID$-$Number%05d$.$ext$"}, 0, 0, E },
-{ "utc_timing_url", "URL of the page that will return the UTC timestamp in 
ISO format", OFFSET(utc_timing_url), AV_OPT_TYPE_STRING, { 0 }, 0, 0, E },
-   

[FFmpeg-cvslog] doc/muxers/dash: review documentation

2024-01-23 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Fri Jan 19 
00:19:25 2024 +0100| [9c06dedad10905979546b208f0709421b37b4f16] | committer: 
Stefano Sabatini

doc/muxers/dash: review documentation

Sort options by name, review formatting, apply consistency fixes and
fill the gaps (e.g. missing value for constants or flags), and review
and extend content.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9c06dedad10905979546b208f0709421b37b4f16
---

 doc/muxers.texi | 418 +++-
 1 file changed, 293 insertions(+), 125 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index b1716d7a6b..a49853daf2 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -971,12 +971,13 @@ ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
 
 @anchor{dash}
 @section dash
+Dynamic Adaptive Streaming over HTTP (DASH) muxer.
 
-Dynamic Adaptive Streaming over HTTP (DASH) muxer that creates segments
-and manifest files according to the MPEG-DASH standard ISO/IEC 23009-1:2014.
+This muxer creates segments and manifest files according to the
+MPEG-DASH standard ISO/IEC 23009-1:2014 and following standard
+updates.
 
 For more information see:
-
 @itemize @bullet
 @item
 ISO DASH Specification: 
@url{http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip}
@@ -984,166 +985,333 @@ ISO DASH Specification: 
@url{http://standards.iso.org/ittf/PubliclyAvailableStan
 WebM DASH Specification: 
@url{https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification}
 @end itemize
 
-It creates a MPD manifest file and segment files for each stream.
+This muxer creates an MPD (Media Presentation Description) manifest
+file and segment files for each stream. Segment files are placed in
+the same directory of the MPD manifest file.
+
+The segment filename might contain pre-defined identifiers used in the
+manifest @code{SegmentTemplate} section as defined in section
+5.3.9.4.4 of the standard.
+
+Available identifiers are @code{$RepresentationID$}, @code{$Number$},
+@code{$Bandwidth$}, and @code{$Time$}. In addition to the standard
+identifiers, an ffmpeg-specific @code{$ext$} identifier is also
+supported. When specified, @command{ffmpeg} will replace @code{$ext$}
+in the file name with muxing format's extensions such as @code{mp4},
+@code{webm} etc.
+
+@subsection Options
+@table @option
+@item adaptation_sets @var{adaptation_sets}
+Assign streams to adaptation sets, specified in the MPD manifest
+@code{AdaptationSets} section.
 
-The segment filename might contain pre-defined identifiers used with 
SegmentTemplate
-as defined in section 5.3.9.4.4 of the standard. Available identifiers are 
"$RepresentationID$",
-"$Number$", "$Bandwidth$" and "$Time$".
-In addition to the standard identifiers, an ffmpeg-specific "$ext$" identifier 
is also supported.
-When specified ffmpeg will replace $ext$ in the file name with muxing format's 
extensions such as mp4, webm etc.,
+An adaptation set contains a set of one or more streams accessed as a
+single subset, e.g. corresponding streams encoded at different size
+selectable by the user depending on the available bandwidth, or to
+different audio streams with a different language.
 
+Each adaptation set is specified with the syntax:
 @example
-ffmpeg -re -i  -map 0 -map 0 -c:a libfdk_aac -c:v libx264 \
--b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline \
--profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \
--b_strategy 0 -ar:a:1 22050 -use_timeline 1 -use_template 1 \
--window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" \
--f dash /path/to/out.mpd
+id=@var{index},streams=@var{streams}
 @end example
 
+where @var{index} must be a numerical index, and @var{streams} is a
+sequence of @code{,}-separated stream indices. Multiple adaptation
+sets can be specified, separated by spaces.
+
+To map all video (or audio) streams to an adaptation set, @code{v} (or
+@code{a}) can be used as stream identifier instead of IDs.
+
+When no assignment is defined, this defaults to an adaptation set for
+each stream.
+
+The following optional fields can also be specified:
+
 @table @option
-@item seg_duration @var{duration}
-Set the segment length in seconds (fractional value can be set). The value is
-treated as average segment duration when @var{use_template} is enabled and
-@var{use_timeline} is disabled and as minimum segment duration for all the 
other
-use cases.
-@item frag_duration @var{duration}
-Set the length in seconds of fragments within segments (fractional value can 
be set).
-@item frag_type @var{type}
-Set the type of interval for fragmentation.
-@item window_size @var{size}
-Set the maximum number of segments kept in the manifest.
-@item extra_window_size @var{size}
-Set the maximum number of segments kept outside of the manifest before 
removing from disk.
-@item remove_at_

[FFmpeg-cvslog] doc/muxers/mov: add missing parameter for use_stream_ids_as_track_ids

2024-01-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan 20 
13:03:40 2024 +0100| [3423a680bf9d5160fa8e4c80364958493588b107] | committer: 
Stefano Sabatini

doc/muxers/mov: add missing parameter for use_stream_ids_as_track_ids

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3423a680bf9d5160fa8e4c80364958493588b107
---

 doc/muxers.texi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index a2815c17fb..b1716d7a6b 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -533,7 +533,7 @@ skip writing iods atom (default value is @code{true})
 @item use_editlist @var{bool}
 use edit list (default value is @code{auto})
 
-@item use_stream_ids_as_track_ids
+@item use_stream_ids_as_track_ids @var{bool}
 use stream ids as track ids (default value is @code{false})
 
 @item video_track_timescale @var{scale}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add bit

2024-01-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Jan 14 
17:38:27 2024 +0100| [252bb9c818f3a39edb20f8e3330e1a3c0e90844f] | committer: 
Stefano Sabatini

doc/muxers: add bit

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=252bb9c818f3a39edb20f8e3330e1a3c0e90844f
---

 doc/muxers.texi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 9581e21bc6..e91a4f8e45 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -872,6 +872,11 @@ ShockWave Flash (SWF) / ActionScript Virtual Machine 2 
(AVM2) format muxer.
 
 It accepts one audio stream, one video stream, or both.
 
+@section bit
+G.729 (.bit) file format muxer.
+
+It accepts a single G.729 audio stream.
+
 @anchor{chromaprint}
 @section chromaprint
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: document avs3, expand AVS acronyms

2024-01-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Jan 14 
17:32:18 2024 +0100| [a57e3b8dcc4770fda22e38012327210c24cc9b3d] | committer: 
Stefano Sabatini

doc/muxers: document avs3, expand AVS acronyms

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a57e3b8dcc4770fda22e38012327210c24cc9b3d
---

 doc/muxers.texi | 9 +++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 77d1b2983f..9581e21bc6 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -49,10 +49,15 @@ aptX (Audio Processing Technology for Bluetooth)
 aptX HD (Audio Processing Technology for Bluetooth) audio
 
 @item avs2 @emph{video} (avs, avs2)
-AVS2-P2/IEEE1857.4 video.
+AVS2-P2 (Audio Video Standard - Second generation - Part 2) /
+IEEE 1857.4 video
+
+@item avs3 @emph{video} (avs3)
+AVS3-P2 (Audio Video Standard - Third generation - Part 2) /
+IEEE 1857.10 video
 
 @item cavsvideo @emph{video} (cavs)
-Chinese AVS (Audio Video Standard)
+Chinese AVS (Audio Video Standard - First generation)
 
 @item codec2raw @emph{audio}
 Codec 2 audio.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/crc: apply consistency fixes

2024-01-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Jan 16 
01:15:19 2024 +0100| [e36dbea389e19670c48221dfc3cf3f05d35c4496] | committer: 
Stefano Sabatini

doc/muxers/crc: apply consistency fixes

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e36dbea389e19670c48221dfc3cf3f05d35c4496
---

 doc/muxers.texi | 17 ++---
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index cd75b0bd3f..a2815c17fb 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -931,8 +931,7 @@ service. Default is @code{-1}.
 
 @anchor{crc}
 @section crc
-
-CRC (Cyclic Redundancy Check) testing format.
+CRC (Cyclic Redundancy Check) muxer.
 
 This muxer computes and prints the Adler-32 CRC of all the input audio
 and video frames. By default audio frames are converted to signed
@@ -946,25 +945,29 @@ CRC=0x@var{CRC}, where @var{CRC} is a hexadecimal number 
0-padded to
 See also the @ref{framecrc} muxer.
 
 @subsection Examples
-
-For example to compute the CRC of the input, and store it in the file
-@file{out.crc}:
+@itemize
+@item
+Use @command{ffmpeg} to compute the CRC of the input, and store it in
+the file @file{out.crc}:
 @example
 ffmpeg -i INPUT -f crc out.crc
 @end example
 
-You can print the CRC to stdout with the command:
+@item
+Use @command{ffmpeg} to print the CRC to stdout with the command:
 @example
 ffmpeg -i INPUT -f crc -
 @end example
 
+@item
 You can select the output format of each frame with @command{ffmpeg} by
-specifying the audio and video codec and format. For example to
+specifying the audio and video codec and format. For example, to
 compute the CRC of the input audio converted to PCM unsigned 8-bit
 and the input video converted to MPEG-2 video, use the command:
 @example
 ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
 @end example
+@end itemize
 
 @anchor{dash}
 @section dash

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add caf

2024-01-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Jan 16 
00:17:35 2024 +0100| [83413c8cd9bc51c2592fa0b01ea7e40a8852953b] | committer: 
Stefano Sabatini

doc/muxers: add caf

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=83413c8cd9bc51c2592fa0b01ea7e40a8852953b
---

 doc/muxers.texi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index e91a4f8e45..1bdd7d34d5 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -877,6 +877,11 @@ G.729 (.bit) file format muxer.
 
 It accepts a single G.729 audio stream.
 
+@section caf
+Apple CAF (Core Audio Format) muxer.
+
+It accepts a single audio stream.
+
 @anchor{chromaprint}
 @section chromaprint
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add codec2

2024-01-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Jan 16 
00:29:28 2024 +0100| [fe1800b3fcb4ba0101dfd12a306d3357625601d9] | committer: 
Stefano Sabatini

doc/muxers: add codec2

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fe1800b3fcb4ba0101dfd12a306d3357625601d9
---

 doc/muxers.texi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 256125d33a..cd75b0bd3f 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -882,6 +882,11 @@ Apple CAF (Core Audio Format) muxer.
 
 It accepts a single audio stream.
 
+@section codec2
+Codec2 audio audio muxer.
+
+It accepts a single codec2 audio stream.
+
 @anchor{chromaprint}
 @section chromaprint
 Chromaprint fingerprinter muxers.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/chromaprint: review and extend

2024-01-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Jan 16 
00:41:11 2024 +0100| [0726709e6d465c1206996eb9ac507ea924954d79] | committer: 
Stefano Sabatini

doc/muxers/chromaprint: review and extend

In particular, apply formatting and consistency fixes and sort options
by name.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0726709e6d465c1206996eb9ac507ea924954d79
---

 doc/muxers.texi | 43 +++
 1 file changed, 23 insertions(+), 20 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 1bdd7d34d5..256125d33a 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -884,41 +884,44 @@ It accepts a single audio stream.
 
 @anchor{chromaprint}
 @section chromaprint
+Chromaprint fingerprinter muxers.
 
-Chromaprint fingerprinter.
+To enable compilation of this filter you need to configure FFmpeg with
+@code{--enable-chromaprint}.
 
-This muxer feeds audio data to the Chromaprint library,
-which generates a fingerprint for the provided audio data. See 
@url{https://acoustid.org/chromaprint}
+This muxer feeds audio data to the Chromaprint library, which
+generates a fingerprint for the provided audio data. See:
+@url{https://acoustid.org/chromaprint}
 
-It takes a single signed native-endian 16-bit raw audio stream of at most 2 
channels.
+It takes a single signed native-endian 16-bit raw audio stream of at
+most 2 channels.
 
 @subsection Options
-
 @table @option
-@item silence_threshold
-Threshold for detecting silence. Range is from -1 to 32767, where -1 disables
-silence detection. Silence detection can only be used with version 3 of the
-algorithm.
-Silence detection must be disabled for use with the AcoustID service. Default 
is -1.
-
-@item algorithm
-Version of algorithm to fingerprint with. Range is 0 to 4.
-Version 3 enables silence detection. Default is 1.
+@item algorithm @var{version}
+Select version of algorithm to fingerprint with. Range is @code{0} to
+@code{4}. Version @code{3} enables silence detection. Default is @code{1}.
 
-@item fp_format
+@item fp_format @var{format}
 Format to output the fingerprint as. Accepts the following options:
 @table @samp
-@item raw
-Binary raw fingerprint
+@item base64
+Base64 compressed fingerprint @emph{(default)}
 
 @item compressed
 Binary compressed fingerprint
 
-@item base64
-Base64 compressed fingerprint @emph{(default)}
-
+@item raw
+Binary raw fingerprint
 @end table
 
+@item silence_threshold @var{threshold}
+Threshold for detecting silence. Range is from @code{-1} to
+@code{32767}, where @code{-1} disables silence detection. Silence
+detection can only be used with version @code{3} of the algorithm.
+
+Silence detection must be disabled for use with the AcoustID
+service. Default is @code{-1}.
 @end table
 
 @anchor{crc}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add avif

2024-01-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Jan 14 
16:53:10 2024 +0100| [f7b410fac2048478f3e615d52b9ec643dee40fd1] | committer: 
Stefano Sabatini

doc/muxers: add avif

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f7b410fac2048478f3e615d52b9ec643dee40fd1
---

 doc/muxers.texi | 28 +++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 1636f16cab..0d163a1629 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -835,6 +835,33 @@ compatibility with software that only supports a single 
audio stream in AVI
 (see @ref{amerge,,the "amerge" section in the ffmpeg-filters 
manual,ffmpeg-filters}).
 @end table
 
+@section avif
+AV1 (Alliance for Open Media Video codec 1) image format muxer.
+
+This muxers stores images encoded using the AV1 codec.
+
+It accepts one or two video streams. In case two video streams are
+provided, the second one shall contain a single plane storing the
+alpha mask.
+
+In case more than one image is provided, the generated output is
+considered an animated AVIF and the number of loops can be specified
+with the @option{loop} option.
+
+This is based on the specification by Alliance for Open Media at url
+@url{https://aomediacodec.github.io/av1-avif}.
+
+@subsection Options
+@table @option
+@item loop @var{count}
+number of times to loop an animated AVIF, @code{0} specify an infinite
+loop, default is @code{0}
+
+@item movie_timescale @var{timescale}
+Set the timescale written in the movie header box (@code{mvhd}).
+Range is 1 to INT_MAX. Default is @code{1000}.
+@end table
+
 @anchor{chromaprint}
 @section chromaprint
 
@@ -2048,7 +2075,6 @@ If a PNG image is used, it must use the rgba pixel format
 
 @anchor{image2}
 @section image2
-
 Image file muxer.
 
 The image file muxer writes video frames to image files.

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxer: lowercase raw in raw PCM muxers section

2024-01-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Jan 14 
15:29:53 2024 +0100| [261fd5c841fe2c8141422d53d6909a8df723ab03] | committer: 
Stefano Sabatini

doc/muxer: lowercase raw in raw PCM muxers section

Because this is not an acronym.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=261fd5c841fe2c8141422d53d6909a8df723ab03
---

 doc/muxers.texi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 4862540f79..1636f16cab 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -177,7 +177,7 @@ ffplay -video_size 1920x1080 -pixel_format rgb24 -f 
rawvideo testsrc.rgb
 @end example
 @end itemize
 
-@section RAW PCM muxers
+@section Raw PCM muxers
 This section covers raw PCM (Pulse-Code Modulation) audio muxers.
 
 They accept a single stream matching the designated codec. They do not

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add avm2

2024-01-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Jan 14 
17:05:56 2024 +0100| [5ec53db3509127119c038272a12aab8c89434adc] | committer: 
Stefano Sabatini

doc/muxers: add avm2

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5ec53db3509127119c038272a12aab8c89434adc
---

 doc/muxers.texi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 0d163a1629..77d1b2983f 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -862,6 +862,11 @@ Set the timescale written in the movie header box 
(@code{mvhd}).
 Range is 1 to INT_MAX. Default is @code{1000}.
 @end table
 
+@section avm2
+ShockWave Flash (SWF) / ActionScript Virtual Machine 2 (AVM2) format muxer.
+
+It accepts one audio stream, one video stream, or both.
+
 @anchor{chromaprint}
 @section chromaprint
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/avi: apply misc changes

2024-01-14 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Jan 10 
22:34:59 2024 +0100| [5a9f1fc53f784bb0d78009db47956376b05f2b25] | committer: 
Stefano Sabatini

doc/muxers/avi: apply misc changes

In particular:
* sort options by name
* apply misc formatting and consistency fixes
* add introduction explaining the need to set some options

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5a9f1fc53f784bb0d78009db47956376b05f2b25
---

 doc/muxers.texi | 28 
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 7ed5ed50a5..1c88816c3c 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -794,15 +794,24 @@ It accepts a single audio stream.
 
 @anchor{avi}
 @section avi
-
 Audio Video Interleaved muxer.
 
-@subsection Options
+AVI is a proprietary format developed by Microsoft, and later formally 
specified
+through the Open DML specification.
 
-It accepts the following options:
+Because of differences in players implementations, it might be required to set
+some options to make sure that the generated output can be correctly played by
+the target player.
 
+@subsection Options
 @table @option
-@item reserve_index_space
+@item flipped_raw_rgb @var{bool}
+If set to @code{true}, store positive height for raw RGB bitmaps, which
+indicates bitmap is stored bottom-up. Note that this option does not flip the
+bitmap which has to be done manually beforehand, e.g. by using the @samp{vflip}
+filter. Default is @code{false} and indicates bitmap is stored top down.
+
+@item reserve_index_space @var{size}
 Reserve the specified amount of bytes for the OpenDML master index of each
 stream within the file header. By default additional master indexes are
 embedded within the data packets if there is no space left in the first master
@@ -815,20 +824,15 @@ The required index space depends on the output file size 
and should be about 16
 bytes per gigabyte. When this option is omitted or set to zero the necessary
 index space is guessed.
 
-@item write_channel_mask
+Default value is @code{0}.
+
+@item write_channel_mask @var{bool}
 Write the channel layout mask into the audio stream header.
 
 This option is enabled by default. Disabling the channel mask can be useful in
 specific scenarios, e.g. when merging multiple audio streams into one for
 compatibility with software that only supports a single audio stream in AVI
 (see @ref{amerge,,the "amerge" section in the ffmpeg-filters 
manual,ffmpeg-filters}).
-
-@item flipped_raw_rgb
-If set to true, store positive height for raw RGB bitmaps, which indicates
-bitmap is stored bottom-up. Note that this option does not flip the bitmap
-which has to be done manually beforehand, e.g. by using the vflip filter.
-Default is @var{false} and indicates bitmap is stored top down.
-
 @end table
 
 @anchor{chromaprint}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add au

2024-01-14 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Jan 10 
21:47:13 2024 +0100| [f0b69d256d0e9dc25796d9dcde0e69107ffd3952] | committer: 
Stefano Sabatini

doc/muxers: add au

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f0b69d256d0e9dc25796d9dcde0e69107ffd3952
---

 doc/muxers.texi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index fee8321eab..7ed5ed50a5 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -787,6 +787,11 @@ Specify loop end position expressed in milliseconds, from 
@code{0} to
 assumes the total stream duration.
 @end table
 
+@section au
+SUN AU audio muxer.
+
+It accepts a single audio stream.
+
 @anchor{avi}
 @section avi
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavf/astenc: fix weird indent, use braces in else statements

2024-01-14 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Jan 10 
21:41:53 2024 +0100| [a600f593a860f22067efa84f539b122b84d109b9] | committer: 
Stefano Sabatini

lavf/astenc: fix weird indent, use braces in else statements

Braces are employed to improve readability.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a600f593a860f22067efa84f539b122b84d109b9
---

 libavformat/astenc.c | 16 +---
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/libavformat/astenc.c b/libavformat/astenc.c
index 259948b276..250a54b573 100644
--- a/libavformat/astenc.c
+++ b/libavformat/astenc.c
@@ -143,14 +143,16 @@ static int ast_write_trailer(AVFormatContext *s)
 
 /* Loopstart if provided */
 if (ast->loopstart > 0) {
-if (ast->loopstart >= samples) {
-av_log(s, AV_LOG_WARNING, "Loopstart value is out of range and 
will be ignored\n");
-ast->loopstart = -1;
-avio_skip(pb, 4);
-} else
-avio_wb32(pb, ast->loopstart);
-} else
+if (ast->loopstart >= samples) {
+av_log(s, AV_LOG_WARNING, "Loopstart value is out of range and 
will be ignored\n");
+ast->loopstart = -1;
+avio_skip(pb, 4);
+} else {
+avio_wb32(pb, ast->loopstart);
+}
+} else {
 avio_skip(pb, 4);
+}
 
 /* Loopend if provided. Otherwise number of samples again */
 if (ast->loopend && ast->loopstart >= 0) {

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add ast

2024-01-14 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Jan 10 
21:42:20 2024 +0100| [4143afc70d89d367148f259d84d83f1575ea6454] | committer: 
Stefano Sabatini

doc/muxers: add ast

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4143afc70d89d367148f259d84d83f1575ea6454
---

 doc/muxers.texi | 24 
 1 file changed, 24 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index c8b2bcdea6..fee8321eab 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -763,6 +763,30 @@ default is @code{false}, otherwise they are cached until 
the expected
 time event is found.
 @end table
 
+@section ast
+AST (Audio Stream) muxer.
+
+This format is used to play audio on some Nintendo Wii games.
+
+It accepts a single audio stream.
+
+The @option{loopstart} and @option{loopend} options can be used to
+define a section of the file to loop for players honoring such
+options.
+
+@subsection Options
+@table @option
+@item loopstart @var{start}
+Specify loop start position expressesd in milliseconds, from @code{-1}
+to @code{INT_MAX}, in case @code{-1} is set then no loop is specified
+(default -1) and the @option{loopend} value is ignored.
+
+@item loopend @var{end}
+Specify loop end position expressed in milliseconds, from @code{0} to
+@code{INT_MAX}, default is @code{0}, in case @code{0} is set it
+assumes the total stream duration.
+@end table
+
 @anchor{avi}
 @section avi
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/asf: extend and apply consistency fixes

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Mon Jan  8 
20:19:04 2024 +0100| [81960c09d66f67e31692a047f9833a05fc08de69] | committer: 
Stefano Sabatini

doc/muxers/asf: extend and apply consistency fixes

Mention asf_stream variant, and clarify the unit used for the packet_size 
option.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=81960c09d66f67e31692a047f9833a05fc08de69
---

 doc/muxers.texi | 18 --
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 7abaeec0fd..3ef09949aa 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -733,23 +733,21 @@ set reverb flag (default is @code{true})
 @end table
 
 @anchor{asf}
-@section asf
+@section asf, asf_stream
+Advanced / Active Systems (or Streaming) Format audio muxer.
 
-Advanced Systems Format muxer.
+The @samp{asf_stream} variant should be selected for streaming.
 
 Note that Windows Media Audio (wma) and Windows Media Video (wmv) use this
 muxer too.
 
 @subsection Options
-
-It accepts the following options:
-
 @table @option
-@item packet_size
-Set the muxer packet size. By tuning this setting you may reduce data
-fragmentation or muxer overhead depending on your source. Default value is
-3200, minimum is 100, maximum is 64k.
-
+@item packet_size @var{size}
+Set the muxer packet size as a number of bytes. By tuning this setting
+you may reduce data fragmentation or muxer overhead depending on your
+source. Default value is @code{3200}, minimum is @code{100}, maximum
+is @code{64Ki}.
 @end table
 
 @anchor{avi}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add ass

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Mon Jan  8 
20:45:03 2024 +0100| [82ad55f5ffa775c4bf5f062500f264a5ceda9297] | committer: 
Stefano Sabatini

doc/muxers: add ass

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=82ad55f5ffa775c4bf5f062500f264a5ceda9297
---

 doc/muxers.texi | 13 +
 1 file changed, 13 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 3ef09949aa..c8b2bcdea6 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -750,6 +750,19 @@ source. Default value is @code{3200}, minimum is 
@code{100}, maximum
 is @code{64Ki}.
 @end table
 
+@section ass
+ASS/SSA (SubStation Alpha) subtitles muxer.
+
+It accepts a single ASS subtitles stream.
+
+@subsection Options
+@table @option
+@item ignore_readorder @var{bool}
+Write dialogue events immediately, even if they are out-of-order,
+default is @code{false}, otherwise they are cached until the expected
+time event is found.
+@end table
+
 @anchor{avi}
 @section avi
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add apm

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
20:40:35 2024 +0100| [d9480cebd915d4b70933f317f7c7616616a3abc0] | committer: 
Stefano Sabatini

doc/muxers: add apm

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d9480cebd915d4b70933f317f7c7616616a3abc0
---

 doc/muxers.texi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 2e0e3d8132..304df4f5d2 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -660,6 +660,11 @@ It accepts a single audio stream containing an AMR NB 
stream.
 @section amv
 AMV (Actions Media Video) format muxer.
 
+@section apm
+Ubisoft Rayman 2 APM audio muxer.
+
+It accepts a single ADPCM IMA APM audio stream.
+
 @anchor{asf}
 @section asf
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add argo_cvg

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Mon Jan  8 
20:00:26 2024 +0100| [d311e46284cc2abf8d50c989462343dd763ab3d4] | committer: 
Stefano Sabatini

doc/muxers: add argo_cvg

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d311e46284cc2abf8d50c989462343dd763ab3d4
---

 doc/muxers.texi | 21 +
 1 file changed, 21 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 76441af9ef..7abaeec0fd 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -711,6 +711,27 @@ Embed file name into file, if not specified use the output 
file
 name. The name is truncated to 8 characters.
 @end table
 
+@section argo_cvg
+Argonaut Games CVG audio muxer.
+
+It accepts a single one-channel ADPCM 22050Hz audio stream.
+
+The @option{loop} and @option{reverb} options set the corresponding
+flags in the header which can be later retrieved to process the audio
+stream accordingly.
+
+@subsection Options
+@table @option
+@item skip_rate_check @var{bool}
+skip sample rate check (default is @code{false})
+
+@item loop @var{bool}
+set loop flag (default is @code{false})
+
+@item reverb @var{boolean}
+set reverb flag (default is @code{true})
+@end table
+
 @anchor{asf}
 @section asf
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add argo_asf

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Jan  7 
16:21:08 2024 +0100| [2a0abf06e45184dbb90951bd9ed064c26e643915] | committer: 
Stefano Sabatini

doc/muxers: add argo_asf

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2a0abf06e45184dbb90951bd9ed064c26e643915
---

 doc/muxers.texi | 20 
 1 file changed, 20 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 5e34f5a39a..76441af9ef 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -691,6 +691,26 @@ ffmpeg -i INPUT -final_delay 0.5 -plays 2 out.apng
 @end example
 @end itemize
 
+@section argo_asf
+Argonaut Games ASF audio muxer.
+
+It accepts a single ADPCM audio stream.
+
+@subsection Options
+@table @option
+@item version_major @var{version}
+override file major version, specified as an integer, default value is
+@code{2}
+
+@item version_minor @var{version}
+override file minor version, specified as an integer, default value is
+@code{1}
+
+@item name @var{name}
+Embed file name into file, if not specified use the output file
+name. The name is truncated to 8 characters.
+@end table
+
 @anchor{asf}
 @section asf
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add apng

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
21:16:45 2024 +0100| [e2b1988c194beaa3b67f337f5a93699d6c78d2df] | committer: 
Stefano Sabatini

doc/muxers: add apng

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e2b1988c194beaa3b67f337f5a93699d6c78d2df
---

 doc/muxers.texi | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 304df4f5d2..5e34f5a39a 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -665,6 +665,32 @@ Ubisoft Rayman 2 APM audio muxer.
 
 It accepts a single ADPCM IMA APM audio stream.
 
+@section apng
+Animated Portable Network Graphics muxer.
+
+It accepts a single APNG video stream.
+
+@subsection Options
+@table @option
+@item final_delay @var{delay}
+Force a delay expressed in seconds after the last frame of each
+repetition. Default value is @code{0.0}.
+
+@item plays @var{repetitions}
+specify how many times to play the content, @code{0} causes an infinte
+loop, with @code{1} there is no loop
+@end table
+
+@subsection Examples
+@itemize
+@item
+Use @command{ffmpeg} to generate an APNG output with 2 repetitions,
+and with a delay of half a second after the first repetition:
+@example
+ffmpeg -i INPUT -final_delay 0.5 -plays 2 out.apng
+@end example
+@end itemize
+
 @anchor{asf}
 @section asf
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxer/adts: apply consistency fixes

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
19:28:55 2024 +0100| [4d54f022b3b1aea2d809e7f015579c2d5021c919] | committer: 
Stefano Sabatini

doc/muxer/adts: apply consistency fixes

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4d54f022b3b1aea2d809e7f015579c2d5021c919
---

 doc/muxers.texi | 17 -
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 5bfbc33ea9..7b31aa38b4 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -515,24 +515,23 @@ default is @code{false}
 
 @anchor{adts}
 @section adts
+Audio Data Transport Stream muxer.
 
-Audio Data Transport Stream muxer. It accepts a single AAC stream.
+It accepts a single AAC stream.
 
 @subsection Options
-
-It accepts the following options:
-
 @table @option
-
 @item write_id3v2 @var{bool}
-Enable to write ID3v2.4 tags at the start of the stream. Default is disabled.
+Enable to write ID3v2.4 tags at the start of the stream. Default is
+disabled.
 
 @item write_apetag @var{bool}
-Enable to write APE tags at the end of the stream. Default is disabled.
+Enable to write APE tags at the end of the stream. Default is
+disabled.
 
 @item write_mpeg2 @var{bool}
-Enable to set MPEG version bit in the ADTS frame header to 1 which indicates 
MPEG-2. Default is 0, which indicates MPEG-4.
-
+Enable to set MPEG version bit in the ADTS frame header to 1 which
+indicates MPEG-2. Default is 0, which indicates MPEG-4.
 @end table
 
 @anchor{aiff}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add amv

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
20:37:47 2024 +0100| [05d92850ecdb1e3391359b7e38d5ed9ebcb63536] | committer: 
Stefano Sabatini

doc/muxers: add amv

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=05d92850ecdb1e3391359b7e38d5ed9ebcb63536
---

 doc/muxers.texi | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index f1774432f4..2e0e3d8132 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -657,6 +657,9 @@ type @code{pcm} else type @code{tun} is set. @var{(default)}
 
 It accepts a single audio stream containing an AMR NB stream.
 
+@section amv
+AMV (Actions Media Video) format muxer.
+
 @anchor{asf}
 @section asf
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/aiff: apply formatting fixes

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
19:31:55 2024 +0100| [1daf10e51d51d8f072c4b61cf90f58e869a75868] | committer: 
Stefano Sabatini

doc/muxers/aiff: apply formatting fixes

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1daf10e51d51d8f072c4b61cf90f58e869a75868
---

 doc/muxers.texi | 9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 7b31aa38b4..de356af177 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -536,21 +536,16 @@ indicates MPEG-2. Default is 0, which indicates MPEG-4.
 
 @anchor{aiff}
 @section aiff
-
 Audio Interchange File Format muxer.
 
 @subsection Options
-
-It accepts the following options:
-
 @table @option
-@item write_id3v2
+@item write_id3v2 @var{bool}
 Enable ID3v2 tags writing when set to 1. Default is 0 (disabled).
 
-@item id3v2_version
+@item id3v2_version @var{bool}
 Select ID3v2 version to write. Currently only version 3 and 4 (aka.
 ID3v2.3 and ID3v2.4) are supported. The default is version 4.
-
 @end table
 
 @anchor{alp}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add amr

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
20:25:40 2024 +0100| [afcd9d89918d3036a2d8a1bdda5b67ddda9aa397] | committer: 
Stefano Sabatini

doc/muxers: add amr

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=afcd9d89918d3036a2d8a1bdda5b67ddda9aa397
---

 doc/muxers.texi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 070efff78c..f1774432f4 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -652,6 +652,11 @@ type @code{pcm} else type @code{tun} is set. 
@var{(default)}
 @end table
 @end table
 
+@section amr
+3GPP AMR (Adaptive Multi-Rate) audio muxer.
+
+It accepts a single audio stream containing an AMR NB stream.
+
 @anchor{asf}
 @section asf
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add ac4

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
19:17:18 2024 +0100| [bdb1738cda4b4085c08150327b68bd44057cb36f] | committer: 
Stefano Sabatini

doc/muxers: add ac4

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bdb1738cda4b4085c08150327b68bd44057cb36f
---

 doc/muxers.texi | 12 
 1 file changed, 12 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 2b64fd1a77..5bfbc33ea9 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -501,6 +501,18 @@ A64 Commodore 64 video muxer.
 This muxer accepts a single @code{a64_multi} or @code{a64_multi5}
 codec video stream.
 
+@section ac4
+Raw AC-4 audio muxer.
+
+This muxer accepts a single @code{ac4} audio stream.
+
+@subsection Options
+@table @option
+@item write_crc @var{bool}
+when enabled, write a CRC checksum for each packet to the output,
+default is @code{false}
+@end table
+
 @anchor{adts}
 @section adts
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers/alp: apply consistency formatting fixes

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
19:54:28 2024 +0100| [92a5c93ee9d4525ba62990d0564a4164446bd635] | committer: 
Stefano Sabatini

doc/muxers/alp: apply consistency formatting fixes

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=92a5c93ee9d4525ba62990d0564a4164446bd635
---

 doc/muxers.texi | 17 +++--
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 55ca292566..070efff78c 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -626,21 +626,19 @@ ID3v2.3 and ID3v2.4) are supported. The default is 
version 4.
 
 @anchor{alp}
 @section alp
+High Voltage Software's Lego Racers game audio muxer.
 
-Muxer for audio of High Voltage Software's Lego Racers game. It accepts a 
single ADPCM_IMA_ALP stream
-with no more than 2 channels nor a sample rate greater than 44100 Hz.
+It accepts a single ADPCM_IMA_ALP stream with no more than 2 channels
+and a sample rate not greater than 44100 Hz.
 
-Extensions: tun, pcm
+Extensions: @code{tun}, @code{pcm}
 
 @subsection Options
-
-It accepts the following options:
-
 @table @option
-
 @item type @var{type}
 Set file type.
 
+@var{type} accepts the following values:
 @table @samp
 @item tun
 Set file type as music. Must have a sample rate of 22050 Hz.
@@ -649,10 +647,9 @@ Set file type as music. Must have a sample rate of 22050 
Hz.
 Set file type as sfx.
 
 @item auto
-Set file type as per output file extension. @code{.pcm} results in type 
@code{pcm} else type @code{tun} is set. @var{(default)}
-
+Set file type as per output file extension. @code{.pcm} results in
+type @code{pcm} else type @code{tun} is set. @var{(default)}
 @end table
-
 @end table
 
 @anchor{asf}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: add section for audio PCM muxers

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
19:52:22 2024 +0100| [b894cb45c46f33b292a271728faa37e5acdb9c92] | committer: 
Stefano Sabatini

doc/muxers: add section for audio PCM muxers

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b894cb45c46f33b292a271728faa37e5acdb9c92
---

 doc/muxers.texi | 76 +
 1 file changed, 76 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index de356af177..55ca292566 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -177,6 +177,82 @@ ffplay -video_size 1920x1080 -pixel_format rgb24 -f 
rawvideo testsrc.rgb
 @end example
 @end itemize
 
+@section RAW PCM muxers
+This section covers raw PCM (Pulse-Code Modulation) audio muxers.
+
+They accept a single stream matching the designated codec. They do not
+store timestamps or metadata. The recognized extension is the same as
+the muxer name.
+
+It comprises the following muxers. The optional additional extension
+used to automatically select the muxer from the output extension is
+also shown in parentheses.
+
+@table @samp
+@item alaw (al)
+PCM A-law
+
+@item f32be
+PCM 32-bit floating-point big-endian
+
+@item f32le
+PCM 32-bit floating-point little-endian
+
+@item f64be
+PCM 64-bit floating-point big-endian
+
+@item f64le
+PCM 64-bit floating-point little-endian
+
+@item mulaw (ul)
+PCM mu-law
+
+@item s16be
+PCM signed 16-bit big-endian
+
+@item s16le
+PCM signed 16-bit little-endian
+
+@item s24be
+PCM signed 24-bit big-endian
+
+@item s24le
+PCM signed 24-bit little-endian
+
+@item s32be
+PCM signed 32-bit big-endian
+
+@item s32le
+PCM signed 32-bit little-endian
+
+@item s8 (sb)
+PCM signed 8-bit
+
+@item u16be
+PCM unsigned 16-bit big-endian
+
+@item u16le
+PCM unsigned 16-bit little-endian
+
+@item u24be
+PCM unsigned 24-bit big-endian
+
+@item u24le
+PCM unsigned 24-bit little-endian
+
+@item u32be
+PCM unsigned 32-bit big-endian
+
+@item u32le
+PCM unsigned 32-bit little-endian
+
+@item u8 (ub)
+PCM unsigned 8-bit
+
+@item vidc
+PCM Archimedes VIDC
+@end table
+
 @section MOV/MPEG-4/ISOMBFF muxers
 
 This section covers formats belonging to the QuickTime / MOV family,

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: extend documentation for MOV muxers

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
17:45:35 2024 +0100| [f038cd7945cac6066583f983c71fc8d2eff4f3ef] | committer: 
Stefano Sabatini

doc/muxers: extend documentation for MOV muxers

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f038cd7945cac6066583f983c71fc8d2eff4f3ef
---

 doc/muxers.texi | 464 ++--
 1 file changed, 317 insertions(+), 147 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 7b705b6a9e..ee6edd6f43 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -19,6 +19,323 @@ enabled demuxers and muxers.
 
 A description of some of the currently available muxers follows.
 
+@section MOV/MPEG-4/ISOMBFF muxers
+
+This section covers formats belonging to the QuickTime / MOV family,
+including the MPEG-4 Part 14 format and ISO base media file format
+(ISOBMFF). These formats share a common structure based on the ISO
+base media file format (ISOBMFF).
+
+The MOV format was originally developed for use with Apple QuickTime.
+It was later used as the basis for the MPEG-4 Part 1 (later Part 14)
+format, also known as ISO/IEC 14496-1. That format was then
+generalized into ISOBMFF, also named MPEG-4 Part 12 format, ISO/IEC
+14496-12, or ISO/IEC 15444-12.
+
+It comprises the following muxers.
+
+@table @samp
+@item 3gp
+Third Generation Partnership Project (3GPP) format for 3G UMTS
+multimedia services
+
+@item 3g2
+Third Generation Partnership Project 2 (3GP2 or 3GPP2) format for 3G
+CDMA2000 multimedia services, similar to @samp{3gp} with extensions
+and limitations
+
+@item f4v
+Adobe Flash Video format
+
+@item ipod
+MPEG-4 audio file format, as MOV/MP4 but limited to contain only audio
+streams, typically played with the Apple ipod device
+
+@item ismv
+Microsoft IIS (Internet Information Services) Smooth Streaming
+Audio/Video (ISMV or ISMA) format. This is based on MPEG-4 Part 14
+format with a few incompatible variants, used to stream media files
+for the Microsoft IIS server.
+
+@item mov
+QuickTime player format identified by the @code{.mov} extension
+
+@item mp4
+MP4 or MPEG-4 Part 14 format
+
+@item psp
+PlayStation Portable MP4/MPEG-4 Part 14 format variant. This is based
+on MPEG-4 Part 14 format with a few incompatible variants, used to
+play files on PlayStation devices.
+@end table
+
+@subsection Fragmentation
+
+The @samp{mov}, @samp{mp4}, and @samp{ismv} muxers support
+fragmentation. Normally, a MOV/MP4 file has all the metadata about all
+packets stored in one location.
+
+This data is usually written at the end of the file, but it can be
+moved to the start for better playback by adding @code{+faststart} to
+the @code{-movflags}, or using the @command{qt-faststart} tool).
+
+A fragmented file consists of a number of fragments, where packets and
+metadata about these packets are stored together. Writing a fragmented
+file has the advantage that the file is decodable even if the writing
+is interrupted (while a normal MOV/MP4 is undecodable if it is not
+properly finished), and it requires less memory when writing very long
+files (since writing normal MOV/MP4 files stores info about every
+single packet in memory until the file is closed). The downside is
+that it is less compatible with other applications.
+
+Fragmentation is enabled by setting one of the options that define
+how to cut the file into fragments:
+@table @option
+@item frag_duration
+@item frag_size
+@item min_frag_duration
+@item movflags +frag_keyframe
+@item movflags +frag_custom
+@end table
+
+If more than one condition is specified, fragments are cut when one of
+the specified conditions is fulfilled. The exception to this is the
+option @option{min_frag_duration}, which has to be fulfilled for any
+of the other conditions to apply.
+
+@subsection Options
+
+@table @option
+
+@item brand @var{brand_string}
+Override major brand.
+
+@item empty_hdlr_name @var{bool}
+Enable to skip writing the name inside a @code{hdlr} box.
+Default is @code{false}.
+
+@item encryption_key @var{key}
+set the media encryption key in hexadecimal format
+
+@item encryption_kid @var{kid}
+set the media encryption key identifier in hexadecimal format
+
+@item encryption_scheme @var{scheme}
+configure the encryption scheme, allowed values are @samp{none}, and
+@samp{cenc-aes-ctr}
+
+@item frag_duration @var{duration}
+Create fragments that are @var{duration} microseconds long.
+
+@item frag_interleave  @var{number}
+Interleave samples within fragments (max number of consecutive
+samples, lower is tighter interleaving, but with more overhead. It is
+set to @code{0} by default.
+
+@item frag_size @var{size}
+create fragments that contain up to @var{size} bytes of payload data
+
+@item iods_audio_profile @var{profile}
+specify iods number for the audio profile atom (from -1 to 255),
+default is @code{-1}
+
+@item iods_video_profile @var{profile}
+specify iods number for the video profile atom (from -1 to 255),
+default is @code{-1}
+
+@i

[FFmpeg-cvslog] doc/muxers/a64: re-format description

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
19:16:57 2024 +0100| [14aa4b08febba87a8776458f1740df02b5fba5d6] | committer: 
Stefano Sabatini

doc/muxers/a64: re-format description

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=14aa4b08febba87a8776458f1740df02b5fba5d6
---

 doc/muxers.texi | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index e0fddc0ecd..2b64fd1a77 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -496,8 +496,10 @@ ffmpeg -re @var{} 
-movflags isml+frag_keyframe
 
 @anchor{a64}
 @section a64
+A64 Commodore 64 video muxer.
 
-A64 muxer for Commodore 64 video. Accepts a single @code{a64_multi} or 
@code{a64_multi5} codec video stream.
+This muxer accepts a single @code{a64_multi} or @code{a64_multi5}
+codec video stream.
 
 @anchor{adts}
 @section adts

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/muxers: review rawvideo muxers section

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
19:07:36 2024 +0100| [c7e26d192a39e262e5e2f6c307a64ba1b080e7ae] | committer: 
Stefano Sabatini

doc/muxers: review rawvideo muxers section

Move section to the top of the file, use table in place of subsection
to list the comprising muxers, and show media type information and
extensions in the item entry names.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c7e26d192a39e262e5e2f6c307a64ba1b080e7ae
---

 doc/muxers.texi | 340 ++--
 1 file changed, 158 insertions(+), 182 deletions(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index ee6edd6f43..e0fddc0ecd 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -19,6 +19,164 @@ enabled demuxers and muxers.
 
 A description of some of the currently available muxers follows.
 
+@anchor{raw muxers}
+@section Raw muxers
+
+This section covers raw muxers. They accept a single stream matching
+the designated codec. They do not store timestamps or metadata. The
+recognized extension is the same as the muxer name unless indicated
+otherwise.
+
+It comprises the following muxers. The media type and the eventual
+extensions used to automatically selects the muxer from the output
+extensions are also shown.
+
+@table @samp
+@item ac3 @emph{audio}
+Dolby Digital, also known as AC-3.
+
+@item adx @emph{audio}
+CRI Middleware ADX audio.
+
+This muxer will write out the total sample count near the start of the
+first packet when the output is seekable and the count can be stored
+in 32 bits.
+
+@item aptx @emph{audio}
+aptX (Audio Processing Technology for Bluetooth)
+
+@item aptx_hd @emph{audio} (aptxdh)
+aptX HD (Audio Processing Technology for Bluetooth) audio
+
+@item avs2 @emph{video} (avs, avs2)
+AVS2-P2/IEEE1857.4 video.
+
+@item cavsvideo @emph{video} (cavs)
+Chinese AVS (Audio Video Standard)
+
+@item codec2raw @emph{audio}
+Codec 2 audio.
+
+No extension is registered so format name has to be supplied e.g. with
+the ffmpeg CLI tool @code{-f codec2raw}.
+
+@item data @emph{any}
+Generic data muxer.
+
+This muxer accepts a single stream with any codec of any type. The
+input stream has to be selected using the @code{-map} option with the
+@command{ffmpeg} CLI tool.
+
+No extension is registered so format name has to be supplied e.g. with
+the @command{ffmpeg} CLI tool @code{-f data}.
+
+@item dirac @emph{video} (drc, vc2)
+BBC Dirac video.
+
+The Dirac Pro codec is a subset and is standardized as SMPTE VC-2.
+
+@item dnxhd @emph{video} (dnxhd, dnxhr)
+Avid DNxHD video.
+
+It is standardized as SMPTE VC-3. Accepts DNxHR streams.
+
+@item dts @emph{audio}
+DTS Coherent Acoustics (DCA) audio
+
+@item  eac3 @emph{audio}
+Dolby Digital Plus, also known as Enhanced AC-3
+
+@item evc @emph{video} (evc)
+MPEG-5 Essential Video Coding (EVC) / EVC / MPEG-5 Part 1 EVC video
+
+@item g722 @emph{audio}
+ITU-T G.722 audio
+
+@item g723_1 @emph{audio} (tco, rco)
+ITU-T G.723.1 audio
+
+@item g726 @emph{audio}
+ITU-T G.726 big-endian ("left-justified") audio.
+
+No extension is registered so format name has to be supplied e.g. with
+the @command{ffmpeg} CLI tool @code{-f g726}.
+
+@item g726le @emph{audio}
+ITU-T G.726 little-endian ("right-justified") audio.
+
+No extension is registered so format name has to be supplied e.g. with
+the @command{ffmpeg} CLI tool @code{-f g726le}.
+
+@item gsm @emph{audio}
+Global System for Mobile Communications audio
+
+@item h261 @emph{video}
+ITU-T H.261 video
+
+@item h263 @emph{video}
+ITU-T H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 video
+
+@item h264 @emph{video} (h264, 264)
+ITU-T H.264 / MPEG-4 Part 10 AVC video. Bitstream shall be converted
+to Annex B syntax if it's in length-prefixed mode.
+
+@item hevc @emph{video} (hevc, h265, 265)
+ITU-T H.265 / MPEG-H Part 2 HEVC video. Bitstream shall be converted
+to Annex B syntax if it's in length-prefixed mode.
+
+@item m4v @emph{video}
+MPEG-4 Part 2 video
+
+@item mjpeg @emph{video} (mjpg, mjpeg)
+Motion JPEG video
+
+@item mlp @emph{audio}
+Meridian Lossless Packing, also known as Packed PCM
+
+@item mp2 @emph{audio} (mp2, m2a, mpa)
+MPEG-1 Audio Layer II audio
+
+@item mpeg1video @emph{video} (mpg, mpeg, m1v)
+MPEG-1 Part 2 video.
+
+@item mpeg2video @emph{video} (m2v)
+ITU-T H.262 / MPEG-2 Part 2 video
+
+@item obu @emph{video}
+AV1 low overhead Open Bitstream Units muxer.
+
+Temporal delimiter OBUs will be inserted in all temporal units of the
+stream.
+
+@item rawvideo @emph{video} (yuv, rgb)
+Raw uncompressed video.
+
+@item sbc @emph{audio} (sbc, msbc)
+Bluetooth SIG low-complexity subband codec audio
+
+@item truehd @emph{audio} (thd)
+Dolby TrueHD audio
+
+@item vc1 @emph{video}
+SMPTE 421M / VC-1 video
+@end table
+
+@subsection Examples
+
+@itemize
+@item
+Store raw video frames with the @samp{rawvideo} muxer using @command{ffmpeg}:
+@example
+ffmpeg -f lavfi -i testsrc -t 10 -s hd1080p testsrc.yuv
+@end ex

[FFmpeg-cvslog] lavf/movenc: sort options by name

2024-01-10 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Jan  6 
17:52:11 2024 +0100| [14a1ece3aa74f7a140fcf4ede2984b196020abf2] | committer: 
Stefano Sabatini

lavf/movenc: sort options by name

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=14a1ece3aa74f7a140fcf4ede2984b196020abf2
---

 libavformat/movenc.c | 86 ++--
 1 file changed, 43 insertions(+), 43 deletions(-)

diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 6b1ff408c7..c95410f5c1 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -70,56 +70,56 @@
 #include "vpcc.h"
 
 static const AVOption options[] = {
-{ "movflags", "MOV muxer flags", offsetof(MOVMuxContext, flags), 
AV_OPT_TYPE_FLAGS, {.i64 = 0}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, 
"movflags" },
-{ "rtphint", "Add RTP hint tracks", 0, AV_OPT_TYPE_CONST, {.i64 = 
FF_MOV_FLAG_RTP_HINT}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" 
},
-{ "moov_size", "maximum moov size so it can be placed at the begin", 
offsetof(MOVMuxContext, reserved_moov_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 
INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, 0 },
-{ "empty_moov", "Make the initial moov atom empty", 0, AV_OPT_TYPE_CONST, 
{.i64 = FF_MOV_FLAG_EMPTY_MOOV}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, 
"movflags" },
-{ "frag_keyframe", "Fragment at video keyframes", 0, AV_OPT_TYPE_CONST, 
{.i64 = FF_MOV_FLAG_FRAG_KEYFRAME}, INT_MIN, INT_MAX, 
AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
-{ "frag_every_frame", "Fragment at every frame", 0, AV_OPT_TYPE_CONST, 
{.i64 = FF_MOV_FLAG_FRAG_EVERY_FRAME}, INT_MIN, INT_MAX, 
AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
-{ "separate_moof", "Write separate moof/mdat atoms for each track", 0, 
AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_SEPARATE_MOOF}, INT_MIN, INT_MAX, 
AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
-{ "frag_custom", "Flush fragments on caller requests", 0, 
AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_FRAG_CUSTOM}, INT_MIN, INT_MAX, 
AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
-{ "isml", "Create a live smooth streaming feed (for pushing to a 
publishing point)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_ISML}, INT_MIN, 
INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
-{ "faststart", "Run a second pass to put the index (moov atom) at the 
beginning of the file", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_FASTSTART}, 
INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
-{ "omit_tfhd_offset", "Omit the base data offset in tfhd atoms", 0, 
AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_OMIT_TFHD_OFFSET}, INT_MIN, INT_MAX, 
AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
-{ "disable_chpl", "Disable Nero chapter atom", 0, AV_OPT_TYPE_CONST, {.i64 
= FF_MOV_FLAG_DISABLE_CHPL}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, 
"movflags" },
-{ "default_base_moof", "Set the default-base-is-moof flag in tfhd atoms", 
0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_DEFAULT_BASE_MOOF}, INT_MIN, INT_MAX, 
AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
-{ "dash", "Write DASH compatible fragmented MP4", 0, AV_OPT_TYPE_CONST, 
{.i64 = FF_MOV_FLAG_DASH}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, 
"movflags" },
-{ "cmaf", "Write CMAF compatible fragmented MP4", 0, AV_OPT_TYPE_CONST, 
{.i64 = FF_MOV_FLAG_CMAF}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, 
"movflags" },
-{ "frag_discont", "Signal that the next fragment is discontinuous from 
earlier ones", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_FRAG_DISCONT}, 
INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
-{ "delay_moov", "Delay writing the initial moov until the first fragment 
is cut, or until the first fragment flush", 0, AV_OPT_TYPE_CONST, {.i64 = 
FF_MOV_FLAG_DELAY_MOOV}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, 
"movflags" },
-{ "global_sidx", "Write a global sidx index at the start of the file", 0, 
AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_GLOBAL_SIDX}, INT_MIN, INT_MAX, 
AV_OPT_FLAG_ENCODING_PARAM, "movflags" },
-{ "skip_sidx", "Skip writing of sidx atom", 0, AV_OPT_TYPE_CONST, {.i64 = 
FF_MOV_FLAG_SKIP_SIDX}, INT_MIN, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM, 
"movflags" },
-{ "write_colr", "Write colr atom even if the color info is unspecified 
(Experimental, may be renamed or changed, do not use from scripts)", 0, 
AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_WRITE_COLR}, 

[FFmpeg-cvslog] lavfi/drawtext: fix missed rename of is_newline

2024-01-03 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Jan  3 
16:47:14 2024 +0100| [59686eaf336a71f2e9297f1f2df4587ea9dc76a0] | committer: 
Stefano Sabatini

lavfi/drawtext: fix missed rename of is_newline

Fix fallout introduced in 732fb122e66, fix compilation with
--enable-libfribidi.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=59686eaf336a71f2e9297f1f2df4587ea9dc76a0
---

 libavfilter/vf_drawtext.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
index c1ea5b90b3..fe7e6ace27 100644
--- a/libavfilter/vf_drawtext.c
+++ b/libavfilter/vf_drawtext.c
@@ -684,7 +684,7 @@ static int shape_text(AVFilterContext *ctx)
 fribidi_shape(flags, embedding_levels, len, ar_props, unicodestr);
 
 for (line_end = 0, line_start = 0; line_end < len; line_end++) {
-if (is_newline(unicodestr[line_end]) || line_end == len - 1) {
+if (ff_is_newline(unicodestr[line_end]) || line_end == len - 1) {
 if (!fribidi_reorder_line(flags, bidi_types,
   line_end - line_start + 1, line_start,
   direction, embedding_levels, unicodestr,

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/filters/setpts: add random jitter generation example

2024-01-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Fri Dec 29 
12:48:08 2023 +0100| [4d301be9e581d212d35df38acf190ca1d2d4b4c8] | committer: 
Stefano Sabatini

doc/filters/setpts: add random jitter generation example

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4d301be9e581d212d35df38acf190ca1d2d4b4c8
---

 doc/filters.texi | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/doc/filters.texi b/doc/filters.texi
index f54359d533..23b1a2baa5 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -31061,6 +31061,12 @@ Set fixed rate of 25 frames per second:
 setpts=N/(25*TB)
 @end example
 
+@item
+Apply a random jitter effect of +/-100 TB units:
+@example
+setpts=PTS+randomi(0, -100\,100)
+@end example
+
 @item
 Set fixed rate 25 fps with some jitter:
 @example

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/filters/drawtext: apply second level of escaping on colon

2024-01-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Jan  2 
22:01:14 2024 +0100| [43042931fb0cd2744d22ffa8decb33be67303948] | committer: 
Stefano Sabatini

doc/filters/drawtext: apply second level of escaping on colon

Fix escaping on example.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=43042931fb0cd2744d22ffa8decb33be67303948
---

 doc/filters.texi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index 23b1a2baa5..264b363642 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -12984,7 +12984,7 @@ 
drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,
 @item
 Use fontconfig to set the font. Note that the colons need to be escaped.
 @example
-drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
+drawtext='fontfile=Linux Libertine O-40\\:style=Semibold:text=FFmpeg'
 @end example
 
 @item

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavu/eval: add randomi function to compute random value in interval

2024-01-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Thu Dec 28 
19:09:22 2023 +0100| [7769afcab4c2160d39058b21bcfb7923f4b036eb] | committer: 
Stefano Sabatini

lavu/eval: add randomi function to compute random value in interval

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7769afcab4c2160d39058b21bcfb7923f4b036eb
---

 Changelog|  1 +
 doc/utils.texi   | 12 +---
 libavutil/eval.c | 26 +++---
 3 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/Changelog b/Changelog
index 424bfc11af..419075dc56 100644
--- a/Changelog
+++ b/Changelog
@@ -15,6 +15,7 @@ version :
 - tiltandshift filter
 - qrencode filter and qrencodesrc source
 - quirc filter
+- lavu/eval: introduce randomi() function in expressions
 
 version 6.1:
 - libaribcaption decoder
diff --git a/doc/utils.texi b/doc/utils.texi
index a0b8d4b62d..0c4f146f4f 100644
--- a/doc/utils.texi
+++ b/doc/utils.texi
@@ -939,9 +939,15 @@ Returns the value of the expression printed.
 
 Prints t with loglevel l
 
-@item random(x)
-Return a pseudo random value between 0.0 and 1.0. @var{x} is the index of the
-internal variable which will be used to save the seed/state.
+@item random(idx)
+Return a pseudo random value between 0.0 and 1.0. @var{idx} is the
+index of the internal variable which will be used to save the
+seed/state.
+
+@item randomi(idx, min, max)
+Return a pseudo random value in the interval between @var{min} and
+@var{max}. @var{idx} is the index of the internal variable which will
+be used to save the seed/state.
 
 @item root(expr, max)
 Find an input value for which the function represented by @var{expr}
diff --git a/libavutil/eval.c b/libavutil/eval.c
index bad9e4ecb8..dc6b3697bc 100644
--- a/libavutil/eval.c
+++ b/libavutil/eval.c
@@ -162,7 +162,7 @@ struct AVExpr {
 e_last, e_st, e_while, e_taylor, e_root, e_floor, e_ceil, e_trunc, 
e_round,
 e_sqrt, e_not, e_random, e_hypot, e_gcd,
 e_if, e_ifnot, e_print, e_bitand, e_bitor, e_between, e_clip, e_atan2, 
e_lerp,
-e_sgn,
+e_sgn, e_randomi
 } type;
 double value; // is sign in other types
 int const_index;
@@ -228,12 +228,22 @@ static double eval_expr(Parser *p, AVExpr *e)
 av_log(p, level, "%f\n", x);
 return x;
 }
-case e_random:{
-int idx= av_clip(eval_expr(p, e->param[0]), 0, VARS-1);
-uint64_t r= isnan(p->var[idx]) ? 0 : p->var[idx];
-r= r*1664525+1013904223;
-p->var[idx]= r;
-return e->value * (r * (1.0/UINT64_MAX));
+
+#define COMPUTE_NEXT_RANDOM()\
+int idx = av_clip(eval_expr(p, e->param[0]), 0, VARS-1); \
+uint64_t r = isnan(p->var[idx]) ? 0 : p->var[idx];   \
+r = r * 1664525 + 1013904223;\
+p->var[idx] = r; \
+
+case e_random: {
+COMPUTE_NEXT_RANDOM();
+return r * (1.0/UINT64_MAX);
+}
+case e_randomi: {
+double min = eval_expr(p, e->param[1]);
+double max = eval_expr(p, e->param[2]);
+COMPUTE_NEXT_RANDOM();
+return min + (max - min) * r / UINT64_MAX;
 }
 case e_while: {
 double d = NAN;
@@ -461,6 +471,7 @@ static int parse_primary(AVExpr **e, Parser *p)
 else if (strmatch(next, "pow"   )) d->type = e_pow;
 else if (strmatch(next, "print" )) d->type = e_print;
 else if (strmatch(next, "random")) d->type = e_random;
+else if (strmatch(next, "randomi")) d->type = e_randomi;
 else if (strmatch(next, "hypot" )) d->type = e_hypot;
 else if (strmatch(next, "gcd"   )) d->type = e_gcd;
 else if (strmatch(next, "if")) d->type = e_if;
@@ -674,6 +685,7 @@ static int verify_expr(AVExpr *e)
 case e_between:
 case e_clip:
 case e_lerp:
+case e_randomi:
 return verify_expr(e->param[0]) &&
verify_expr(e->param[1]) &&
verify_expr(e->param[2]);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavfi: introduce textutils

2024-01-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Mon Nov 20 
01:13:17 2023 +0100| [732fb122e66cf4d0d9cec2eed00e088ea6a3b97d] | committer: 
Stefano Sabatini

lavfi: introduce textutils

Generalize drawtext utilities to make them usable in other filters.
This will be needed to introduce the QR code source and filter without
duplicating functionality.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=732fb122e66cf4d0d9cec2eed00e088ea6a3b97d
---

 libavfilter/Makefile  |   2 +-
 libavfilter/textutils.c   | 382 +
 libavfilter/textutils.h   | 229 
 libavfilter/vf_drawtext.c | 533 --
 4 files changed, 743 insertions(+), 403 deletions(-)

diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index afc7bc1566..badaa43859 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -291,7 +291,7 @@ OBJS-$(CONFIG_DOUBLEWEAVE_FILTER)+= vf_weave.o
 OBJS-$(CONFIG_DRAWBOX_FILTER)+= vf_drawbox.o
 OBJS-$(CONFIG_DRAWGRAPH_FILTER)  += f_drawgraph.o
 OBJS-$(CONFIG_DRAWGRID_FILTER)   += vf_drawbox.o
-OBJS-$(CONFIG_DRAWTEXT_FILTER)   += vf_drawtext.o
+OBJS-$(CONFIG_DRAWTEXT_FILTER)   += vf_drawtext.o textutils.o
 OBJS-$(CONFIG_EDGEDETECT_FILTER) += vf_edgedetect.o edge_common.o
 OBJS-$(CONFIG_ELBG_FILTER)   += vf_elbg.o
 OBJS-$(CONFIG_ENTROPY_FILTER)+= vf_entropy.o
diff --git a/libavfilter/textutils.c b/libavfilter/textutils.c
new file mode 100644
index 00..ef658d04a2
--- /dev/null
+++ b/libavfilter/textutils.c
@@ -0,0 +1,382 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * text expansion utilities
+ */
+
+#include 
+#include 
+#include 
+
+#include "textutils.h"
+#include "libavutil/avutil.h"
+#include "libavutil/error.h"
+#include "libavutil/file.h"
+#include "libavutil/time.h"
+
+static int ff_expand_text_function_internal(FFExpandTextContext *expand_text, 
AVBPrint *bp,
+char *name, unsigned argc, char 
**argv)
+{
+void *log_ctx = expand_text->log_ctx;
+FFExpandTextFunction *functions = expand_text->functions;
+unsigned i;
+
+for (i = 0; i < expand_text->functions_nb; i++) {
+if (strcmp(name, functions[i].name))
+continue;
+if (argc < functions[i].argc_min) {
+av_log(log_ctx, AV_LOG_ERROR, "%%{%s} requires at least %d 
arguments\n",
+   name, functions[i].argc_min);
+return AVERROR(EINVAL);
+}
+if (argc > functions[i].argc_max) {
+av_log(log_ctx, AV_LOG_ERROR, "%%{%s} requires at most %d 
arguments\n",
+   name, functions[i].argc_max);
+return AVERROR(EINVAL);
+}
+break;
+}
+if (i >= expand_text->functions_nb) {
+av_log(log_ctx, AV_LOG_ERROR, "%%{%s} is not known\n", name);
+return AVERROR(EINVAL);
+}
+
+return functions[i].func(log_ctx, bp, name, argc, argv);
+}
+
+/**
+ * Expand text template pointed to by *rtext.
+ *
+ * Expand text template defined in text using the logic defined in a text
+ * expander object.
+ *
+ * This function expects the text to be in the format 
%{FUNCTION_NAME[:PARAMS]},
+ * where PARAMS is a sequence of strings separated by : and represents the 
function
+ * arguments to use for the function evaluation.
+ *
+ * @param text_expander TextExpander object used to expand the text
+ * @param bp   BPrint object where the expanded text is written to
+ * @param rtext pointer to pointer to the text to expand, it is updated to 
point
+ * to the next part of the template to process
+ * @return negative value corresponding to an AVERROR error code in case of
+ * errors, a non-negative value otherwise
+ */
+static int ff_expand_text_function(FFExpandTextContext *expand_text, AVBPrint 
*bp, char **rtext)
+{
+void *log_ctx = expand_text->log_ctx;
+const char *text = *rtext;
+char *argv[16] = { NULL };
+unsigned argc = 0, i;
+int ret;
+
+if (*text != '{') {

[FFmpeg-cvslog] lavfi/setpts: use macro to access variables array

2024-01-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Dec 27 
20:12:51 2023 +0100| [933c7ff0b96f72e71155d91e66f726e0beb4e824] | committer: 
Stefano Sabatini

lavfi/setpts: use macro to access variables array

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=933c7ff0b96f72e71155d91e66f726e0beb4e824
---

 libavfilter/setpts.c | 94 +---
 1 file changed, 45 insertions(+), 49 deletions(-)

diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c
index d057fc91c4..88a8d6af86 100644
--- a/libavfilter/setpts.c
+++ b/libavfilter/setpts.c
@@ -103,6 +103,9 @@ typedef struct SetPTSContext {
 enum AVMediaType type;
 } SetPTSContext;
 
+#define V(name_) \
+setpts->var_values[VAR_##name_]
+
 static av_cold int init(AVFilterContext *ctx)
 {
 SetPTSContext *setpts = ctx->priv;
@@ -114,15 +117,15 @@ static av_cold int init(AVFilterContext *ctx)
 return ret;
 }
 
-setpts->var_values[VAR_N]   = 0.0;
-setpts->var_values[VAR_S]   = 0.0;
-setpts->var_values[VAR_PREV_INPTS]  = NAN;
-setpts->var_values[VAR_PREV_INT]= NAN;
-setpts->var_values[VAR_PREV_OUTPTS] = NAN;
-setpts->var_values[VAR_PREV_OUTT]   = NAN;
-setpts->var_values[VAR_STARTPTS]= NAN;
-setpts->var_values[VAR_STARTT]  = NAN;
-setpts->var_values[VAR_T_CHANGE]= NAN;
+V(N)   = 0.0;
+V(S)   = 0.0;
+V(PREV_INPTS)  = NAN;
+V(PREV_INT)= NAN;
+V(PREV_OUTPTS) = NAN;
+V(PREV_OUTT)   = NAN;
+V(STARTPTS)= NAN;
+V(STARTT)  = NAN;
+V(T_CHANGE)= NAN;
 return 0;
 }
 
@@ -132,22 +135,18 @@ static int config_input(AVFilterLink *inlink)
 SetPTSContext *setpts = ctx->priv;
 
 setpts->type = inlink->type;
-setpts->var_values[VAR_TB] = av_q2d(inlink->time_base);
-setpts->var_values[VAR_RTCSTART] = av_gettime();
+V(TB) = av_q2d(inlink->time_base);
+V(RTCSTART) = av_gettime();
 
-setpts->var_values[VAR_SR] =
-setpts->var_values[VAR_SAMPLE_RATE] =
+V(SR) = V(SAMPLE_RATE) =
 setpts->type == AVMEDIA_TYPE_AUDIO ? inlink->sample_rate : NAN;
 
-setpts->var_values[VAR_FRAME_RATE] =
-setpts->var_values[VAR_FR] = inlink->frame_rate.num &&
- inlink->frame_rate.den ?
-av_q2d(inlink->frame_rate) : NAN;
+V(FRAME_RATE) = V(FR) =
+inlink->frame_rate.num && inlink->frame_rate.den ?
+av_q2d(inlink->frame_rate) : NAN;
 
 av_log(inlink->src, AV_LOG_VERBOSE, "TB:%f FRAME_RATE:%f SAMPLE_RATE:%f\n",
-   setpts->var_values[VAR_TB],
-   setpts->var_values[VAR_FRAME_RATE],
-   setpts->var_values[VAR_SAMPLE_RATE]);
+   V(TB), V(FRAME_RATE), V(SAMPLE_RATE));
 return 0;
 }
 
@@ -162,28 +161,28 @@ static inline char *double2int64str(char *buf, double v)
 
 static double eval_pts(SetPTSContext *setpts, AVFilterLink *inlink, AVFrame 
*frame, int64_t pts)
 {
-if (isnan(setpts->var_values[VAR_STARTPTS])) {
-setpts->var_values[VAR_STARTPTS] = TS2D(pts);
-setpts->var_values[VAR_STARTT  ] = TS2T(pts, inlink->time_base);
+if (isnan(V(STARTPTS))) {
+V(STARTPTS) = TS2D(pts);
+V(STARTT  ) = TS2T(pts, inlink->time_base);
 }
-if (isnan(setpts->var_values[VAR_T_CHANGE])) {
-setpts->var_values[VAR_T_CHANGE] = TS2T(pts, inlink->time_base);
+if (isnan(V(T_CHANGE))) {
+V(T_CHANGE) = TS2T(pts, inlink->time_base);
 }
-setpts->var_values[VAR_PTS   ] = TS2D(pts);
-setpts->var_values[VAR_T ] = TS2T(pts, inlink->time_base);
+V(PTS   ) = TS2D(pts);
+V(T ) = TS2T(pts, inlink->time_base);
 #if FF_API_FRAME_PKT
 FF_DISABLE_DEPRECATION_WARNINGS
-setpts->var_values[VAR_POS   ] = !frame || frame->pkt_pos == -1 ? NAN 
: frame->pkt_pos;
+V(POS   ) = !frame || frame->pkt_pos == -1 ? NAN : frame->pkt_pos;
 FF_ENABLE_DEPRECATION_WARNINGS
 #endif
-setpts->var_values[VAR_RTCTIME   ] = av_gettime();
+V(RTCTIME   ) = av_gettime();
 
 if (frame) {
 if (inlink->type == AVMEDIA_TYPE_VIDEO) {
-setpts->var_values[VAR_INTERLACED] = !!(frame->flags & 
AV_FRAME_FLAG_INTERLACED);
+V(INTERLACED) = !!(frame->flags & AV_FRAME_FLAG_INTERLACED);
 } else if (inlink->type == AVMEDIA_TYPE_AUDIO) {
-setpts->var_values[VAR_S] = frame->nb_samples;
-setpts->var_values[VAR_NB_SAMPLES] = frame->nb_samples;
+V(S) = frame->nb_samples;
+V(NB_SAMPLES) = frame->nb_samples;
 }
 }
 
@@ -202,34 +201,32 @@ static int filter_frame(AVFilterLink *inlink, AVFrame 
*frame)
 
 av_log(inlink->dst, AV_LOG_T

[FFmpeg-cvslog] lavfi/overlay: factorize definition of planar and packed blending functions

2024-01-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Dec 16 
15:24:02 2023 +0100| [c2ab41b7e0b9bc700f6a4814f629ac52962e0025] | committer: 
Stefano Sabatini

lavfi/overlay: factorize definition of planar and packed blending functions

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c2ab41b7e0b9bc700f6a4814f629ac52962e0025
---

 libavfilter/vf_overlay.c | 260 ++-
 1 file changed, 53 insertions(+), 207 deletions(-)

diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c
index fa39abb23a..fb645f2b58 100644
--- a/libavfilter/vf_overlay.c
+++ b/libavfilter/vf_overlay.c
@@ -690,213 +690,59 @@ static av_always_inline void 
blend_slice_planar_rgb(AVFilterContext *ctx,
 alpha_composite_8_8bits(src, dst, src_w, src_h, dst_w, dst_h, x, y, 
jobnr, nb_jobs);
 }
 
-static int blend_slice_yuv420(AVFilterContext *ctx, void *arg, int jobnr, int 
nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_8_8bits(ctx, td->dst, td->src, 1, 1, 0, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuva420(AVFilterContext *ctx, void *arg, int jobnr, int 
nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_8_8bits(ctx, td->dst, td->src, 1, 1, 1, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuv420p10(AVFilterContext *ctx, void *arg, int jobnr, 
int nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_16_10bits(ctx, td->dst, td->src, 1, 1, 0, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuva420p10(AVFilterContext *ctx, void *arg, int jobnr, 
int nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_16_10bits(ctx, td->dst, td->src, 1, 1, 1, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuv422p10(AVFilterContext *ctx, void *arg, int jobnr, 
int nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_16_10bits(ctx, td->dst, td->src, 1, 0, 0, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuva422p10(AVFilterContext *ctx, void *arg, int jobnr, 
int nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_16_10bits(ctx, td->dst, td->src, 1, 0, 1, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuv422(AVFilterContext *ctx, void *arg, int jobnr, int 
nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_8_8bits(ctx, td->dst, td->src, 1, 0, 0, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuva422(AVFilterContext *ctx, void *arg, int jobnr, int 
nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_8_8bits(ctx, td->dst, td->src, 1, 0, 1, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuv444(AVFilterContext *ctx, void *arg, int jobnr, int 
nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_8_8bits(ctx, td->dst, td->src, 0, 0, 0, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuva444(AVFilterContext *ctx, void *arg, int jobnr, int 
nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_8_8bits(ctx, td->dst, td->src, 0, 0, 1, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuv444p10(AVFilterContext *ctx, void *arg, int jobnr, 
int nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_16_10bits(ctx, td->dst, td->src, 0, 0, 0, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuva444p10(AVFilterContext *ctx, void *arg, int jobnr, 
int nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_yuv_16_10bits(ctx, td->dst, td->src, 0, 0, 1, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_gbrp(AVFilterContext *ctx, void *arg, int jobnr, int 
nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_planar_rgb(ctx, td->dst, td->src, 0, 0, 0, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_gbrap(AVFilterContext *ctx, void *arg, int jobnr, int 
nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData *td = arg;
-blend_slice_planar_rgb(ctx, td->dst, td->src, 0, 0, 1, s->x, s->y, 1, 
jobnr, nb_jobs);
-return 0;
-}
-
-static int blend_slice_yuv420_pm(AVFilterContext *ctx, void *arg, int jobnr, 
int nb_jobs)
-{
-OverlayContext *s = ctx->priv;
-ThreadData 

[FFmpeg-cvslog] lavfi: add qrencode source and filter

2024-01-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Nov 28 
23:58:15 2023 +0100| [899302bb5f6ac0484fedc2865ee3beca021eba85] | committer: 
Stefano Sabatini

lavfi: add qrencode source and filter

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=899302bb5f6ac0484fedc2865ee3beca021eba85
---

 Changelog|   1 +
 configure|   7 +
 doc/filters.texi | 427 
 libavfilter/Makefile |   2 +
 libavfilter/allfilters.c |   2 +
 libavfilter/qrencode.c   | 820 +++
 6 files changed, 1259 insertions(+)

diff --git a/Changelog b/Changelog
index a638c03250..b483bb9c69 100644
--- a/Changelog
+++ b/Changelog
@@ -13,6 +13,7 @@ version :
 - IAMF raw demuxer and muxer
 - D3D12VA hardware accelerated H264, HEVC, VP9, AV1, MPEG-2 and VC1 decoding
 - tiltandshift filter
+- qrencode filter and qrencodesrc source
 
 version 6.1:
 - libaribcaption decoder
diff --git a/configure b/configure
index 037c08afff..b1853204ef 100755
--- a/configure
+++ b/configure
@@ -256,6 +256,7 @@ External library support:
   --enable-libopus enable Opus de/encoding via libopus [no]
   --enable-libplacebo  enable libplacebo library [no]
   --enable-libpulseenable Pulseaudio input via libpulse [no]
+  --enable-libqrencode enable QR encode generation via libqrencode [no]
   --enable-librabbitmq enable RabbitMQ library [no]
   --enable-librav1eenable AV1 encoding via rav1e [no]
   --enable-librist enable RIST via librist [no]
@@ -1881,6 +1882,7 @@ EXTERNAL_LIBRARY_LIST="
 libopus
 libplacebo
 libpulse
+libqrencode
 librabbitmq
 librav1e
 librist
@@ -3789,6 +3791,8 @@ nnedi_filter_deps="gpl"
 ocr_filter_deps="libtesseract"
 ocv_filter_deps="libopencv"
 openclsrc_filter_deps="opencl"
+qrencode_filter_deps="libqrencode"
+qrencodesrc_filter_deps="libqrencode"
 overlay_opencl_filter_deps="opencl"
 overlay_qsv_filter_deps="libmfx"
 overlay_qsv_filter_select="qsvvpp"
@@ -6840,6 +6844,7 @@ enabled libopus   && {
 }
 enabled libplacebo&& require_pkg_config libplacebo "libplacebo >= 
4.192.0" libplacebo/vulkan.h pl_vulkan_create
 enabled libpulse  && require_pkg_config libpulse libpulse 
pulse/pulseaudio.h pa_context_new
+enabled libqrencode   && require_pkg_config libqrencode libqrencode 
qrencode.h QRcode_encodeString
 enabled librabbitmq   && require_pkg_config librabbitmq "librabbitmq >= 
0.7.1" amqp.h amqp_new_connection
 enabled librav1e  && require_pkg_config librav1e "rav1e >= 0.5.0" 
rav1e.h rav1e_context_new
 enabled librist   && require_pkg_config librist "librist >= 0.2.7" 
librist/librist.h rist_receiver_create
@@ -7668,6 +7673,8 @@ enabled mcdeint_filter  && prepend avfilter_deps 
"avcodec"
 enabled movie_filter&& prepend avfilter_deps "avformat avcodec"
 enabled pan_filter  && prepend avfilter_deps "swresample"
 enabled pp_filter   && prepend avfilter_deps "postproc"
+enabled qrencode_filter && prepend_avfilter_deps "swscale"
+enabled qrencodesrc_filter  && prepend_avfilter_deps "swscale"
 enabled removelogo_filter   && prepend avfilter_deps "avformat avcodec swscale"
 enabled sab_filter  && prepend avfilter_deps "swscale"
 enabled scale_filter&& prepend avfilter_deps "swscale"
diff --git a/doc/filters.texi b/doc/filters.texi
index a63a635ec8..9b120ce0a1 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -20096,6 +20096,302 @@ qp=2+2*sin(PI*qp)
 @end example
 @end itemize
 
+@section qrencode
+Generate a QR code using the libqrencode library (see
+@url{https://fukuchi.org/works/qrencode/}), and overlay it on top of the 
current
+frame.
+
+To enable the compilation of this filter, you need to configure FFmpeg with 
with
+@code{--enable-libqrencode}.
+
+The QR code is generated from the provided text or text pattern. The
+corresponding QR code is scaled and overlayed into the video output according 
to
+the specified options.
+
+In case no text is specified, no QR code is overlaied.
+
+This filter accepts the following options:
+
+@table @option
+
+@item qrcode_width, q
+@item padded_qrcode_width, Q
+Specify an expression for the width of the rendered QR code, with and without
+padding. The @var{qrcode_width} expression can reference the value set by the
+@var{padded_qrcode_width} expression, and vice versa.
+By default @var{padded_qrcode_width} is set to @var{qrcode_width}, meaning that
+there is no padding.
+
+These expressions are evaluated for each new frame.
+
+See the @ref{qrencode_expressions,,qrencode Express

[FFmpeg-cvslog] lavfi: add quirc filter

2024-01-02 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Tue Dec 26 
16:19:10 2023 +0100| [030e1401451200566a5303f35cbe1456e31dd81e] | committer: 
Stefano Sabatini

lavfi: add quirc filter

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=030e1401451200566a5303f35cbe1456e31dd81e
---

 Changelog|   1 +
 configure|   4 ++
 doc/filters.texi |  28 
 libavfilter/Makefile |   1 +
 libavfilter/allfilters.c |   1 +
 libavfilter/vf_quirc.c   | 183 +++
 6 files changed, 218 insertions(+)

diff --git a/Changelog b/Changelog
index b483bb9c69..424bfc11af 100644
--- a/Changelog
+++ b/Changelog
@@ -14,6 +14,7 @@ version :
 - D3D12VA hardware accelerated H264, HEVC, VP9, AV1, MPEG-2 and VC1 decoding
 - tiltandshift filter
 - qrencode filter and qrencodesrc source
+- quirc filter
 
 version 6.1:
 - libaribcaption decoder
diff --git a/configure b/configure
index b1853204ef..dc400db176 100755
--- a/configure
+++ b/configure
@@ -257,6 +257,7 @@ External library support:
   --enable-libplacebo  enable libplacebo library [no]
   --enable-libpulseenable Pulseaudio input via libpulse [no]
   --enable-libqrencode enable QR encode generation via libqrencode [no]
+  --enable-libquircenable QR decoding via libquirc [no]
   --enable-librabbitmq enable RabbitMQ library [no]
   --enable-librav1eenable AV1 encoding via rav1e [no]
   --enable-librist enable RIST via librist [no]
@@ -1883,6 +1884,7 @@ EXTERNAL_LIBRARY_LIST="
 libplacebo
 libpulse
 libqrencode
+libquirc
 librabbitmq
 librav1e
 librist
@@ -3793,6 +3795,7 @@ ocv_filter_deps="libopencv"
 openclsrc_filter_deps="opencl"
 qrencode_filter_deps="libqrencode"
 qrencodesrc_filter_deps="libqrencode"
+quirc_filter_deps="libquirc"
 overlay_opencl_filter_deps="opencl"
 overlay_qsv_filter_deps="libmfx"
 overlay_qsv_filter_select="qsvvpp"
@@ -6845,6 +6848,7 @@ enabled libopus   && {
 enabled libplacebo&& require_pkg_config libplacebo "libplacebo >= 
4.192.0" libplacebo/vulkan.h pl_vulkan_create
 enabled libpulse  && require_pkg_config libpulse libpulse 
pulse/pulseaudio.h pa_context_new
 enabled libqrencode   && require_pkg_config libqrencode libqrencode 
qrencode.h QRcode_encodeString
+enabled libquirc  && require libquirc quirc.h quirc_decode -lquirc
 enabled librabbitmq   && require_pkg_config librabbitmq "librabbitmq >= 
0.7.1" amqp.h amqp_new_connection
 enabled librav1e  && require_pkg_config librav1e "rav1e >= 0.5.0" 
rav1e.h rav1e_context_new
 enabled librist   && require_pkg_config librist "librist >= 0.2.7" 
librist/librist.h rist_receiver_create
diff --git a/doc/filters.texi b/doc/filters.texi
index 9b120ce0a1..f54359d533 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -20392,6 +20392,34 @@ qrencode=text=%@{pts@}
 
 @end itemize
 
+@section quirc
+
+Identify and decode a QR code using the libquirc library (see
+@url{https://github.com/dlbeer/quirc/}), and print the identified QR codes
+positions and payload as metadata.
+
+To enable the compilation of this filter, you need to configure FFmpeg with 
with
+@code{--enable-libquirc}.
+
+For each found QR code in the input video, some metadata entries are added with
+the prefix @var{lavfi.quirc.N}, where @var{N} is the index, starting from 0,
+associated to the QR code.
+
+A description of each metadata value follows:
+
+@table @option
+@item lavfi.quirc.count
+the number of found QR codes, it is not set in case none was found
+
+@item lavfi.quirc.N.corner.M.x
+@item lavfi.quirc.N.coreer.M.y
+the x/y positions of the four corners of the square containing the QR code,
+where @var{M} is the index of the corner starting from 0
+
+@item lavfi.quirc.N.payload
+the payload of the QR code
+@end table
+
 @section random
 
 Flush video frames from internal cache of frames into a random order.
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 31371ceb1a..f65fb9a5a7 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -437,6 +437,7 @@ OBJS-$(CONFIG_PSEUDOCOLOR_FILTER)+= 
vf_pseudocolor.o
 OBJS-$(CONFIG_PSNR_FILTER)   += vf_psnr.o framesync.o
 OBJS-$(CONFIG_PULLUP_FILTER) += vf_pullup.o
 OBJS-$(CONFIG_QP_FILTER) += vf_qp.o
+OBJS-$(CONFIG_QUIRC_FILTER)  += vf_quirc.o
 OBJS-$(CONFIG_RANDOM_FILTER) += vf_random.o
 OBJS-$(CONFIG_READEIA608_FILTER) += vf_readeia608.o
 OBJS-$(CONFIG_READVITC_FILTER)   += vf_readvitc.o
diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c
index 20feb37967..b8570dbab2 100644
--- a/libavfilter/allfilters.c
+++ b/libavfilter/allfilters.c
@@

[FFmpeg-cvslog] doc/encoders/libx264: review and extend option description

2023-12-03 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Aug 26 
01:10:09 2023 +0200| [ddecc39c393bb101b9620c061f073aa852c9a3ac] | committer: 
Stefano Sabatini

doc/encoders/libx264: review and extend option description

Also, merge x264opts and x264-opts option docs to avoid duplication
and make it clearer that they provide mostly the same functionality.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ddecc39c393bb101b9620c061f073aa852c9a3ac
---

 doc/encoders.texi | 65 ++-
 1 file changed, 36 insertions(+), 29 deletions(-)

diff --git a/doc/encoders.texi b/doc/encoders.texi
index 27a9acf076..93586e1aae 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -2421,6 +2421,10 @@ To get a more accurate and extensive documentation of 
the libx264
 options, invoke the command @command{x264 --fullhelp} or consult
 the libx264 documentation.
 
+In the list below, note that the @command{x264} option name is shown
+in parentheses after the libavcodec corresponding name, in case there
+is a direct mapping.
+
 @table @option
 @item b (@emph{bitrate})
 Set bitrate in bits/s. Note that FFmpeg's @option{b} option is
@@ -2428,17 +2432,19 @@ expressed in bits/s, while @command{x264}'s 
@option{bitrate} is in
 kilobits/s.
 
 @item bf (@emph{bframes})
+Number of B-frames between I and P-frames
 
 @item g (@emph{keyint})
+Maximum GOP size
 
 @item qmin (@emph{qpmin})
-Minimum quantizer scale.
+Minimum quantizer scale
 
 @item qmax (@emph{qpmax})
-Maximum quantizer scale.
+Maximum quantizer scale
 
 @item qdiff (@emph{qpstep})
-Maximum difference between quantizer scales.
+Maximum difference between quantizer scales
 
 @item qblur (@emph{qblur})
 Quantizer curve blur
@@ -2447,7 +2453,7 @@ Quantizer curve blur
 Quantizer curve compression factor
 
 @item refs (@emph{ref})
-Number of reference frames each P-frame can use. The range is from @var{0-16}.
+Number of reference frames each P-frame can use. The range is @var{0-16}.
 
 @item level (@emph{level})
 Set the @code{x264_param_t.i_level_idc} value in case the value is
@@ -2469,7 +2475,8 @@ Sets the threshold for the scene change detection.
 @item trellis (@emph{trellis})
 Performs Trellis quantization to increase efficiency. Enabled by default.
 
-@item nr  (@emph{nr})
+@item nr (@emph{nr})
+Noise reduction
 
 @item me_range (@emph{merange})
 Maximum range of the motion search in pixels.
@@ -2550,6 +2557,7 @@ open GOP by setting it to @code{-cgop}. The result is 
similar to
 the behavior of @command{x264}'s @option{--open-gop} option.
 
 @item rc_init_occupancy (@emph{vbv-init})
+Initial VBV buffer occupancy
 
 @item preset (@emph{preset})
 Set the encoding preset.
@@ -2595,7 +2603,7 @@ Set AQ strength, reduce blocking and blurring in flat and 
textured areas.
 Use psychovisual optimizations when set to 1. When set to 0, it has the
 same effect as @command{x264}'s @option{--no-psy} option.
 
-@item psy-rd  (@emph{psy-rd})
+@item psy-rd (@emph{psy-rd})
 Set strength of psychovisual optimization, in
 @var{psy-rd}:@var{psy-trellis} format.
 
@@ -2627,7 +2635,7 @@ to 1.
 
 @item avcintra-class (@emph{class})
 Configure the encoder to generate AVC-Intra.
-Valid values are 50,100 and 200
+Valid values are 50, 100 and 200
 
 @item bluray-compat (@emph{bluray-compat})
 Configure the encoder to be compatible with the bluray standard.
@@ -2678,8 +2686,8 @@ Set loop filter parameters, in @var{alpha}:@var{beta} 
form.
 Set fluctuations reduction in QP (before curve compression).
 
 @item partitions (@emph{partitions})
-Set partitions to consider as a comma-separated list of. Possible
-values in the list:
+Set partitions to consider as a comma-separated list of values.
+Possible values in the list:
 
 @table @samp
 @item p8x8
@@ -2735,19 +2743,32 @@ Variable bit rate.
 Constant bit rate (not allowed in MP4 container).
 @end table
 
-@item x264opts (N.A.)
-Set any x264 option, see @command{x264 --fullhelp} for a list.
+@item x264opts @var{opts}
+@item x264-params @var{opts}
+Override the x264 configuration using a :-separated list of key=value
+options.
 
-Argument is a list of @var{key}=@var{value} couples separated by
-":". In @var{filter} and @var{psy-rd} options that use ":" as a separator
-themselves, use "," instead. They accept it as well since long ago but this
-is kept undocumented for some reason.
+The argument for both options is a list of @var{key}=@var{value}
+couples separated by ":". With @option{x264opts} the value can be
+omitted, and the value @code{1} is assumed in that case.
+
+For @var{filter} and @var{psy-rd} options values that use ":" as a
+separator themselves, use "," instead. They accept it as well since
+long ago but this is kept undocumented for some reason.
+
+For example, the options might be provided as:
+@example
+level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=um

[FFmpeg-cvslog] ffprobe: add -output_format as an alias of -of

2023-10-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sun Oct 15 
11:25:23 2023 +0200| [7bf414408e4f07c0f48d452e014b630165287f94] | committer: 
Stefano Sabatini

ffprobe: add -output_format as an alias of -of

Currently we have -of and -print_format, which is a bit confusing. Add
-output_format as an alias of -of to match the short name.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7bf414408e4f07c0f48d452e014b630165287f94
---

 Changelog |  1 +
 doc/ffprobe.texi  |  6 +++---
 fftools/ffprobe.c | 17 +
 3 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/Changelog b/Changelog
index 259180e190..cceee46215 100644
--- a/Changelog
+++ b/Changelog
@@ -37,6 +37,7 @@ version :
 - VAAPI AV1 encoder
 - ffprobe XML output schema changed to account for multiple
   variable-fields elements within the same parent element
+- ffprobe -output_format option added as an alias of -of
 
 
 version 6.0:
diff --git a/doc/ffprobe.texi b/doc/ffprobe.texi
index 4dc9f577bb..b74ff650ac 100644
--- a/doc/ffprobe.texi
+++ b/doc/ffprobe.texi
@@ -41,7 +41,7 @@ ffprobe will show it.
 
 ffprobe output is designed to be easily parsable by a textual filter,
 and consists of one or more sections of a form defined by the selected
-writer, which is specified by the @option{print_format} option.
+writer, which is specified by the @option{output_format} option.
 
 Sections may contain other nested sections, and are identified by a
 name (which may be shared by other sections), and an unique
@@ -83,7 +83,7 @@ Use sexagesimal format HH:MM:SS.MICROSECONDS for time values.
 Prettify the format of the displayed values, it corresponds to the
 options "-unit -prefix -byte_binary_prefix -sexagesimal".
 
-@item -of, -print_format @var{writer_name}[=@var{writer_options}]
+@item -output_format, -of, -print_format 
@var{writer_name}[=@var{writer_options}]
 Set the output printing format.
 
 @var{writer_name} specifies the name of the writer, and
@@ -91,7 +91,7 @@ Set the output printing format.
 
 For example for printing the output in JSON format, specify:
 @example
--print_format json
+-output_format json
 @end example
 
 For more details on the available output printing formats, see the
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 1e76a6e3af..c185cd823b 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -140,7 +140,7 @@ static int show_private_data= 1;
 #define SHOW_OPTIONAL_FIELDS_ALWAYS  1
 static int show_optional_fields = SHOW_OPTIONAL_FIELDS_AUTO;
 
-static char *print_format;
+static char *output_format;
 static char *stream_specifier;
 static char *show_data_hash;
 
@@ -4086,9 +4086,10 @@ static const OptionDef real_options[] = {
   "use sexagesimal format HOURS:MM:SS.MICROSECONDS for time units" },
 { "pretty", 0, {.func_arg = opt_pretty},
   "prettify the format of displayed values, make it more human readable" },
-{ "print_format", OPT_STRING | HAS_ARG, { &print_format },
+{ "output_format", OPT_STRING | HAS_ARG, { &output_format },
   "set the output printing format (available formats are: default, 
compact, csv, flat, ini, json, xml)", "format" },
-{ "of", OPT_STRING | HAS_ARG, { &print_format }, "alias for 
-print_format", "format" },
+{ "print_format", OPT_STRING | HAS_ARG, { &output_format }, "alias for 
-output_format (deprecated)" },
+{ "of", OPT_STRING | HAS_ARG, { &output_format }, "alias for 
-output_format", "format" },
 { "select_streams", OPT_STRING | HAS_ARG, { &stream_specifier }, "select 
the specified streams", "stream_specifier" },
 { "sections", OPT_EXIT, {.func_arg = opt_sections}, "print sections 
structure and section information, and exit" },
 { "show_data",OPT_BOOL, { &do_show_data }, "show packets data" },
@@ -4209,13 +4210,13 @@ int main(int argc, char **argv)
 
 writer_register_all();
 
-if (!print_format)
-print_format = av_strdup("default");
-if (!print_format) {
+if (!output_format)
+output_format = av_strdup("default");
+if (!output_format) {
 ret = AVERROR(ENOMEM);
 goto end;
 }
-w_name = av_strtok(print_format, "=", &buf);
+w_name = av_strtok(output_format, "=", &buf);
 if (!w_name) {
 av_log(NULL, AV_LOG_ERROR,
"No name specified for the output format\n");
@@ -4284,7 +4285,7 @@ int main(int argc, char **argv)
 }
 
 end:
-av_freep(&print_format);
+av_freep(&output_format);
 av_freep(&read_intervals);
 av_hash_freep(&hash);
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/ffprobe.xsd: apply consistent indent

2023-10-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Thu Oct 19 
00:25:47 2023 +0200| [0d11a6bc1219335e61af8b3abcdf2f4dd904eb20] | committer: 
Stefano Sabatini

doc/ffprobe.xsd: apply consistent indent

Use 2-spaces indent all over the file.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0d11a6bc1219335e61af8b3abcdf2f4dd904eb20
---

 doc/ffprobe.xsd | 808 
 1 file changed, 404 insertions(+), 404 deletions(-)

diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index aa2e870f70..d6826ff038 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -1,408 +1,408 @@
 
 
 http://www.w3.org/2001/XMLSchema";
-targetNamespace="http://www.ffmpeg.org/schema/ffprobe";
-xmlns:ffprobe="http://www.ffmpeg.org/schema/ffprobe";>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  
-
-  
-
-
-
-  
-
-
-  
-
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  
-
-
-
-  
-
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-
-  
-  
-  
-  
-  
-
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  
-  
-  
-  
-  
-  
-  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-
-
-
-  
-
-
-
-  
-
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-
-  
-  
-  
-  
-  
-  
-  
-
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-
-
-
-  
-
-
-  
-
-  
-  
-  
-  
-  
-
-
-
-  
-
-  
-
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-
-
-
-  
-  
-
-
-
-  
-  
-
-
-
-  
-  
-  
-  
-  
-  
-
-
-
-  
-
-  
-
-
-
-  
-
-  
-
-  
-  
-  
-  
-  
-  
-
-
-
-  
-  
-  
-  
-  
-  
-
-
-
-
-  
-
-
-
-
-  
-  
-  
-  
-  
-  
-  
-
-
-
-  
-  
-
-
-
-  
-
-  
-
-
-
-  
-
-
-  
-
-  
-  
-  
-  
-  
-
-
-
-  
-
-  
-
+targetNamespace="http://www.ffmpeg.org/schema/ffprobe";
+xmlns:ffpr

[FFmpeg-cvslog] ffprobe: fix XML rendering, review XML layout

2023-10-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Fri Oct 13 
02:06:21 2023 +0200| [2b0973dedb257f971d29d64dbf8b89cdb47442c9] | committer: 
Stefano Sabatini

ffprobe: fix XML rendering, review XML layout

Fix rendering of int values within a side data element, which was
broken since commit d2d3a83ad93, where the side data element was
correctly marked as a variable fields element. Logic to render a
string variable was implemented already, but it was not implemented
for the int fields path, which was enabled by that commit.

Also, code and schema is changed in order to account for multiple
variable-fields elements - such as side data, contained within the
same parent. Previously it was assumed that a single variable-fields
element was contained within the parent, which was the case for tags,
but is not the case for side-data.

Previously data was rendered as:




Now as:

   
   
   
   
   
   
   
   


Variable-fields elements are rendered as a containing element wrapping
generic key/values elements, enabling use of strict XML schema.

Fix trac issue:
https://trac.ffmpeg.org/ticket/10613

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2b0973dedb257f971d29d64dbf8b89cdb47442c9
---

 Changelog|2 +
 doc/ffprobe.xsd  |   31 +-
 fftools/ffprobe.c|   51 +-
 tests/ref/fate/ffprobe_xml   |   26 +-
 tests/ref/fate/ffprobe_xsd   |   26 +-
 tests/ref/fate/flv-demux |4 +-
 tests/ref/fate/gapless-mp3-side-data |6 +-
 tests/ref/fate/mov-aac-2048-priming  |2 +-
 tests/ref/fate/mov-zombie|  132 ++---
 tests/ref/fate/oggopus-demux |4 +-
 tests/ref/fate/ts-demux  |   38 +-
 tests/ref/fate/ts-opus-demux | 1024 +-
 tests/ref/fate/ts-small-demux|  146 ++---
 tests/ref/fate/ts-timed-id3-demux|4 +-
 14 files changed, 776 insertions(+), 720 deletions(-)

Diff:   
http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commitdiff;h=2b0973dedb257f971d29d64dbf8b89cdb47442c9
___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] ffprobe: reindent after 2b0973d

2023-10-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Wed Oct 18 
23:31:43 2023 +0200| [9dc834e71f190928ed773678375d6296bd680807] | committer: 
Stefano Sabatini

ffprobe: reindent after 2b0973d

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9dc834e71f190928ed773678375d6296bd680807
---

 fftools/ffprobe.c | 34 +-
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index a0dd7db4ce..01eb02de3f 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -1819,26 +1819,26 @@ static void xml_print_section_header(WriterContext 
*wctx, void *data)
 writer_put_str(wctx, ">\n");
 }
 
-if (parent_section && (parent_section->flags & 
SECTION_FLAG_IS_WRAPPER) &&
-wctx->level && wctx->nb_item[wctx->level-1])
-writer_w8(wctx, '\n');
-xml->indent_level++;
+if (parent_section && (parent_section->flags & SECTION_FLAG_IS_WRAPPER) &&
+wctx->level && wctx->nb_item[wctx->level-1])
+writer_w8(wctx, '\n');
+xml->indent_level++;
 
-if (section->flags & 
(SECTION_FLAG_IS_ARRAY|SECTION_FLAG_HAS_VARIABLE_FIELDS)) {
-XML_INDENT(); writer_printf(wctx, "<%s", section->name);
+if (section->flags & 
(SECTION_FLAG_IS_ARRAY|SECTION_FLAG_HAS_VARIABLE_FIELDS)) {
+XML_INDENT(); writer_printf(wctx, "<%s", section->name);
 
-if (section->flags & SECTION_FLAG_HAS_TYPE) {
-AVBPrint buf;
-av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
-av_bprint_escape(&buf, section->get_type(data), NULL,
- AV_ESCAPE_MODE_XML, 
AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES);
-writer_printf(wctx, " type=\"%s\"", buf.str);
-}
-writer_printf(wctx, ">\n", section->name);
-} else {
-XML_INDENT(); writer_printf(wctx, "<%s ", section->name);
-xml->within_tag = 1;
+if (section->flags & SECTION_FLAG_HAS_TYPE) {
+AVBPrint buf;
+av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
+av_bprint_escape(&buf, section->get_type(data), NULL,
+ AV_ESCAPE_MODE_XML, 
AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES);
+writer_printf(wctx, " type=\"%s\"", buf.str);
 }
+writer_printf(wctx, ">\n", section->name);
+} else {
+XML_INDENT(); writer_printf(wctx, "<%s ", section->name);
+xml->within_tag = 1;
+}
 }
 
 static void xml_print_section_footer(WriterContext *wctx)

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] ffprobe: factorize xml_print_str and xml_print_int

2023-10-20 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Thu Oct 19 
00:23:10 2023 +0200| [bf84ec004971f27d3039d0b23b3a6e018f36ed34] | committer: 
Stefano Sabatini

ffprobe: factorize xml_print_str and xml_print_int

Introduce xml_print_value to avoid logic duplication.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bf84ec004971f27d3039d0b23b3a6e018f36ed34
---

 fftools/ffprobe.c | 48 
 1 file changed, 20 insertions(+), 28 deletions(-)

diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 01eb02de3f..1e76a6e3af 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -1858,7 +1858,7 @@ static void xml_print_section_footer(WriterContext *wctx)
 }
 }
 
-static void xml_print_str(WriterContext *wctx, const char *key, const char 
*value)
+static void xml_print_value(WriterContext *wctx, const char *key, const void 
*value, const int is_int)
 {
 AVBPrint buf;
 XMLContext *xml = wctx->priv;
@@ -1875,44 +1875,36 @@ static void xml_print_str(WriterContext *wctx, const 
char *key, const char *valu
   section->element_name, buf.str);
 av_bprint_clear(&buf);
 
-av_bprint_escape(&buf, value, NULL,
- AV_ESCAPE_MODE_XML, AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES);
-writer_printf(wctx, " value=\"%s\"/>\n", buf.str);
+if (is_int) {
+writer_printf(wctx, " value=\"%lld\"/>\n", *(long long int 
*)value);
+} else {
+av_bprint_escape(&buf, (const char *)value, NULL,
+ AV_ESCAPE_MODE_XML, 
AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES);
+writer_printf(wctx, " value=\"%s\"/>\n", buf.str);
+}
 xml->indent_level--;
 } else {
 if (wctx->nb_item[wctx->level])
 writer_w8(wctx, ' ');
 
-av_bprint_escape(&buf, value, NULL,
- AV_ESCAPE_MODE_XML, AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES);
-writer_printf(wctx, "%s=\"%s\"", key, buf.str);
+if (is_int) {
+writer_printf(wctx, "%s=\"%lld\"", key, *(long long int *)value);
+} else {
+av_bprint_escape(&buf, (const char *)value, NULL,
+ AV_ESCAPE_MODE_XML, 
AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES);
+writer_printf(wctx, "%s=\"%s\"", key, buf.str);
+}
 }
 
 av_bprint_finalize(&buf, NULL);
 }
 
-static void xml_print_int(WriterContext *wctx, const char *key, long long int 
value)
-{
-XMLContext *xml = wctx->priv;
-const struct section *section = wctx->section[wctx->level];
-
-if (section->flags & SECTION_FLAG_HAS_VARIABLE_FIELDS) {
-AVBPrint buf;
-av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
+static inline void xml_print_str(WriterContext *wctx, const char *key, const 
char *value) {
+xml_print_value(wctx, key, (const void *)value, 0);
+}
 
-xml->indent_level++;
-XML_INDENT();
-av_bprint_escape(&buf, key, NULL,
- AV_ESCAPE_MODE_XML, AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES);
-writer_printf(wctx, "<%s key=\"%s\"",
-  section->element_name, buf.str);
-writer_printf(wctx, " value=\"%lld\"/>\n", value);
-xml->indent_level--;
-} else {
-if (wctx->nb_item[wctx->level])
-writer_w8(wctx, ' ');
-writer_printf(wctx, "%s=\"%lld\"", key, value);
-}
+static inline void xml_print_int(WriterContext *wctx, const char *key, long 
long int value) {
+xml_print_value(wctx, key, (const void *)&value, 1);
 }
 
 static Writer xml_writer = {

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/encoders/libopus: clarify lowdelay and cutoff options

2023-10-06 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Aug 26 
15:45:33 2023 +0200| [00eb4966aa8a71a70c4758254027fdc6925f8f86] | committer: 
Stefano Sabatini

doc/encoders/libopus: clarify lowdelay and cutoff options

Extend descriptions for the application=lowdelay and cutoff options.
Based on notes by Mingye Wang.

Address issues:
http://trac.ffmpeg.org/ticket/10330
http://trac.ffmpeg.org/ticket/10343

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=00eb4966aa8a71a70c4758254027fdc6925f8f86
---

 doc/encoders.texi   | 7 +--
 libavcodec/libopusenc.c | 2 +-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/doc/encoders.texi b/doc/encoders.texi
index a6fef8a8f4..8b2ab937d1 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -977,14 +977,17 @@ Favor improved speech intelligibility.
 @item audio
 Favor faithfulness to the input (the default).
 @item lowdelay
-Restrict to only the lowest delay modes.
+Restrict to only the lowest delay modes by disabling voice-optimized
+modes.
 @end table
 
 @item cutoff (N.A.)
 Set cutoff bandwidth in Hz. The argument must be exactly one of the
 following: 4000, 6000, 8000, 12000, or 2, corresponding to
 narrowband, mediumband, wideband, super wideband, and fullband
-respectively. The default is 0 (cutoff disabled).
+respectively. The default is 0 (cutoff disabled). Note that libopus
+forces a wideband cutoff for bitrates < 15 kbps, unless CELT-only
+(@option{application} set to @samp{lowdelay}) mode is used.
 
 @item mapping_family (@emph{mapping_family})
 Set channel mapping family to be used by the encoder. The default value of -1
diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c
index 5a0786f32f..f395d84af5 100644
--- a/libavcodec/libopusenc.c
+++ b/libavcodec/libopusenc.c
@@ -547,7 +547,7 @@ static const AVOption libopus_options[] = {
 { "application","Intended application type",   
OFFSET(application),AV_OPT_TYPE_INT,   { .i64 = OPUS_APPLICATION_AUDIO }, 
OPUS_APPLICATION_VOIP, OPUS_APPLICATION_RESTRICTED_LOWDELAY, FLAGS, 
"application" },
 { "voip",   "Favor improved speech intelligibility",   0, 
AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_VOIP },0, 0, 
FLAGS, "application" },
 { "audio",  "Favor faithfulness to the input", 0, 
AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_AUDIO },   0, 0, 
FLAGS, "application" },
-{ "lowdelay",   "Restrict to only the lowest delay modes", 0, 
AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_RESTRICTED_LOWDELAY }, 0, 0, 
FLAGS, "application" },
+{ "lowdelay",   "Restrict to only the lowest delay modes, disable 
voice-optimized modes", 0, AV_OPT_TYPE_CONST, { .i64 = 
OPUS_APPLICATION_RESTRICTED_LOWDELAY }, 0, 0, FLAGS, "application" },
 { "frame_duration", "Duration of a frame in milliseconds", 
OFFSET(frame_duration), AV_OPT_TYPE_FLOAT, { .dbl = 20.0 }, 2.5, 120.0, FLAGS },
 { "packet_loss","Expected packet loss percentage", 
OFFSET(packet_loss),AV_OPT_TYPE_INT,   { .i64 = 0 },0,   100,  FLAGS },
 { "fec", "Enable inband FEC. Expected packet loss must be 
non-zero", OFFSET(fec),AV_OPT_TYPE_BOOL,   { .i64 = 0 }, 0, 1, FLAGS },

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] lavc: clarify meaning of avctx.level option

2023-10-06 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Aug 26 
02:34:06 2023 +0200| [6f421d9d4eb8425ce2ecb1f7f18b79ede3c60de9] | committer: 
Stefano Sabatini

lavc: clarify meaning of avctx.level option

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6f421d9d4eb8425ce2ecb1f7f18b79ede3c60de9
---

 doc/codecs.texi| 5 -
 libavcodec/avcodec.h   | 6 --
 libavcodec/options_table.h | 2 +-
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/doc/codecs.texi b/doc/codecs.texi
index a155939606..5b950b4560 100644
--- a/doc/codecs.texi
+++ b/doc/codecs.texi
@@ -697,10 +697,13 @@ profiles are documented in the relevant encoder 
documentation.
 
 @item level @var{integer} (@emph{encoding,audio,video})
 
+Set the encoder level. This level depends on the specific codec, and
+might correspond to the profile level. It is set by default to
+@samp{unknown}.
+
 Possible values:
 @table @samp
 @item unknown
-
 @end table
 
 @item lowres @var{integer} (@emph{decoding,audio,video})
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 09400b97b0..3916f66980 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1730,8 +1730,10 @@ typedef struct AVCodecContext {
 #endif
 
 /**
- * level
- * - encoding: Set by user.
+ * Encoding level descriptor.
+ * - encoding: Set by user, corresponds to a specific level defined by the
+ *   codec, usually corresponding to the profile level, if not specified it
+ *   is set to FF_LEVEL_UNKNOWN.
  * - decoding: Set by libavcodec.
  * See AV_LEVEL_* in defs.h.
  */
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index f2155232cf..ee243d9894 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -226,7 +226,7 @@ static const AVOption avcodec_options[] = {
 {"profile", NULL, OFFSET(profile), AV_OPT_TYPE_INT, {.i64 = AV_PROFILE_UNKNOWN 
}, INT_MIN, INT_MAX, V|A|E|CC, "avctx.profile"},
 {"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_PROFILE_UNKNOWN }, INT_MIN, 
INT_MAX, V|A|E, "avctx.profile"},
 {"main10",  NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AV_PROFILE_HEVC_MAIN_10 }, 
INT_MIN, INT_MAX, V|E, "avctx.profile"},
-{"level", NULL, OFFSET(level), AV_OPT_TYPE_INT, {.i64 = FF_LEVEL_UNKNOWN }, 
INT_MIN, INT_MAX, V|A|E|CC, "avctx.level"},
+{"level", "encoding level, usually corresponding to the profile level, 
codec-specific", OFFSET(level), AV_OPT_TYPE_INT, {.i64 = FF_LEVEL_UNKNOWN }, 
INT_MIN, INT_MAX, V|A|E|CC, "avctx.level"},
 {"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, 
INT_MAX, V|A|E, "avctx.level"},
 {"lowres", "decode at 1= 1/2, 2=1/4, 3=1/8 resolutions", OFFSET(lowres), 
AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX, V|A|D},
 {"cmp", "full-pel ME compare function", OFFSET(me_cmp), AV_OPT_TYPE_INT, {.i64 
= DEFAULT }, INT_MIN, INT_MAX, V|E, "cmp_func"},

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/encoders/libxvid: fix references for me_quality option

2023-10-06 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Aug 26 
12:54:25 2023 +0200| [7449a00d2dc7cbbdde2a3c19869e008bf682121c] | committer: 
Stefano Sabatini

doc/encoders/libxvid: fix references for me_quality option

Drop reference to constants removed in 94eed68ace9f2416af8.

In particular, rename me_method to me_quality and add description for
supported values.

Address trac issue:
http://trac.ffmpeg.org/ticket/10003

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7449a00d2dc7cbbdde2a3c19869e008bf682121c
---

 doc/encoders.texi | 21 +
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/doc/encoders.texi b/doc/encoders.texi
index bf9a41c22e..a6fef8a8f4 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -2976,27 +2976,24 @@ Place global headers in extradata instead of every 
keyframe.
 
 @item trellis
 
-@item me_method
-Set motion estimation method. Possible values in decreasing order of
+@item me_quality
+Set motion estimation quality level. Possible values in decreasing order of
 speed and increasing order of quality:
 
 @table @samp
-@item zero
+@item 0
 Use no motion estimation (default).
 
-@item phods
-@item x1
-@item log
+@item 1, 2
 Enable advanced diamond zonal search for 16x16 blocks and half-pixel
-refinement for 16x16 blocks. @samp{x1} and @samp{log} are aliases for
-@samp{phods}.
+refinement for 16x16 blocks.
 
-@item epzs
+@item 3, 4
 Enable all of the things described above, plus advanced diamond zonal
-search for 8x8 blocks, half-pixel refinement for 8x8 blocks, and motion
-estimation on chroma planes.
+search for 8x8 blocks and half-pixel refinement for 8x8 blocks, also
+enable motion estimation on chroma planes for P and B-frames.
 
-@item full
+@item 5, 6
 Enable all of the things described above, plus extended 16x16 and 8x8
 blocks search.
 @end table

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] doc/encoders/libx264: clarify meaning of level option

2023-10-06 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Sat Aug 26 
02:53:28 2023 +0200| [d0f071dfe743a410ff385c832b9c3ff47fd73c94] | committer: 
Stefano Sabatini

doc/encoders/libx264: clarify meaning of level option

In particular, clarify that it can either be set as a field of
AVCodecContext or as an x264 option, using a different specification.

Should address trac issue:
http://trac.ffmpeg.org/ticket/3947

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d0f071dfe743a410ff385c832b9c3ff47fd73c94
---

 doc/encoders.texi | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/doc/encoders.texi b/doc/encoders.texi
index d7d9584a0c..bf9a41c22e 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -2446,6 +2446,20 @@ Quantizer curve compression factor
 @item refs (@emph{ref})
 Number of reference frames each P-frame can use. The range is from @var{0-16}.
 
+@item level (@emph{level})
+Set the @code{x264_param_t.i_level_idc} value in case the value is
+positive, it is ignored otherwise.
+
+This value can be set using the @code{AVCodecContext} API (e.g. by
+setting the @code{AVCodecContext} value directly), and is specified as
+an integer mapped on a corresponding level (e.g. the value 31 maps
+to H.264 level IDC "3.1", as defined in the @code{x264_levels}
+table). It is ignored when set to a non positive value.
+
+Alternatively it can be set as a private option, overriding the value
+set in @code{AVCodecContext}, and in this case must be specified as
+the level IDC identifier (e.g. "3.1"), as defined by H.264 Annex A.
+
 @item sc_threshold (@emph{scenecut})
 Sets the threshold for the scene change detection.
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] ffprobe: factorize side data printing to dedicated function

2023-10-05 Thread Stefano Sabatini
ffmpeg | branch: master | Stefano Sabatini  | Thu Aug 31 
16:52:00 2023 +0200| [01edb505c6991f54f5780450ea1bc5436a55b487] | committer: 
Stefano Sabatini

ffprobe: factorize side data printing to dedicated function

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=01edb505c6991f54f5780450ea1bc5436a55b487
---

 fftools/ffprobe.c | 161 --
 1 file changed, 83 insertions(+), 78 deletions(-)

diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index c20f464623..5191c6002f 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -2578,6 +2578,87 @@ static void show_subtitle(WriterContext *w, AVSubtitle 
*sub, AVStream *stream,
 fflush(stdout);
 }
 
+static void print_frame_side_data(WriterContext *w,
+  const AVFrame *frame,
+  const AVStream *stream)
+{
+writer_print_section_header(w, SECTION_ID_FRAME_SIDE_DATA_LIST);
+
+for (int i = 0; i < frame->nb_side_data; i++) {
+const AVFrameSideData *sd = frame->side_data[i];
+const char *name;
+
+writer_print_section_header(w, SECTION_ID_FRAME_SIDE_DATA);
+name = av_frame_side_data_name(sd->type);
+print_str("side_data_type", name ? name : "unknown");
+if (sd->type == AV_FRAME_DATA_DISPLAYMATRIX && sd->size >= 9*4) {
+double rotation = av_display_rotation_get((int32_t *)sd->data);
+if (isnan(rotation))
+rotation = 0;
+writer_print_integers(w, "displaymatrix", sd->data, 9, " %11d", 3, 
4, 1);
+print_int("rotation", rotation);
+} else if (sd->type == AV_FRAME_DATA_AFD && sd->size > 0) {
+print_int("active_format", *sd->data);
+} else if (sd->type == AV_FRAME_DATA_GOP_TIMECODE && sd->size >= 8) {
+char tcbuf[AV_TIMECODE_STR_SIZE];
+av_timecode_make_mpeg_tc_string(tcbuf, *(int64_t *)(sd->data));
+print_str("timecode", tcbuf);
+} else if (sd->type == AV_FRAME_DATA_S12M_TIMECODE && sd->size == 16) {
+uint32_t *tc = (uint32_t*)sd->data;
+int m = FFMIN(tc[0],3);
+writer_print_section_header(w, 
SECTION_ID_FRAME_SIDE_DATA_TIMECODE_LIST);
+for (int j = 1; j <= m ; j++) {
+char tcbuf[AV_TIMECODE_STR_SIZE];
+av_timecode_make_smpte_tc_string2(tcbuf, 
stream->avg_frame_rate, tc[j], 0, 0);
+writer_print_section_header(w, 
SECTION_ID_FRAME_SIDE_DATA_TIMECODE);
+print_str("value", tcbuf);
+writer_print_section_footer(w);
+}
+writer_print_section_footer(w);
+} else if (sd->type == AV_FRAME_DATA_MASTERING_DISPLAY_METADATA) {
+AVMasteringDisplayMetadata *metadata = (AVMasteringDisplayMetadata 
*)sd->data;
+
+if (metadata->has_primaries) {
+print_q("red_x", metadata->display_primaries[0][0], '/');
+print_q("red_y", metadata->display_primaries[0][1], '/');
+print_q("green_x", metadata->display_primaries[1][0], '/');
+print_q("green_y", metadata->display_primaries[1][1], '/');
+print_q("blue_x", metadata->display_primaries[2][0], '/');
+print_q("blue_y", metadata->display_primaries[2][1], '/');
+
+print_q("white_point_x", metadata->white_point[0], '/');
+print_q("white_point_y", metadata->white_point[1], '/');
+}
+
+if (metadata->has_luminance) {
+print_q("min_luminance", metadata->min_luminance, '/');
+print_q("max_luminance", metadata->max_luminance, '/');
+}
+} else if (sd->type == AV_FRAME_DATA_DYNAMIC_HDR_PLUS) {
+AVDynamicHDRPlus *metadata = (AVDynamicHDRPlus *)sd->data;
+print_dynamic_hdr10_plus(w, metadata);
+} else if (sd->type == AV_FRAME_DATA_CONTENT_LIGHT_LEVEL) {
+AVContentLightMetadata *metadata = (AVContentLightMetadata 
*)sd->data;
+print_int("max_content", metadata->MaxCLL);
+print_int("max_average", metadata->MaxFALL);
+} else if (sd->type == AV_FRAME_DATA_ICC_PROFILE) {
+const AVDictionaryEntry *tag = av_dict_get(sd->metadata, "name", 
NULL, AV_DICT_MATCH_CASE);
+if (tag)
+print_str(tag->key, tag->value);
+print_int("size", sd->size);
+  

  1   2   3   >