Skip to content

Commit 4a96339

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 24f2999 + ca56299 commit 4a96339

File tree

175 files changed

+1846
-1552
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

175 files changed

+1846
-1552
lines changed

Changelog

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ version <next>:
77
- ADPCM IMA Acorn Replay decoder
88
- Argonaut Games CVG demuxer
99
- Argonaut Games CVG muxer
10+
- Concatf protocol
1011

1112

1213
version 4.4:

configure

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2370,6 +2370,7 @@ HAVE_LIST="
23702370
perl
23712371
pod2man
23722372
texi2html
2373+
xmllint
23732374
zlib_gzip
23742375
"
23752376

@@ -3316,7 +3317,7 @@ libwebp_anim_encoder_deps="libwebp"
33163317
libx262_encoder_deps="libx262"
33173318
libx264_encoder_deps="libx264"
33183319
libx264_encoder_select="atsc_a53"
3319-
libx264rgb_encoder_deps="libx264 x264_csp_bgr"
3320+
libx264rgb_encoder_deps="libx264"
33203321
libx264rgb_encoder_select="libx264_encoder"
33213322
libx265_encoder_deps="libx265"
33223323
libxavs_encoder_deps="libxavs"
@@ -6132,7 +6133,6 @@ check_builtin MemoryBarrier windows.h "MemoryBarrier()"
61326133
check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)"
61336134
check_builtin gmtime_r time.h "time_t *time; struct tm *tm; gmtime_r(time, tm)"
61346135
check_builtin localtime_r time.h "time_t *time; struct tm *tm; localtime_r(time, tm)"
6135-
check_builtin x264_csp_bgr "stdint.h x264.h" "X264_CSP_BGR"
61366136

61376137
case "$custom_allocator" in
61386138
jemalloc)
@@ -6655,6 +6655,7 @@ disabled makeinfo_html && texi2html --help 2> /dev/null | grep -q 'init-file' &&
66556655
perl -v > /dev/null 2>&1 && enable perl || disable perl
66566656
pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man
66576657
rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout
6658+
xmllint --version > /dev/null 2>&1 && enable xmllint || disable xmllint
66586659

66596660
# check V4L2 codecs available in the API
66606661
if enabled v4l2_m2m; then
@@ -7418,6 +7419,7 @@ echo "perl enabled ${perl-no}"
74187419
echo "pod2man enabled ${pod2man-no}"
74197420
echo "makeinfo enabled ${makeinfo-no}"
74207421
echo "makeinfo supports HTML ${makeinfo_html-no}"
7422+
echo "xmllint enabled ${xmllint-no}"
74217423
test -n "$random_seed" &&
74227424
echo "random seed ${random_seed}"
74237425
echo

doc/bitstream_filters.texi

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,11 @@ Set whether the stream has fixed framerate - typically this indicates
253253
that the framerate is exactly half the tick rate, but the exact
254254
meaning is dependent on interlacing and the picture structure (see
255255
H.264 section E.2.1 and table E-6).
256+
@item zero_new_constraint_set_flags
257+
Zero constraint_set4_flag and constraint_set5_flag in the SPS. These
258+
bits were reserved in a previous version of the H.264 spec, and thus
259+
some hardware decoders require these to be zero. The result of zeroing
260+
this is still a valid bitstream.
256261

257262
@item crop_left
258263
@item crop_right
@@ -730,6 +735,9 @@ The timebase of stream packet belongs.
730735

731736
@item SR
732737
The sample rate of stream packet belongs.
738+
739+
@item NOPTS
740+
The AV_NOPTS_VALUE constant.
733741
@end table
734742

735743
@anchor{text2movsub}

doc/encoders.texi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3119,7 +3119,8 @@ also set (the @option{-qscale} ffmpeg option).
31193119
@option{look_ahead} option is also set.
31203120

31213121
@item
3122-
@var{ICQ} -- intelligent constant quality otherwise.
3122+
@var{ICQ} -- intelligent constant quality otherwise. For the ICQ modes, global
3123+
quality range is 1 to 51, with 1 being the best quality.
31233124
@end itemize
31243125

31253126
@item

doc/ffmpeg.texi

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,11 @@ output file already exists.
449449
Set number of times input stream shall be looped. Loop 0 means no loop,
450450
loop -1 means infinite loop.
451451

452+
@item -recast_media (@emph{global})
453+
Allow forcing a decoder of a different media type than the one
454+
detected or designated by the demuxer. Useful for decoding media
455+
data muxed as data streams.
456+
452457
@item -c[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
453458
@itemx -codec[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
454459
Select an encoder (when used before an output file) or a decoder (when used

doc/filters.texi

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12341,10 +12341,10 @@ constants:
1234112341
@item source_fps
1234212342
The input's frame rate
1234312343

12344-
@item ntsc, qntsc, sntsc
12344+
@item ntsc
1234512345
NTSC frame rate of @code{30000/1001}
1234612346

12347-
@item pal, qpal, spal
12347+
@item pal
1234812348
PAL frame rate of @code{25.0}
1234912349

1235012350
@item film
@@ -12995,8 +12995,6 @@ greyedge=difford=1:minknorm=0:sigma=2
1299512995

1299612996
@section guided
1299712997
Apply guided filter for edge-preserving smoothing, dehazing and so on.
12998-
This filter requires two inputs of same resolution and pixel format.
12999-
The second input serves as the reference.
1300012998

1300112999
The filter accepts the following options:
1300213000
@table @option
@@ -13017,6 +13015,12 @@ Set subsampling ratio for @code{fast} mode.
1301713015
Range is 2 to 64. Default is 4.
1301813016
No subsampling occurs in @code{basic} mode.
1301913017

13018+
@item guidance
13019+
Set guidance mode. Can be @code{off} or @code{on}. Default is @code{off}.
13020+
If @code{off}, single input is required.
13021+
If @code{on}, two inputs of the same resolution and pixel format are required.
13022+
The second input serves as the guidance.
13023+
1302013024
@item planes
1302113025
Set planes to filter. Default is first only.
1302213026
@end table
@@ -13029,15 +13033,15 @@ This filter supports the all above options as @ref{commands}.
1302913033
@item
1303013034
Edge-preserving smoothing with guided filter:
1303113035
@example
13032-
ffmpeg -i in.png -i in.png -filter_complex guided out.png
13036+
ffmpeg -i in.png -vf guided out.png
1303313037
@end example
1303413038

1303513039
@item
1303613040
Dehazing, structure-transferring filtering, detail enhancement with guided filter.
1303713041
For the generation of guidance image, refer to paper "Guided Image Filtering".
1303813042
See: @url{http://kaiminghe.com/publications/pami12guidedfilter.pdf}.
1303913043
@example
13040-
ffmpeg -i in.png -i guidance.png -filter_complex guided out.png
13044+
ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
1304113045
@end example
1304213046

1304313047
@end itemize
@@ -14689,6 +14693,8 @@ Apply motion-compensation deinterlacing.
1468914693
It needs one field per frame as input and must thus be used together
1469014694
with yadif=1/3 or equivalent.
1469114695

14696+
This filter is only available in ffmpeg version 4.4 or earlier.
14697+
1469214698
This filter accepts the following options:
1469314699
@table @option
1469414700
@item mode
@@ -20667,6 +20673,8 @@ The way this differs from the behavior of spp is that uspp actually encodes &
2066720673
decodes each case with libavcodec Snow, whereas spp uses a simplified intra only 8x8
2066820674
DCT similar to MJPEG.
2066920675

20676+
This filter is only available in ffmpeg version 4.4 or earlier.
20677+
2067020678
The filter accepts the following options:
2067120679

2067220680
@table @option
@@ -20967,6 +20975,9 @@ If diagonal field of view is set it overrides horizontal and vertical field of v
2096720975

2096820976
@item octahedron
2096920977
Octahedron projection.
20978+
20979+
@item cylindricalea
20980+
Cylindrical Equal Area projection.
2097020981
@end table
2097120982

2097220983
@item interp

doc/general_contents.texi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ to @file{./configure}.
263263

264264
FFmpeg can make use of the Scalable Video Technology for AV1 library for AV1 encoding.
265265

266-
Go to @url{https://github.com/OpenVisualCloud/SVT-AV1/} and follow the instructions
266+
Go to @url{https://gitlab.com/AOMediaCodec/SVT-AV1/} and follow the instructions
267267
for installing the library. Then pass @code{--enable-libsvtav1} to configure to
268268
enable it.
269269

doc/muxers.texi

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1419,6 +1419,10 @@ overwritten with new images. Default value is 0.
14191419
If set to 1, expand the filename with date and time information from
14201420
@code{strftime()}. Default value is 0.
14211421

1422+
@item atomic_writing
1423+
Write output to a temporary file, which is renamed to target filename once
1424+
writing is completed. Default is disabled.
1425+
14221426
@item protocol_opts @var{options_list}
14231427
Set protocol options as a :-separated list of key=value parameters. Values
14241428
containing the @code{:} special character must be escaped.

doc/protocols.texi

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,38 @@ ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
215215
Note that you may need to escape the character "|" which is special for
216216
many shells.
217217

218+
@section concatf
219+
220+
Physical concatenation protocol using a line break delimited list of
221+
resources.
222+
223+
Read and seek from many resources in sequence as if they were
224+
a unique resource.
225+
226+
A URL accepted by this protocol has the syntax:
227+
@example
228+
concatf:@var{URL}
229+
@end example
230+
231+
where @var{URL} is the url containing a line break delimited list of
232+
resources to be concatenated, each one possibly specifying a distinct
233+
protocol. Special characters must be escaped with backslash or single
234+
quotes. See @ref{quoting_and_escaping,,the "Quoting and escaping"
235+
section in the ffmpeg-utils(1) manual,ffmpeg-utils}.
236+
237+
For example to read a sequence of files @file{split1.mpeg},
238+
@file{split2.mpeg}, @file{split3.mpeg} listed in separate lines within
239+
a file @file{split.txt} with @command{ffplay} use the command:
240+
@example
241+
ffplay concatf:split.txt
242+
@end example
243+
Where @file{split.txt} contains the lines:
244+
@example
245+
split1.mpeg
246+
split2.mpeg
247+
split3.mpeg
248+
@end example
249+
218250
@section crypto
219251

220252
AES-encrypted stream reading protocol.

fftools/ffmpeg_opt.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ static int input_sync;
186186
static int input_stream_potentially_available = 0;
187187
static int ignore_unknown_streams = 0;
188188
static int copy_unknown_streams = 0;
189+
static int recast_media = 0;
189190
static int find_stream_info = 1;
190191

191192
static void uninit_options(OptionsContext *o)
@@ -759,7 +760,7 @@ static const AVCodec *find_codec_or_die(const char *name, enum AVMediaType type,
759760
av_log(NULL, AV_LOG_FATAL, "Unknown %s '%s'\n", codec_string, name);
760761
exit_program(1);
761762
}
762-
if (codec->type != type) {
763+
if (codec->type != type && !recast_media) {
763764
av_log(NULL, AV_LOG_FATAL, "Invalid %s type '%s'\n", codec_string, name);
764765
exit_program(1);
765766
}
@@ -774,6 +775,8 @@ static const AVCodec *choose_decoder(OptionsContext *o, AVFormatContext *s, AVSt
774775
if (codec_name) {
775776
const AVCodec *codec = find_codec_or_die(codec_name, st->codecpar->codec_type, 0);
776777
st->codecpar->codec_id = codec->id;
778+
if (recast_media && st->codecpar->codec_type != codec->type)
779+
st->codecpar->codec_type = codec->type;
777780
return codec;
778781
} else
779782
return avcodec_find_decoder(st->codecpar->codec_id);
@@ -3429,6 +3432,8 @@ const OptionDef options[] = {
34293432
"Ignore unknown stream types" },
34303433
{ "copy_unknown", OPT_BOOL | OPT_EXPERT, { &copy_unknown_streams },
34313434
"Copy unknown stream types" },
3435+
{ "recast_media", OPT_BOOL | OPT_EXPERT, { &recast_media },
3436+
"allow recasting stream type in order to force a decoder of different media type" },
34323437
{ "c", HAS_ARG | OPT_STRING | OPT_SPEC |
34333438
OPT_INPUT | OPT_OUTPUT, { .off = OFFSET(codec_names) },
34343439
"codec name", "codec" },

0 commit comments

Comments
 (0)