[FFmpeg-cvslog] tools/target_dec_fuzzer: Adjust threshold for binkvideo

2019-09-17 Thread Michael Niedermayer
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()

2019-09-17 Thread Michael Niedermayer
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

2019-09-17 Thread Andreas Rheinhardt
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

2019-09-17 Thread Andreas Rheinhardt
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

2019-09-17 Thread Paul B Mahol
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.

2019-09-17 Thread hwrenx
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

2019-09-17 Thread Moritz Barsnick
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