[FFmpeg-cvslog] tools/target_dec_fuzzer: Adjust threshold for binkvideo
ffmpeg | branch: master | Michael Niedermayer | Sat Sep 14 23:39:49 2019 +0200| [65589ad55349b49fc3e877394249c9291cd3da4a] | committer: Michael Niedermayer tools/target_dec_fuzzer: Adjust threshold for binkvideo Fixes: Timeout (89sec -> 7sec) Fixes: 17035/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BINK_fuzzer-5737222422134784 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Peter Ross Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=65589ad55349b49fc3e877394249c9291cd3da4a --- tools/target_dec_fuzzer.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/target_dec_fuzzer.c b/tools/target_dec_fuzzer.c index 973705f1e9..8b1ad1f8da 100644 --- a/tools/target_dec_fuzzer.c +++ b/tools/target_dec_fuzzer.c @@ -128,6 +128,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { maxpixels = maxpixels_per_frame * maxiteration; switch (c->id) { // Allows a small input to generate gigantic output +case AV_CODEC_ID_BINKVIDEO: maxpixels /= 32; break; case AV_CODEC_ID_DIRAC: maxpixels /= 8192; break; case AV_CODEC_ID_MSRLE: maxpixels /= 16; break; case AV_CODEC_ID_QTRLE: maxpixels /= 16; break; ___ 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] avformat/mov: Check for EOF in mov_read_meta()
ffmpeg | branch: master | Michael Niedermayer | Sat Aug 31 01:25:03 2019 +0200| [093d1f42507e07d9acb43a8a3135e4ebe3530fe2] | committer: Michael Niedermayer avformat/mov: Check for EOF in mov_read_meta() Fixes: Timeout (195sec -> 2ms) Fixes: 16735/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5090676403863552 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=093d1f42507e07d9acb43a8a3135e4ebe3530fe2 --- libavformat/mov.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index cd3f5bffcf..1533c35a1d 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -4419,7 +4419,10 @@ static int mov_read_custom(MOVContext *c, AVIOContext *pb, MOVAtom atom) static int mov_read_meta(MOVContext *c, AVIOContext *pb, MOVAtom atom) { while (atom.size > 8) { -uint32_t tag = avio_rl32(pb); +uint32_t tag; +if (avio_feof(pb)) +return AVERROR_EOF; +tag = avio_rl32(pb); atom.size -= 4; if (tag == MKTAG('h','d','l','r')) { avio_seek(pb, -8, SEEK_CUR); ___ 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] avformat/mov: Fix memleak
ffmpeg | branch: master | Andreas Rheinhardt | Mon Sep 16 17:54:59 2019 +0200| [34bd293b014efc816bd7aab068d7f9e4a6d3011a] | committer: Michael Niedermayer avformat/mov: Fix memleak When the mov/mp4 demuxer encounters an error during decrypting a packet, it returns the error, yet doesn't free the packet, so that the packet leaks. This has been fixed in this commit. Fixes the memleaks from ticket #8150. Signed-off-by: Andreas Rheinhardt Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=34bd293b014efc816bd7aab068d7f9e4a6d3011a --- libavformat/mov.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 675b915906..cd3f5bffcf 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -7843,8 +7843,10 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt) aax_filter(pkt->data, pkt->size, mov); ret = cenc_filter(mov, st, sc, pkt, current_index); -if (ret < 0) +if (ret < 0) { +av_packet_unref(pkt); return ret; +} 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] fftools/ffmpeg_opt: Fix signed integer overflow
ffmpeg | branch: master | Andreas Rheinhardt | Mon Sep 16 17:55:01 2019 +0200| [2b1fcba8ddcb7d29299ea28403fb597640a7288b] | committer: Michael Niedermayer fftools/ffmpeg_opt: Fix signed integer overflow Fixes ticket #8154. Signed-off-by: Andreas Rheinhardt Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2b1fcba8ddcb7d29299ea28403fb597640a7288b --- fftools/ffmpeg_opt.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index f5ca18aa64..b2aa63e7ee 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -1,3 +1,4 @@ + /* * ffmpeg option parsing * @@ -2769,13 +2770,14 @@ static int opt_target(void *optctx, const char *opt, const char *arg) } else { /* Try to determine PAL/NTSC by peeking in the input files */ if (nb_input_files) { -int i, j, fr; +int i, j; for (j = 0; j < nb_input_files; j++) { for (i = 0; i < input_files[j]->nb_streams; i++) { AVStream *st = input_files[j]->ctx->streams[i]; +int64_t fr; if (st->codecpar->codec_type != AVMEDIA_TYPE_VIDEO) continue; -fr = st->time_base.den * 1000 / st->time_base.num; +fr = st->time_base.den * 1000LL / st->time_base.num; if (fr == 25000) { norm = PAL; break; ___ 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] avfilter/vf_v360: add mercator projection
ffmpeg | branch: master | Paul B Mahol | Tue Sep 17 22:15:07 2019 +0200| [251284e44aa568f344e973d4d0b8f03d2b3734aa] | committer: Paul B Mahol avfilter/vf_v360: add mercator projection > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=251284e44aa568f344e973d4d0b8f03d2b3734aa --- doc/filters.texi | 3 ++ libavfilter/v360.h| 1 + libavfilter/vf_v360.c | 78 +++ 3 files changed, 82 insertions(+) diff --git a/doc/filters.texi b/doc/filters.texi index bbfdad4d4d..469473 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -18057,6 +18057,9 @@ Set horizontal/vertical/diagonal field of view. Values in degrees. If diagonal field of view is set it overrides horizontal and vertical field of view. @end table +@item mercator +Mercator format. + @end table @item interp diff --git a/libavfilter/v360.h b/libavfilter/v360.h index a15ff7dbc4..cb968dab46 100644 --- a/libavfilter/v360.h +++ b/libavfilter/v360.h @@ -39,6 +39,7 @@ enum Projections { BARREL, CUBEMAP_1_6, STEREOGRAPHIC, +MERCATOR, NB_PROJECTIONS, }; diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c index d5b94cf747..f8d3be80a5 100644 --- a/libavfilter/vf_v360.c +++ b/libavfilter/vf_v360.c @@ -65,6 +65,7 @@ static const AVOption v360_options[] = { {"fb", "barrel facebook's 360 format", 0, AV_OPT_TYPE_CONST, {.i64=BARREL}, 0, 0, FLAGS, "in" }, { "c1x6", "cubemap 1x6",0, AV_OPT_TYPE_CONST, {.i64=CUBEMAP_1_6}, 0, 0, FLAGS, "in" }, {"sg", "stereographic", 0, AV_OPT_TYPE_CONST, {.i64=STEREOGRAPHIC}, 0, 0, FLAGS, "in" }, +{ "mercator", "mercator", 0, AV_OPT_TYPE_CONST, {.i64=MERCATOR},0, 0, FLAGS, "in" }, {"output", "set output projection",OFFSET(out), AV_OPT_TYPE_INT,{.i64=CUBEMAP_3_2}, 0,NB_PROJECTIONS-1, FLAGS, "out" }, { "e", "equirectangular",0, AV_OPT_TYPE_CONST, {.i64=EQUIRECTANGULAR}, 0, 0, FLAGS, "out" }, { "equirect", "equirectangular",0, AV_OPT_TYPE_CONST, {.i64=EQUIRECTANGULAR}, 0, 0, FLAGS, "out" }, @@ -79,6 +80,7 @@ static const AVOption v360_options[] = { {"fb", "barrel facebook's 360 format", 0, AV_OPT_TYPE_CONST, {.i64=BARREL}, 0, 0, FLAGS, "out" }, { "c1x6", "cubemap 1x6",0, AV_OPT_TYPE_CONST, {.i64=CUBEMAP_1_6}, 0, 0, FLAGS, "out" }, {"sg", "stereographic", 0, AV_OPT_TYPE_CONST, {.i64=STEREOGRAPHIC}, 0, 0, FLAGS, "out" }, +{ "mercator", "mercator", 0, AV_OPT_TYPE_CONST, {.i64=MERCATOR},0, 0, FLAGS, "out" }, {"interp", "set interpolation method", OFFSET(interp), AV_OPT_TYPE_INT,{.i64=BILINEAR},0, NB_INTERP_METHODS-1, FLAGS, "interp" }, { "near", "nearest neighbour", 0, AV_OPT_TYPE_CONST, {.i64=NEAREST}, 0, 0, FLAGS, "interp" }, { "nearest", "nearest neighbour", 0, AV_OPT_TYPE_CONST, {.i64=NEAREST}, 0, 0, FLAGS, "interp" }, @@ -1517,6 +1519,70 @@ static void xyz_to_equirect(const V360Context *s, } /** + * Calculate frame position in mercator format for corresponding 3D coordinates on sphere. + * + * @param s filter context + * @param vec coordinates on sphere + * @param width frame width + * @param height frame height + * @param us horizontal coordinates for interpolation window + * @param vs vertical coordinates for interpolation window + * @param du horizontal relative coordinate + * @param dv vertical relative coordinate + */ +static void xyz_to_mercator(const V360Context *s, +const float *vec, int width, int height, +uint16_t us[4][4], uint16_t vs[4][4], float *du, float *dv) +{ +const float phi = atan2f(vec[0], -vec[2]) * s->input_mirror_modifier[0]; +const float theta = 0.5f * asinhf(vec[1] / sqrtf(1.f - vec[1] * vec[1])) * s->input_mirror_modifier[1]; +float uf, vf; +int ui, vi; + +uf = (phi / M_PI + 1.f) * width / 2.f; +vf = (theta / M_PI + 1.f) * height / 2.f; +ui = floorf(uf); +vi = floorf(vf); + +*du = uf - ui; +*dv = vf - vi; + +for (int i = -1; i < 3; i++) { +for (int j = -1; j < 3; j++) { +us[i + 1][j + 1] = mod(ui + j, width); +vs[i + 1][j + 1] = av_clip(vi + i, 0, height - 1); +} +} +} + +/** + * Calculate 3D coordinates on sphere for corresponding frame
[FFmpeg-cvslog] lavf/mpegts: Support demuxing AVS2.
ffmpeg | branch: master | hwrenx | Wed Sep 18 02:18:13 2019 +0200| [96f1d34d0cd28d5b2ad2977f5d19d6f11063c691] | committer: Carl Eugen Hoyos lavf/mpegts: Support demuxing AVS2. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=96f1d34d0cd28d5b2ad2977f5d19d6f11063c691 --- libavformat/mpegts.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 0415ceea02..63ac071619 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -803,6 +803,7 @@ static const StreamType ISO_types[] = { { 0x24, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_HEVC }, { 0x42, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_CAVS }, { 0xd1, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_DIRAC }, +{ 0xd2, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_AVS2 }, { 0xea, AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_VC1}, { 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: various spelling, grammar and formatting fixes
ffmpeg | branch: master | Moritz Barsnick | Tue Sep 17 10:21:02 2019 +0200| [53d31e91c5302131cf0631c053d04f09b36897ee] | committer: Gyan Doshi doc: various spelling, grammar and formatting fixes Signed-off-by: Moritz Barsnick > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=53d31e91c5302131cf0631c053d04f09b36897ee --- doc/filters.texi | 69 doc/muxers.texi | 4 ++-- 2 files changed, 37 insertions(+), 36 deletions(-) diff --git a/doc/filters.texi b/doc/filters.texi index 469473..06ce7ec069 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -756,7 +756,7 @@ aecho=0.8:0.88:60:0.4 @end example @item -If delay is very short, then it sound like a (metallic) robot playing music: +If delay is very short, then it sounds like a (metallic) robot playing music: @example aecho=0.8:0.88:6:0.4 @end example @@ -1157,11 +1157,11 @@ It can be used as component for digital crossover filters, room equalization, cross talk cancellation, wavefield synthesis, auralization, ambiophonics, ambisonics and spatialization. -This filter uses second stream as FIR coefficients. -If second stream holds single channel, it will be used -for all input channels in first stream, otherwise -number of channels in second stream must be same as -number of channels in first stream. +This filter uses the second stream as FIR coefficients. +If the second stream holds a single channel, it will be used +for all input channels in the first stream, otherwise +the number of channels in the second stream must be same as +the number of channels in the first stream. It accepts the following parameters: @@ -1766,7 +1766,7 @@ Each sample is adjusted by looking for other samples with similar contexts. This context similarity is defined by comparing their surrounding patches of size @option{p}. Patches are searched in an area of @option{r} around the sample. -The filter accepts the following options. +The filter accepts the following options: @table @option @item s @@ -2965,12 +2965,12 @@ Compensation Delay Line is a metric based delay to compensate differing positions of microphones or speakers. For example, you have recorded guitar with two microphones placed in -different location. Because the front of sound wave has fixed speed in +different locations. Because the front of sound wave has fixed speed in normal conditions, the phasing of microphones can vary and depends on their location and interposition. The best sound mix can be achieved when -these microphones are in phase (synchronized). Note that distance of -~30 cm between microphones makes one microphone to capture signal in -antiphase to another microphone. That makes the final mix sounding moody. +these microphones are in phase (synchronized). Note that a distance of +~30 cm between microphones makes one microphone capture the signal in +antiphase to the other microphone. That makes the final mix sound moody. This filter helps to solve phasing problems by adding different delays to each microphone track and make them synchronized. @@ -2979,7 +2979,7 @@ synchronize other tracks one by one with it. Remember that synchronization/delay tolerance depends on sample rate, too. Higher sample rates will give more tolerance. -It accepts the following parameters: +The filter accepts the following parameters: @table @option @item mm @@ -3003,7 +3003,7 @@ Set wet amount. Amount of processed (wet) signal. Default is 1. @item temp -Set temperature degree in Celsius. This is the temperature of the environment. +Set temperature in degrees Celsius. This is the temperature of the environment. Default is 20. @end table @@ -6638,7 +6638,7 @@ If the interlacing is unknown or the decoder does not export this information, top field first will be assumed. @item deint -Specify which frames to deinterlace. Accept one of the following +Specify which frames to deinterlace. Accepts one of the following values: @table @option @@ -11423,7 +11423,7 @@ All streams must be of same pixel format and of same height. Note that this filter is faster than using @ref{overlay} and @ref{pad} filter to create same output. -The filter accept the following option: +The filter accepts the following option: @table @option @item inputs @@ -13262,7 +13262,7 @@ the following values: "blur", "blur_no_scale", "median", "gaussian", or "bilateral". The default value is "gaussian". The meaning of @var{param1}, @var{param2}, @var{param3}, and @var{param4} -depend on the smooth type. @var{param1} and +depends on the smooth type. @var{param1} and @var{param2} accept integer positive values or 0. @var{param3} and @var{param4} accept floating point values. @@ -14443,7 +14443,7 @@ __kernel void blend_images(__write_only image2d_t dst, Alter frame colors in video with pseudocolors. -This filter accept the following options: +This filter accepts the following options: @table @option @item