[FFmpeg-devel] [PATCH V1 2/2] lavf: bump version/add Changelog entry when cleanup applehttp

2019-04-15 Thread Jun Zhao
From: Jun Zhao 

commit abfeba9 "lavf/hls: Cleanup the applehttp" missed
the version bump and Changelog entry.

Signed-off-by: Jun Zhao 
---
 Changelog |1 +
 libavformat/version.h |2 +-
 2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/Changelog b/Changelog
index 5b2b1e5..2930471 100644
--- a/Changelog
+++ b/Changelog
@@ -24,6 +24,7 @@ version :
 - KUX demuxer
 - AV1 frame split bitstream filter
 - lscr decoder
+- cleanup applehttp in hls demuxer
 
 
 version 4.1:
diff --git a/libavformat/version.h b/libavformat/version.h
index d57c151..150a72e 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -33,7 +33,7 @@
 // Also please add any ticket numbers that you believe might be affected here
 #define LIBAVFORMAT_VERSION_MAJOR  58
 #define LIBAVFORMAT_VERSION_MINOR  27
-#define LIBAVFORMAT_VERSION_MICRO 102
+#define LIBAVFORMAT_VERSION_MICRO 103
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \
-- 
1.7.1

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

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

Re: [FFmpeg-devel] [PATCH v2 5/9] lavc/qsvdec: Add VP9 decoder support

2019-04-15 Thread Li, Zhong
> From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf
> Of Mark Thompson
> Sent: Tuesday, April 2, 2019 7:40 AM
> To: ffmpeg-devel@ffmpeg.org
> Subject: [FFmpeg-devel] [PATCH v2 5/9] lavc/qsvdec: Add VP9 decoder
> support
> 
> From: Zhong Li 
> 
> VP9 decoder is supported on Intel kabyLake+ platforms with MSDK Version
> 1.19+
> 
> Signed-off-by: Zhong Li 
> ---
> On 20/03/2019 14:41, Li, Zhong wrote:
> > Yes, QSV is a marketing name which is no equal to libmfx/MSDK.
> > But would be better to keep consistent with others, such as "Intel
> QSV-accelerated VP8 video decoding" in pervious changelog?
> 
> I don't think so?  VP9 decoding with the QSV hardware is already supported,
> this only adds the additional option of using libmfx to access the same thing
> as well.

Ok, here are just some words description of changelog. I will be happy to see 
this patch can be applied.
(As previous comment, the updated version of vp9 parser with pic_type of key 
frame issue fixing LGTM.)

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

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

[FFmpeg-devel] [PATCH] avformat/matroskaenc: Improve log messages for blocks

2019-04-15 Thread Andreas Rheinhardt via ffmpeg-devel
Up until now, a block's relative offset has been reported as the offset
in the log messages output when writing blocks; given that it is
impossible to know the real offset from the beginning of the file at
this point due to the fact that it is not yet known how many bytes will
be used for the containing cluster's length field both the relative
offset in the cluster as well as the offset of the containing cluster
will be reported from now on.

Also, the log message for writing vtt blocks has been brought in line
with the message for normal blocks.

Signed-off-by: Andreas Rheinhardt 
---
Sorry for sending this a third time, but I just found out that my second
attempt had an unnecessary space ("in  cluster"), so here is the updated
version.

And I'd like to take this opportunity to ping the whole patchset.
 libavformat/matroskaenc.c | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 441315e2d5..fc0e95440e 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -2124,10 +2124,10 @@ static void mkv_write_block(AVFormatContext *s, 
AVIOContext *pb,
 
 ts += mkv->tracks[pkt->stream_index].ts_offset;
 
-av_log(s, AV_LOG_DEBUG, "Writing block at offset %" PRIu64 ", size %d, "
-   "pts %" PRId64 ", dts %" PRId64 ", duration %" PRId64 ", keyframe 
%d\n",
-   avio_tell(pb), pkt->size, pkt->pts, pkt->dts, pkt->duration,
-   keyframe != 0);
+av_log(s, AV_LOG_DEBUG, "Writing block at relative offset %" PRId64 " in "
+   "cluster at offset %" PRId64 "; size %d, pts %" PRId64 ", dts %" 
PRId64
+   ", duration %" PRId64 ", keyframe %d\n", avio_tell(pb), 
mkv->cluster_pos,
+   pkt->size, pkt->pts, pkt->dts, pkt->duration, keyframe != 0);
 if (par->codec_id == AV_CODEC_ID_H264 && par->extradata_size > 0 &&
 (AV_RB24(par->extradata) == 1 || AV_RB32(par->extradata) == 1))
 ff_avc_parse_nal_units_buf(pkt->data, , );
@@ -2231,9 +2231,10 @@ static int mkv_write_vtt_blocks(AVFormatContext *s, 
AVIOContext *pb, AVPacket *p
 
 size = id_size + 1 + settings_size + 1 + pkt->size;
 
-av_log(s, AV_LOG_DEBUG, "Writing block at offset %" PRIu64 ", size %d, "
-   "pts %" PRId64 ", dts %" PRId64 ", duration %" PRId64 ", flags 
%d\n",
-   avio_tell(pb), size, pkt->pts, pkt->dts, pkt->duration, flags);
+av_log(s, AV_LOG_DEBUG, "Writing block at relative offset %" PRId64 " in "
+   "cluster at offset %" PRId64 "; size %d, pts %" PRId64 ", dts %" 
PRId64
+   ", duration %" PRId64 ", keyframe %d\n", avio_tell(pb), 
mkv->cluster_pos,
+   size, pkt->pts, pkt->dts, pkt->duration, 1);
 
 blockgroup = start_ebml_master(pb, MATROSKA_ID_BLOCKGROUP, 
mkv_blockgroup_size(size));
 
-- 
2.21.0

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

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

Re: [FFmpeg-devel] [PATCH V1 1/2] lavf/hls: Cleanup the applehttp

2019-04-15 Thread myp...@gmail.com
On Mon, Apr 15, 2019 at 11:02 PM Carl Eugen Hoyos  wrote:
>
> 2019-04-12 13:20 GMT+02:00, Jun Zhao :
> > From: Jun Zhao 
> >
> > Cleanup the applehttp as demuxer name, when use the command :
> >
> > ffmpeg -formats, get the confused information like:
> > "
> >  E hls Apple HTTP Live Streaming
> > D  hls,applehttp   Apple HTTP Live Streaming
> > "
> > we don't use applehttp as the demuxer/muxer name usually, so
> > cleanup the applehttp and update the documents.
> >
> > After the change, get the information from "ffmpeg -formats":
> > "
> > DE hls Apple HTTP Live Streaming
> > "
> >
> > Signed-off-by: Jun Zhao 
> > ---
> >  doc/demuxers.texi |   20 +---
> >  libavformat/hls.c |4 ++--
> >  2 files changed, 11 insertions(+), 13 deletions(-)
>
> > diff --git a/libavformat/hls.c b/libavformat/hls.c
> > index f4e4498..1b61b4b 100644
> > --- a/libavformat/hls.c
> > +++ b/libavformat/hls.c
> > @@ -2318,14 +2318,14 @@ static const AVOption hls_options[] = {
> >  };
> >
> >  static const AVClass hls_class = {
> > -.class_name = "hls,applehttp",
> > +.class_name = "hls demuxer",
> >  .item_name  = av_default_item_name,
> >  .option = hls_options,
> >  .version= LIBAVUTIL_VERSION_INT,
> >  };
> >
> >  AVInputFormat ff_hls_demuxer = {
> > -.name   = "hls,applehttp",
> > +.name   = "hls",
>
> This needs an entry in apichanges (which is impossible because
> there was no minor version bump) iirc, I suggest you add an
> entry to Changelog.
>
> Carl Eugen
Will add an entry to APIChange, Thanks the remind. I didn't even
realize this is a API change problem before this comment. sadly.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH V1] lavf/oggparsevorbis: Fix change the case of metadata keys issue

2019-04-15 Thread myp...@gmail.com
On Tue, Apr 16, 2019 at 5:51 AM Michael Niedermayer
 wrote:
>
> On Mon, Apr 15, 2019 at 09:58:30AM +0800, Jun Zhao wrote:
> > From: Jun Zhao 
> >
> > The spec in https://xiph.org/vorbis/doc/v-comment.html states that
> > the metadata keys are case-insensitive, so don't change the case
> > and update the fate test case.
> >
> > Fix #7784
> >
> > Signed-off-by: Jun Zhao 
> > ---
> >  libavformat/oggparsevorbis.c |9 -
> >  tests/ref/fate/limited_input_seek|2 +-
> >  tests/ref/fate/limited_input_seek-copyts |2 +-
> >  3 files changed, 6 insertions(+), 7 deletions(-)
> >
> > diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c
> > index bcfd246..c3c8d38 100644
> > --- a/libavformat/oggparsevorbis.c
> > +++ b/libavformat/oggparsevorbis.c
> > @@ -44,7 +44,7 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, 
> > uint8_t *val)
> >  int i, cnum, h, m, s, ms, keylen = strlen(key);
> >  AVChapter *chapter = NULL;
> >
> > -if (keylen < 9 || sscanf(key, "CHAPTER%03d", ) != 1)
> > +if (keylen < 9 || (av_strcasecmp(key, "CHAPTER")!=0 && sscanf(key+7, 
> > "%03d", ) != 1))
>
> this looks a bit odd, shouldnt this use av_strncasecmp() ?
>
It's  in order to be compatible with the fate test case
vorbis-1833-chapthers, in this test,
we use lower case in test clip but check upper case in the code.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH 8/8][RFC] libavfilter/vf_objectdetect: add a filter for object detection

2019-04-15 Thread Guo, Yejun
the patch 1 to patch 7 of this patch set asks for review and push.
patch 8 (this patch) asks for comments, thanks.

> -Original Message-
> From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf
> Of Guo, Yejun
> Sent: Tuesday, April 02, 2019 10:30 PM
> To: ffmpeg-devel@ffmpeg.org
> Cc: Guo, Yejun 
> Subject: [FFmpeg-devel] [PATCH 8/8][RFC] libavfilter/vf_objectdetect: add a
> filter for object detection
> 
> This filter is not finished yet. Currently, for visual effect, it
> detects objections and draws a box for the detected objections with score >
> 0.8.
> 
> The purpose here is to show the previous changes of the dnn is necessary,
> and it is also a RFC (require for comment) patch for this filter.
> 
> In my plan, an example under doc/examples will be added to show how to
> use this filter and connet the filter result with the ROI encoding.
> 
> And, will add options to this filter for score_threshold, visual effect or 
> not.
> 
> And, a new type of sidedata will be added to hold the filter result.
> So, the example can get the filter result and set ROI info for encoder.
> 
> Looks that, it is not easy to transfer data between filters, between
> filter and application, between filter and encoders, the current feasible
> method I found is to by sidedata.
> 
> Signed-off-by: Guo, Yejun 
> ---
>  configure |   1 +
>  doc/filters.texi  |  20 
>  libavfilter/Makefile  |   1 +
>  libavfilter/allfilters.c  |   1 +
>  libavfilter/vf_objectdetect.c | 222
> ++
>  5 files changed, 245 insertions(+)
>  create mode 100644 libavfilter/vf_objectdetect.c
> 
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH v3 1/2] avcodec/videotoolbox: add support for 10bit pixel format

2019-04-15 Thread Jan Ekström
On Tue, Apr 16, 2019 at 2:55 AM Jan Ekström  wrote:
>
> On Sat, Apr 13, 2019 at 5:36 PM der richter  wrote:
> >
> > From: fumoboy007 
> >
> > this patch was originally posted on issue #7704 and was slightly
> > adjusted to check for the availability of the pixel format.
> > ---
>
> Functionally tested on a macOS 10.13.x + XCode 10.1, as well as
> forcibly made the kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange
> check fail, and it still built fine. 10bit HEVC content is now
> properly getting decoded onto P010 surfaces through VT instead of
> getting dithered to NV12.
>
> In other words, from my side LGTM.
>
> Best regards,
> Jan

Additionally tested with ffmpeg.c and P010 images seem to be flowing
with hwaccel videotoolbox.

Applied as 036b4b0f85933f49a7094b5b568a93f68c9cd544 .

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

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

Re: [FFmpeg-devel] [PATCH v3 1/2] avcodec/videotoolbox: add support for 10bit pixel format

2019-04-15 Thread Jan Ekström
On Sat, Apr 13, 2019 at 5:36 PM der richter  wrote:
>
> From: fumoboy007 
>
> this patch was originally posted on issue #7704 and was slightly
> adjusted to check for the availability of the pixel format.
> ---

Functionally tested on a macOS 10.13.x + XCode 10.1, as well as
forcibly made the kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange
check fail, and it still built fine. 10bit HEVC content is now
properly getting decoded onto P010 surfaces through VT instead of
getting dithered to NV12.

In other words, from my side LGTM.

Best regards,
Jan
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH v2] lavfi: add colorkey_opencl filter

2019-04-15 Thread Mark Thompson
On 14/04/2019 05:27, Jarek Samic wrote:
> This is a direct port of the CPU filter.
> 
> Signed-off-by: Jarek Samic 
> ---
> I've made the changes requested from the first patch. I also investigated 
> splitting the kernel into two kernels in order to remove the blending if 
> branch; I noticed negligible performance improvement (if any at all) with my 
> test case and hardware, but I've left it split up as it's possible that it 
> makes a difference with different hardware (and it's very little change in 
> the code).

Fair enough, that makes sense :)

>  configure|   1 +
>  doc/filters.texi |  33 +
>  libavfilter/Makefile |   2 +
>  libavfilter/allfilters.c |   1 +
>  libavfilter/opencl/colorkey.cl   |  53 +++
>  libavfilter/opencl_source.h  |   1 +
>  libavfilter/vf_colorkey_opencl.c | 243 +++
>  7 files changed, 334 insertions(+)
>  create mode 100644 libavfilter/opencl/colorkey.cl
>  create mode 100644 libavfilter/vf_colorkey_opencl.c
> 
> ...
> diff --git a/libavfilter/opencl/colorkey.cl b/libavfilter/opencl/colorkey.cl
> new file mode 100644
> index 00..82ab5c8832
> --- /dev/null
> +++ b/libavfilter/opencl/colorkey.cl
> @@ -0,0 +1,53 @@
> +/*
> + * 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
> + */
> +
> +float4 get_pixel(image2d_t src, int2 loc) {
> +const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE |
> +CLK_FILTER_NEAREST;

The Mali driver doesn't like this:

"""
[Parsed_colorkey_opencl_2 @ 0x83a040c0] Failed to build program: -11.
[Parsed_colorkey_opencl_2 @ 0x83a040c0] Build log:
:21:21: error: declaring sampler variable in this context is not allowed
const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE |
^

error: Compiler frontend failed (error code 59)
"""

From the standard:

"""
The sampler type (sampler_t) can only be used as the type of a function 
argument or a
variable declared in the program scope or the outermost scope of a kernel 
function. The
behavior of a sampler variable declared in a non-outermost scope of a kernel 
function is
implementation-defined. A sampler argument or variable cannot be modified.
"""

I think move it into the program scope (and then inline the get_pixel function, 
since it no longer does very much).

> +
> +return read_imagef(src, sampler, loc);
> +}
> +
> +__kernel void colorkey_blend(
> +__read_only  image2d_t src,
> +__write_only image2d_t dst,
> +float4 colorkey_rgba,
> +float similarity,
> +float blend
> +) {
> +int2 loc = (int2)(get_global_id(0), get_global_id(1));
> +float4 pixel = get_pixel(src, loc);
> +float diff = distance(pixel.xyz, colorkey_rgba.xyz);
> +
> +pixel.s3 = clamp((diff - similarity) / blend, 0.0f, 1.0f);
> +write_imagef(dst, loc, pixel);
> +}
> +
> +__kernel void colorkey(
> +__read_only  image2d_t src,
> +__write_only image2d_t dst,
> +float4 colorkey_rgba,
> +float similarity
> +) {
> +int2 loc = (int2)(get_global_id(0), get_global_id(1));
> +float4 pixel = get_pixel(src, loc);
> +float diff = distance(pixel.xyz, colorkey_rgba.xyz);
> +
> +pixel.s3 = (diff > similarity) ? 1.0 : 0.0;

1.0f, 0.0f.  (The compiler probably optimises this away, but it's sensible to 
get into the habit of always avoiding doubles.)

> +write_imagef(dst, loc, pixel);
> +}
> diff --git a/libavfilter/opencl_source.h b/libavfilter/opencl_source.h
> index 4118138c30..51f7178cf2 100644
> --- a/libavfilter/opencl_source.h
> +++ b/libavfilter/opencl_source.h
> @@ -20,6 +20,7 @@
>  #define AVFILTER_OPENCL_SOURCE_H
>  
>  extern const char *ff_opencl_source_avgblur;
> +extern const char *ff_opencl_source_colorkey;
>  extern const char *ff_opencl_source_colorspace_common;
>  extern const char *ff_opencl_source_convolution;
>  extern const char *ff_opencl_source_neighbor;
> diff --git a/libavfilter/vf_colorkey_opencl.c 
> b/libavfilter/vf_colorkey_opencl.c
> new file mode 100644
> index 00..2790a01cae
> --- /dev/null
> +++ b/libavfilter/vf_colorkey_opencl.c
> @@ -0,0 +1,243 @@
> +/*
> + * This file is part of FFmpeg.
> + *
> + * FFmpeg is free software; you can 

Re: [FFmpeg-devel] [PATCH]lavfi/fspp: Add a cast to silence a clang warning

2019-04-15 Thread Carl Eugen Hoyos
2019-04-14 1:02 GMT+02:00, Michael Niedermayer :
> On Sat, Apr 13, 2019 at 07:25:54PM -0300, James Almer wrote:
>> On 4/13/2019 7:04 PM, Carl Eugen Hoyos wrote:
>> > Hi!
>> >
>> > Attached patch silences two warnings shown when compiling with clang:
>> > libavfilter/vf_fspp.h:51:42: warning: implicit conversion from 'int'
>> > to 'int16_t' (aka 'short') changes value from 44130 to -21406
>> >
>> > Please comment, Carl Eugen
>> >
>> >
>> > 0001-lavfi-vf_fspp-Use-the-intended-cast-to-int16_t.patch
>> >
>> > From d731e523d9c5854183d20d37fe921f49fb048498 Mon Sep 17 00:00:00 2001
>> > From: Carl Eugen Hoyos 
>> > Date: Sat, 13 Apr 2019 23:05:44 +0200
>> > Subject: [PATCH] lavfi/fspp: Add two casts to int16_t.
>> >
>> > Silences a warning with clang:
>> > warning: implicit conversion from 'int' to 'int16_t' (aka 'short')
>> > changes value from 44130 to -21406
>> > ---
>> >  libavfilter/vf_fspp.h |2 +-
>> >  1 file changed, 1 insertion(+), 1 deletion(-)
>> >
>> > diff --git a/libavfilter/vf_fspp.h b/libavfilter/vf_fspp.h
>> > index 74a3447..e346439 100644
>> > --- a/libavfilter/vf_fspp.h
>> > +++ b/libavfilter/vf_fspp.h
>> > @@ -31,7 +31,7 @@
>> >  #define DCTSIZE 8
>> >  #define DCTSIZE_S "8"
>> >
>> > -#define FIX(x,s)  ((int) ((x) * (1 << s) + 0.5) & 0x)
>> > +#define FIX(x,s)  ((int16_t)((x) * (1 << s) + 0.5) & (int16_t)0x)
>>
>> The "& 0x" is turning -21406 into 44130 since it zeroes all the high
>> bits, and then that value gets converted back to -21406 when stored into
>> an int16_t variable.
>>
>> Change the int cast into int16_t if you want since it doesn't hurt (all
>> the values are safely within the int16_t range anyway), but remove the
>> "& 0x" altogether instead of casting it, to get rid of this warning.
>>
>> >  #define C64(x)((uint64_t)((x) | (x) << 16)) <<32 | (uint64_t)(x) |
>> > (uint64_t)(x) << 16
>> >  #define FIX64(x,s)  C64(FIX(x,s))
>
> i think the C64 / FIX64 macros depend on the & 0x. They are maybe
> unused
> and just referenced in comments but having them not give correct values
> could still be confusing. The 0x if its removed should be added to the
> code / comments that refer to it in a way that needs it

New patch attached.
Not sure if / where to add comments.

Please comment, Carl Eugen
From dfda9d8a6714649015f252e0e0bf5e3e52ce1b5c Mon Sep 17 00:00:00 2001
From: Carl Eugen Hoyos 
Date: Tue, 16 Apr 2019 00:50:50 +0200
Subject: [PATCH] lavfi/fspp: Cast float values to int16_t instead of int.

Silences a warning with clang:
warning: implicit conversion from 'int' to 'int16_t' (aka 'short') changes value from 44130 to -21406
---
 libavfilter/vf_fspp.h |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavfilter/vf_fspp.h b/libavfilter/vf_fspp.h
index 802db14..bdafe8e 100644
--- a/libavfilter/vf_fspp.h
+++ b/libavfilter/vf_fspp.h
@@ -31,7 +31,7 @@
 #define DCTSIZE 8
 #define DCTSIZE_S "8"
 
-#define FIX(x,s)  ((int) ((x) * (1 << s) + 0.5) & 0x)
+#define FIX(x,s)  ((int16_t)((x) * (1 << s) + 0.5))
 
 #define MULTIPLY16H(x,k)   (((x) * (k)) >> 16)
 #define THRESHOLD(r,x,t) \
-- 
1.7.10.4

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

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

[FFmpeg-devel] [PATCH] rtsp: add pkt_size option

2019-04-15 Thread Tristan Matthews
This allows users to specify an upper limit on the size of outgoing packets
when publishing via RTSP.

Signed-off-by: Martin Storsjö 
---
 libavformat/rtsp.c | 6 +-
 libavformat/rtsp.h | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 8349840c96..8a8ffdea4d 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -76,7 +76,9 @@
 
 #define COMMON_OPTS() \
 { "reorder_queue_size", "set number of packets to buffer for handling of 
reordered packets", OFFSET(reordering_queue_size), AV_OPT_TYPE_INT, { .i64 = -1 
}, -1, INT_MAX, DEC }, \
-{ "buffer_size","Underlying protocol send/receive buffer size",
  OFFSET(buffer_size),   AV_OPT_TYPE_INT, { .i64 = -1 }, 
-1, INT_MAX, DEC|ENC } \
+{ "buffer_size","Underlying protocol send/receive buffer size",
  OFFSET(buffer_size),   AV_OPT_TYPE_INT, { .i64 = -1 }, 
-1, INT_MAX, DEC|ENC }, \
+{ "buffer_size","Underlying protocol send/receive buffer size",
  OFFSET(buffer_size),   AV_OPT_TYPE_INT, { .i64 = -1 }, 
-1, INT_MAX, DEC|ENC }, \
+{ "pkt_size",   "Underlying protocol send packet size",
  OFFSET(pkt_size),  AV_OPT_TYPE_INT, { .i64 = -1 }, 
-1, INT_MAX, ENC } \
 
 
 const AVOption ff_rtsp_options[] = {
@@ -132,6 +134,8 @@ static AVDictionary *map_to_opts(RTSPState *rt)
 
 snprintf(buf, sizeof(buf), "%d", rt->buffer_size);
 av_dict_set(, "buffer_size", buf, 0);
+snprintf(buf, sizeof(buf), "%d", rt->pkt_size);
+av_dict_set(, "pkt_size", buf, 0);
 
 return opts;
 }
diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h
index b49278fc20..54a9a30c16 100644
--- a/libavformat/rtsp.h
+++ b/libavformat/rtsp.h
@@ -410,6 +410,7 @@ typedef struct RTSPState {
 
 char default_lang[4];
 int buffer_size;
+int pkt_size;
 } RTSPState;
 
 #define RTSP_FLAG_FILTER_SRC  0x1/**< Filter incoming UDP packets -
-- 
2.17.1

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

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

[FFmpeg-devel] [PATCH] rtsp: add pkt_size option

2019-04-15 Thread Tristan Matthews
This allows users to specify an upper limit on the size of outgoing packets
when publishing via RTSP.

Signed-off-by: Martin Storsjö 
---
 libavformat/rtsp.c | 5 -
 libavformat/rtsp.h | 1 +
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 8349840c96..c153cac88b 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -76,7 +76,8 @@
 
 #define COMMON_OPTS() \
 { "reorder_queue_size", "set number of packets to buffer for handling of 
reordered packets", OFFSET(reordering_queue_size), AV_OPT_TYPE_INT, { .i64 = -1 
}, -1, INT_MAX, DEC }, \
-{ "buffer_size","Underlying protocol send/receive buffer size",
  OFFSET(buffer_size),   AV_OPT_TYPE_INT, { .i64 = -1 }, 
-1, INT_MAX, DEC|ENC } \
+{ "buffer_size","Underlying protocol send/receive buffer size",
  OFFSET(buffer_size),   AV_OPT_TYPE_INT, { .i64 = -1 }, 
-1, INT_MAX, DEC|ENC }, \
+{ "pkt_size",   "Underlying protocol send packet size",
  OFFSET(pkt_size),  AV_OPT_TYPE_INT, { .i64 = -1 }, 
-1, INT_MAX, ENC } \
 
 
 const AVOption ff_rtsp_options[] = {
@@ -132,6 +133,8 @@ static AVDictionary *map_to_opts(RTSPState *rt)
 
 snprintf(buf, sizeof(buf), "%d", rt->buffer_size);
 av_dict_set(, "buffer_size", buf, 0);
+snprintf(buf, sizeof(buf), "%d", rt->pkt_size);
+av_dict_set(, "pkt_size", buf, 0);
 
 return opts;
 }
diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h
index b49278fc20..54a9a30c16 100644
--- a/libavformat/rtsp.h
+++ b/libavformat/rtsp.h
@@ -410,6 +410,7 @@ typedef struct RTSPState {
 
 char default_lang[4];
 int buffer_size;
+int pkt_size;
 } RTSPState;
 
 #define RTSP_FLAG_FILTER_SRC  0x1/**< Filter incoming UDP packets -
-- 
2.17.1

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

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

Re: [FFmpeg-devel] [PATCH]lavfi/fspp: Remove two unused macros

2019-04-15 Thread Carl Eugen Hoyos
2019-04-15 23:56 GMT+02:00, Michael Niedermayer :
> On Sun, Apr 14, 2019 at 10:57:35PM +0200, Carl Eugen Hoyos wrote:
>> Hi!
>>
>> Attached patch removes two unused macros as a preparation for a new patch
>> to silence a clang warning.
>>
>> Please comment, Carl Eugen
>
>>  vf_fspp.h |2 --
>>  1 file changed, 2 deletions(-)
>> ec3246d97102d701f4a979e29a42857bf6745078
>> 0001-lavfi-fspp-Remove-two-unused-macros.patch
>> From 133f21a9df22f5ae15ea7feef57bb6c1bc7a7bf4 Mon Sep 17 00:00:00 2001
>> From: Carl Eugen Hoyos 
>> Date: Sun, 14 Apr 2019 22:56:17 +0200
>> Subject: [PATCH] lavfi/fspp: Remove two unused macros.
>
> LGTM

Patch applied.

Thank you, Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH] mxfdec: Constrain run-in to 64k

2019-04-15 Thread Carl Eugen Hoyos
2019-04-16 0:00 GMT+02:00, Tomas Härdin :
> mån 2019-04-15 klockan 12:40 +0200 skrev Carl Eugen Hoyos:
>> > 2019-04-15 10:30 GMT+02:00, Tomas Härdin :
>> > This isn't likely to be a huge problem, but it allows us to reason more
>> > about run-in. It also exposes my gripe about klv_read_packet() using
>> > mxf_read_sync()
>>
>> Does this patch have an effect on one of our samples?
>
> It passes FATE if that's what you mean.

No.

> The intent is rather to pre-emptively stop the ability for new
> broken muxers to pop up, which would end up straying
> from the spec because mxfdec.c is being too forgiving

As such, and if I don't misunderstand, this sounds to me
like an explanation why this patch should not be pushed.

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH] mxfdec: Constrain run-in to 64k

2019-04-15 Thread Tomas Härdin
mån 2019-04-15 klockan 23:03 +0200 skrev Marton Balint:
> 
> On Mon, 15 Apr 2019, Tomas Härdin wrote:
> 
> > This isn't likely to be a huge problem, but it allows us to reason more
> > about run-in. It also exposes my gripe about klv_read_packet() using
> > mxf_read_sync()
> 
> I would allow 65536 bytes as well for run-in, even if that is against the 
> standard. The MXF book for example says this:
> 
> run-in - a sequence of up to 65536 bytes at the front of the file that 
> preceeds the first partition pack.

So I see. Hm.. We could report that to the publisher as an error in the
book. But I doubt they'd do a reprint for such a minor error.

> So I guess there is a chance of seeing files with 65536 byte run-in in the 
> wild, and those files used to work...

This is potentially true, and would cause unnecessary annoyance. But
staying close to the spec is also of interest. Hm...

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

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

Re: [FFmpeg-devel] [PATCH] mxfdec: Constrain run-in to 64k

2019-04-15 Thread Tomas Härdin
mån 2019-04-15 klockan 12:40 +0200 skrev Carl Eugen Hoyos:
> > 2019-04-15 10:30 GMT+02:00, Tomas Härdin :
> > This isn't likely to be a huge problem, but it allows us to reason more
> > about run-in. It also exposes my gripe about klv_read_packet() using
> > mxf_read_sync()
> 
> Does this patch have an effect on one of our samples?

It passes FATE if that's what you mean. The intent is rather to pre-
emptively stop the ability for new broken muxers to pop up, which would
end up straying from the spec because mxfdec.c is being too forgiving

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

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

Re: [FFmpeg-devel] [PATCH]lavfi/fspp: Remove two unused macros

2019-04-15 Thread Michael Niedermayer
On Sun, Apr 14, 2019 at 10:57:35PM +0200, Carl Eugen Hoyos wrote:
> Hi!
> 
> Attached patch removes two unused macros as a preparation for a new patch
> to silence a clang warning.
> 
> Please comment, Carl Eugen

>  vf_fspp.h |2 --
>  1 file changed, 2 deletions(-)
> ec3246d97102d701f4a979e29a42857bf6745078  
> 0001-lavfi-fspp-Remove-two-unused-macros.patch
> From 133f21a9df22f5ae15ea7feef57bb6c1bc7a7bf4 Mon Sep 17 00:00:00 2001
> From: Carl Eugen Hoyos 
> Date: Sun, 14 Apr 2019 22:56:17 +0200
> Subject: [PATCH] lavfi/fspp: Remove two unused macros.

LGTM

thx

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Never trust a computer, one day, it may think you are the virus. -- Compn


signature.asc
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH v1] avformat/flvdec: fix the problem of packet mismatch while reading rtmp stream

2019-04-15 Thread Michael Niedermayer
On Mon, Apr 15, 2019 at 04:15:50PM +0800, Lance.Gao wrote:
> Signed-off-by: Lance.Gao 
> ---
>  libavformat/flvdec.c | 2 ++
>  1 file changed, 2 insertions(+)

"fix the problem of packet mismatch while reading rtmp stream"

this is too vague, its not clear what problem this is about, or how this
fixes it



[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Avoid a single point of failure, be that a person or equipment.


signature.asc
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH V1] lavf/oggparsevorbis: Fix change the case of metadata keys issue

2019-04-15 Thread Michael Niedermayer
On Mon, Apr 15, 2019 at 09:58:30AM +0800, Jun Zhao wrote:
> From: Jun Zhao 
> 
> The spec in https://xiph.org/vorbis/doc/v-comment.html states that
> the metadata keys are case-insensitive, so don't change the case
> and update the fate test case.
> 
> Fix #7784
> 
> Signed-off-by: Jun Zhao 
> ---
>  libavformat/oggparsevorbis.c |9 -
>  tests/ref/fate/limited_input_seek|2 +-
>  tests/ref/fate/limited_input_seek-copyts |2 +-
>  3 files changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c
> index bcfd246..c3c8d38 100644
> --- a/libavformat/oggparsevorbis.c
> +++ b/libavformat/oggparsevorbis.c
> @@ -44,7 +44,7 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, 
> uint8_t *val)
>  int i, cnum, h, m, s, ms, keylen = strlen(key);
>  AVChapter *chapter = NULL;
>  
> -if (keylen < 9 || sscanf(key, "CHAPTER%03d", ) != 1)
> +if (keylen < 9 || (av_strcasecmp(key, "CHAPTER")!=0 && sscanf(key+7, 
> "%03d", ) != 1))

this looks a bit odd, shouldnt this use av_strncasecmp() ?


[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I do not agree with what you have to say, but I'll defend to the death your
right to say it. -- Voltaire


signature.asc
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH 3/3] avdevice/decklink_common: add support for DeckLink SDK 11

2019-04-15 Thread Marton Balint



On Tue, 9 Apr 2019, Marton Balint wrote:


Fixes ticket #7789.


Pushed the series.

Regards,
Marton
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

[FFmpeg-devel] [PATCH 2/5] avcodec/cbs_h2645: add helper macros for signed values

2019-04-15 Thread James Almer
Signed-off-by: James Almer 
---
 libavcodec/cbs_h2645.c | 20 
 1 file changed, 20 insertions(+)

diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c
index e74f8dce81..a205293b3c 100644
--- a/libavcodec/cbs_h2645.c
+++ b/libavcodec/cbs_h2645.c
@@ -255,6 +255,8 @@ static int cbs_write_se_golomb(CodedBitstreamContext *ctx, 
PutBitContext *pbc,
 #define flag(name) u(1, name, 0, 1)
 #define ue(name, range_min, range_max) \
 xue(name, current->name, range_min, range_max, 0)
+#define i(width, name, range_min, range_max) \
+xi(width, name, current->name, range_min, range_max, 0)
 #define se(name, range_min, range_max) \
 xse(name, current->name, range_min, range_max, 0)
 
@@ -264,6 +266,8 @@ static int cbs_write_se_golomb(CodedBitstreamContext *ctx, 
PutBitContext *pbc,
 xu(1, name, current->name, 0, 1, subs, __VA_ARGS__)
 #define ues(name, range_min, range_max, subs, ...) \
 xue(name, current->name, range_min, range_max, subs, __VA_ARGS__)
+#define is(width, name, range_min, range_max, subs, ...) \
+xi(width, name, current->name, range_min, range_max, subs, __VA_ARGS__)
 #define ses(name, range_min, range_max, subs, ...) \
 xse(name, current->name, range_min, range_max, subs, __VA_ARGS__)
 
@@ -291,6 +295,13 @@ static int cbs_write_se_golomb(CodedBitstreamContext *ctx, 
PutBitContext *pbc,
  , range_min, range_max)); \
 var = value; \
 } while (0)
+#define xi(width, name, var, range_min, range_max, subs, ...) do { \
+int32_t value = range_min; \
+CHECK(ff_cbs_read_signed(ctx, rw, width, #name, \
+ SUBSCRIPTS(subs, __VA_ARGS__), \
+ , range_min, range_max)); \
+var = value; \
+} while (0)
 #define xse(name, var, range_min, range_max, subs, ...) do { \
 int32_t value = range_min; \
 CHECK(cbs_read_se_golomb(ctx, rw, #name, \
@@ -338,6 +349,7 @@ static int cbs_h2645_read_more_rbsp_data(GetBitContext *gbc)
 #undef READWRITE
 #undef RWContext
 #undef xu
+#undef xi
 #undef xue
 #undef xse
 #undef infer
@@ -362,6 +374,12 @@ static int cbs_h2645_read_more_rbsp_data(GetBitContext 
*gbc)
   SUBSCRIPTS(subs, __VA_ARGS__), \
   value, range_min, range_max)); \
 } while (0)
+#define xi(width, name, var, range_min, range_max, subs, ...) do { \
+int32_t value = var; \
+CHECK(ff_cbs_write_signed(ctx, rw, width, #name, \
+  SUBSCRIPTS(subs, __VA_ARGS__), \
+  value, range_min, range_max)); \
+} while (0)
 #define xse(name, var, range_min, range_max, subs, ...) do { \
 int32_t value = var; \
 CHECK(cbs_write_se_golomb(ctx, rw, #name, \
@@ -402,9 +420,11 @@ static int cbs_h2645_read_more_rbsp_data(GetBitContext 
*gbc)
 #undef READWRITE
 #undef RWContext
 #undef xu
+#undef xi
 #undef xue
 #undef xse
 #undef u
+#undef i
 #undef flag
 #undef ue
 #undef se
-- 
2.21.0

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

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

[FFmpeg-devel] [PATCH 1/5] avcodec/cbs: add helper functions and macros to read and write signed values

2019-04-15 Thread James Almer
Signed-off-by: James Almer 
---
 libavcodec/cbs.c  | 79 +++
 libavcodec/cbs_internal.h | 20 +-
 2 files changed, 98 insertions(+), 1 deletion(-)

diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c
index c388be896b..726bd582f5 100644
--- a/libavcodec/cbs.c
+++ b/libavcodec/cbs.c
@@ -504,6 +504,85 @@ int ff_cbs_write_unsigned(CodedBitstreamContext *ctx, 
PutBitContext *pbc,
 return 0;
 }
 
+int ff_cbs_read_signed(CodedBitstreamContext *ctx, GetBitContext *gbc,
+   int width, const char *name,
+   const int *subscripts, int32_t *write_to,
+   int32_t range_min, int32_t range_max)
+{
+int32_t value;
+int position;
+
+av_assert0(width > 0 && width <= 32);
+
+if (get_bits_left(gbc) < width) {
+av_log(ctx->log_ctx, AV_LOG_ERROR, "Invalid value at "
+   "%s: bitstream ended.\n", name);
+return AVERROR_INVALIDDATA;
+}
+
+if (ctx->trace_enable)
+position = get_bits_count(gbc);
+
+value = get_sbits_long(gbc, width);
+
+if (ctx->trace_enable) {
+char bits[33];
+int i;
+for (i = 0; i < width; i++)
+bits[i] = value & (1 << (width - i - 1)) ? '1' : '0';
+bits[i] = 0;
+
+ff_cbs_trace_syntax_element(ctx, position, name, subscripts,
+bits, value);
+}
+
+if (value < range_min || value > range_max) {
+av_log(ctx->log_ctx, AV_LOG_ERROR, "%s out of range: "
+   "%"PRId32", but must be in [%"PRId32",%"PRId32"].\n",
+   name, value, range_min, range_max);
+return AVERROR_INVALIDDATA;
+}
+
+*write_to = value;
+return 0;
+}
+
+int ff_cbs_write_signed(CodedBitstreamContext *ctx, PutBitContext *pbc,
+int width, const char *name,
+const int *subscripts, int32_t value,
+int32_t range_min, int32_t range_max)
+{
+av_assert0(width > 0 && width <= 32);
+
+if (value < range_min || value > range_max) {
+av_log(ctx->log_ctx, AV_LOG_ERROR, "%s out of range: "
+   "%"PRId32", but must be in [%"PRId32",%"PRId32"].\n",
+   name, value, range_min, range_max);
+return AVERROR_INVALIDDATA;
+}
+
+if (put_bits_left(pbc) < width)
+return AVERROR(ENOSPC);
+
+if (ctx->trace_enable) {
+char bits[33];
+int i;
+for (i = 0; i < width; i++)
+bits[i] = value & (1 << (width - i - 1)) ? '1' : '0';
+bits[i] = 0;
+
+ff_cbs_trace_syntax_element(ctx, put_bits_count(pbc),
+name, subscripts, bits, value);
+}
+
+if (width < 32)
+put_sbits(pbc, width, value);
+else
+put_bits32(pbc, value);
+
+return 0;
+}
+
 
 int ff_cbs_alloc_unit_content(CodedBitstreamContext *ctx,
   CodedBitstreamUnit *unit,
diff --git a/libavcodec/cbs_internal.h b/libavcodec/cbs_internal.h
index 53f2e5d187..6ab85679dd 100644
--- a/libavcodec/cbs_internal.h
+++ b/libavcodec/cbs_internal.h
@@ -81,10 +81,28 @@ int ff_cbs_write_unsigned(CodedBitstreamContext *ctx, 
PutBitContext *pbc,
   const int *subscripts, uint32_t value,
   uint32_t range_min, uint32_t range_max);
 
-// The largest value representable in N bits, suitable for use as
+int ff_cbs_read_signed(CodedBitstreamContext *ctx, GetBitContext *gbc,
+   int width, const char *name,
+   const int *subscripts, int32_t *write_to,
+   int32_t range_min, int32_t range_max);
+
+int ff_cbs_write_signed(CodedBitstreamContext *ctx, PutBitContext *pbc,
+int width, const char *name,
+const int *subscripts, int32_t value,
+int32_t range_min, int32_t range_max);
+
+// The largest unsigned value representable in N bits, suitable for use as
 // range_max in the above functions.
 #define MAX_UINT_BITS(length) ((UINT64_C(1) << (length)) - 1)
 
+// The largest signed value representable in N bits, suitable for use as
+// range_max in the above functions.
+#define MAX_INT_BITS(length) ((INT64_C(1) << (length - 1)) - 1)
+
+// The smallest signed value representable in N bits, suitable for use as
+// range_min in the above functions.
+#define MIN_INT_BITS(length) (-(INT64_C(1) << (length - 1)))
+
 
 extern const CodedBitstreamType ff_cbs_type_av1;
 extern const CodedBitstreamType ff_cbs_type_h264;
-- 
2.21.0

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

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

[FFmpeg-devel] [PATCH 5/5] avcodec/cbs_av1: use the new signed value read/write functions

2019-04-15 Thread James Almer
Signed-off-by: James Almer 
---
The sample https://0x0.st/sljR.webm appears to be parsed the exact same way
after this patch.

 libavcodec/cbs_av1.c | 68 ++--
 1 file changed, 8 insertions(+), 60 deletions(-)

diff --git a/libavcodec/cbs_av1.c b/libavcodec/cbs_av1.c
index 41dd4c97ac..eb2d03ef43 100644
--- a/libavcodec/cbs_av1.c
+++ b/libavcodec/cbs_av1.c
@@ -207,62 +207,6 @@ static int cbs_av1_write_leb128(CodedBitstreamContext 
*ctx, PutBitContext *pbc,
 return 0;
 }
 
-static int cbs_av1_read_su(CodedBitstreamContext *ctx, GetBitContext *gbc,
-   int width, const char *name,
-   const int *subscripts, int32_t *write_to)
-{
-int position;
-int32_t value;
-
-if (ctx->trace_enable)
-position = get_bits_count(gbc);
-
-if (get_bits_left(gbc) < width) {
-av_log(ctx->log_ctx, AV_LOG_ERROR, "Invalid signed value at "
-   "%s: bitstream ended.\n", name);
-return AVERROR_INVALIDDATA;
-}
-
-value = get_sbits(gbc, width);
-
-if (ctx->trace_enable) {
-char bits[33];
-int i;
-for (i = 0; i < width; i++)
-bits[i] = value & (1 << (width - i - 1)) ? '1' : '0';
-bits[i] = 0;
-
-ff_cbs_trace_syntax_element(ctx, position,
-name, subscripts, bits, value);
-}
-
-*write_to = value;
-return 0;
-}
-
-static int cbs_av1_write_su(CodedBitstreamContext *ctx, PutBitContext *pbc,
-int width, const char *name,
-const int *subscripts, int32_t value)
-{
-if (put_bits_left(pbc) < width)
-return AVERROR(ENOSPC);
-
-if (ctx->trace_enable) {
-char bits[33];
-int i;
-for (i = 0; i < width; i++)
-bits[i] = value & (1 << (width - i - 1)) ? '1' : '0';
-bits[i] = 0;
-
-ff_cbs_trace_syntax_element(ctx, put_bits_count(pbc),
-name, subscripts, bits, value);
-}
-
-put_sbits(pbc, width, value);
-
-return 0;
-}
-
 static int cbs_av1_read_ns(CodedBitstreamContext *ctx, GetBitContext *gbc,
uint32_t n, const char *name,
const int *subscripts, uint32_t *write_to)
@@ -639,8 +583,10 @@ static size_t cbs_av1_get_payload_bytes_left(GetBitContext 
*gbc)
 
 #define xsu(width, name, var, subs, ...) do { \
 int32_t value = 0; \
-CHECK(cbs_av1_read_su(ctx, rw, width, #name, \
-  SUBSCRIPTS(subs, __VA_ARGS__), )); \
+CHECK(ff_cbs_read_signed(ctx, rw, width, #name, \
+ SUBSCRIPTS(subs, __VA_ARGS__), , \
+ MIN_INT_BITS(width), \
+ MAX_INT_BITS(width))); \
 var = value; \
 } while (0)
 
@@ -723,8 +669,10 @@ static size_t cbs_av1_get_payload_bytes_left(GetBitContext 
*gbc)
 } while (0)
 
 #define xsu(width, name, var, subs, ...) do { \
-CHECK(cbs_av1_write_su(ctx, rw, width, #name, \
-   SUBSCRIPTS(subs, __VA_ARGS__), var)); \
+CHECK(ff_cbs_write_signed(ctx, rw, width, #name, \
+  SUBSCRIPTS(subs, __VA_ARGS__), var, \
+  MIN_INT_BITS(width), \
+  MAX_INT_BITS(width))); \
 } while (0)
 
 #define uvlc(name, range_min, range_max) do { \
-- 
2.21.0

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

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

[FFmpeg-devel] [PATCH 4/5] avcodec/cbs_h265: fix storage type for time_offset_value in Time Code SEI

2019-04-15 Thread James Almer
The spec defines it as an array of signed values, inferred to 0 when not
present.

Signed-off-by: James Almer 
---
Couldn't find any sample using it.

 libavcodec/cbs_h265.h | 2 +-
 libavcodec/cbs_h265_syntax_template.c | 7 +--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/libavcodec/cbs_h265.h b/libavcodec/cbs_h265.h
index d216caca2b..0c0e4f84b0 100644
--- a/libavcodec/cbs_h265.h
+++ b/libavcodec/cbs_h265.h
@@ -659,7 +659,7 @@ typedef struct H265RawSEITimeCode {
 uint8_t  minutes_flag[3];
 uint8_t  hours_flag[3];
 uint8_t  time_offset_length[3];
-uint32_t time_offset_value[3];
+int32_t  time_offset_value[3];
 } H265RawSEITimeCode;
 
 typedef struct H265RawSEIMasteringDisplayColourVolume {
diff --git a/libavcodec/cbs_h265_syntax_template.c 
b/libavcodec/cbs_h265_syntax_template.c
index f1e1bb0e7e..bbd363a389 100644
--- a/libavcodec/cbs_h265_syntax_template.c
+++ b/libavcodec/cbs_h265_syntax_template.c
@@ -1986,8 +1986,11 @@ static int FUNC(sei_time_code)(CodedBitstreamContext 
*ctx, RWContext *rw,
 
 us(5, time_offset_length[i], 0, 31, 1, i);
 if (current->time_offset_length[i] > 0)
-us(current->time_offset_length[i], time_offset_value[i],
-   0, MAX_UINT_BITS(current->time_offset_length[i]), 1, i);
+is(current->time_offset_length[i], time_offset_value[i],
+   MIN_INT_BITS(current->time_offset_length[i]),
+   MAX_INT_BITS(current->time_offset_length[i]), 1, i);
+else
+infer(time_offset_value[i], 0);
 }
 }
 
-- 
2.21.0

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

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

[FFmpeg-devel] [PATCH 3/5] avcodec/cbs_h264: fix storage type for time_offset in Pic Timing SEI

2019-04-15 Thread James Almer
The spec defines it as a signed value.

Signed-off-by: James Almer 
---
The only sample i could find with time_offset values it's in the fate suite,
and in all cases it's 0.

 libavcodec/cbs_h264.h | 2 +-
 libavcodec/cbs_h264_syntax_template.c | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/libavcodec/cbs_h264.h b/libavcodec/cbs_h264.h
index 92277e4750..b5eee7c370 100644
--- a/libavcodec/cbs_h264.h
+++ b/libavcodec/cbs_h264.h
@@ -253,7 +253,7 @@ typedef struct H264RawSEIPicTimestamp {
 uint8_t minutes_value;
 uint8_t hours_flag;
 uint8_t hours_value;
-uint32_t time_offset;
+int32_t time_offset;
 } H264RawSEIPicTimestamp;
 
 typedef struct H264RawSEIPicTiming {
diff --git a/libavcodec/cbs_h264_syntax_template.c 
b/libavcodec/cbs_h264_syntax_template.c
index 4da4c5da67..07b4cddb5e 100644
--- a/libavcodec/cbs_h264_syntax_template.c
+++ b/libavcodec/cbs_h264_syntax_template.c
@@ -592,8 +592,9 @@ static int FUNC(sei_pic_timestamp)(CodedBitstreamContext 
*ctx, RWContext *rw,
 time_offset_length = 24;
 
 if (time_offset_length > 0)
-u(time_offset_length, time_offset,
-  0, MAX_UINT_BITS(time_offset_length));
+i(time_offset_length, time_offset,
+  MIN_INT_BITS(time_offset_length),
+  MAX_INT_BITS(time_offset_length));
 else
 infer(time_offset, 0);
 
-- 
2.21.0

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

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

Re: [FFmpeg-devel] [PATCH] mxfdec: Constrain run-in to 64k

2019-04-15 Thread Marton Balint



On Mon, 15 Apr 2019, Tomas Härdin wrote:


This isn't likely to be a huge problem, but it allows us to reason more
about run-in. It also exposes my gripe about klv_read_packet() using
mxf_read_sync()


I would allow 65536 bytes as well for run-in, even if that is against the 
standard. The MXF book for example says this:


run-in - a sequence of up to 65536 bytes at the front of the file that 
preceeds the first partition pack.


So I guess there is a chance of seeing files with 65536 byte run-in in the 
wild, and those files used to work...


Regards,
Marton
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

[FFmpeg-devel] [PATCH] avfilter: add lagfun filter

2019-04-15 Thread Paul B Mahol
Signed-off-by: Paul B Mahol 
---
 doc/filters.texi |  15 +++
 libavfilter/Makefile |   1 +
 libavfilter/allfilters.c |   1 +
 libavfilter/vf_lagfun.c  | 252 +++
 4 files changed, 269 insertions(+)
 create mode 100644 libavfilter/vf_lagfun.c

diff --git a/doc/filters.texi b/doc/filters.texi
index 867607d870..8a78e2129b 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -11302,6 +11302,21 @@ kerndeint=map=1
 @end example
 @end itemize
 
+@section lagfun
+
+Slowly update darker pixels.
+
+This filter makes short flashes of light appear longer.
+This filter accepts the following options:
+
+@table @option
+@item decay
+Set factor for decaying. Default is .95. Allowed range is from 0 to 1.
+
+@item planes
+Set which planes to filter. Default is all. Allowed range is from 0 to 15.
+@end table
+
 @section lenscorrection
 
 Correct radial lens distortion
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index fef6ec5c55..c215a3ad20 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -266,6 +266,7 @@ OBJS-$(CONFIG_INFLATE_FILTER)+= 
vf_neighbor.o
 OBJS-$(CONFIG_INTERLACE_FILTER)  += vf_tinterlace.o
 OBJS-$(CONFIG_INTERLEAVE_FILTER) += f_interleave.o
 OBJS-$(CONFIG_KERNDEINT_FILTER)  += vf_kerndeint.o
+OBJS-$(CONFIG_LAGFUN_FILTER) += vf_lagfun.o
 OBJS-$(CONFIG_LENSCORRECTION_FILTER) += vf_lenscorrection.o
 OBJS-$(CONFIG_LENSFUN_FILTER)+= vf_lensfun.o
 OBJS-$(CONFIG_LIBVMAF_FILTER)+= vf_libvmaf.o framesync.o
diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c
index c51ae0f3c7..ddac15aa6e 100644
--- a/libavfilter/allfilters.c
+++ b/libavfilter/allfilters.c
@@ -252,6 +252,7 @@ extern AVFilter ff_vf_inflate;
 extern AVFilter ff_vf_interlace;
 extern AVFilter ff_vf_interleave;
 extern AVFilter ff_vf_kerndeint;
+extern AVFilter ff_vf_lagfun;
 extern AVFilter ff_vf_lenscorrection;
 extern AVFilter ff_vf_lensfun;
 extern AVFilter ff_vf_libvmaf;
diff --git a/libavfilter/vf_lagfun.c b/libavfilter/vf_lagfun.c
new file mode 100644
index 00..373b41077a
--- /dev/null
+++ b/libavfilter/vf_lagfun.c
@@ -0,0 +1,252 @@
+/*
+ * Copyright (c) 2018 Paul B Mahol
+ *
+ * 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
+ */
+
+#include "libavutil/imgutils.h"
+#include "libavutil/intreadwrite.h"
+#include "libavutil/opt.h"
+#include "libavutil/pixdesc.h"
+
+#include "avfilter.h"
+#include "formats.h"
+#include "internal.h"
+#include "video.h"
+
+typedef struct LagfunContext {
+const AVClass *class;
+const AVPixFmtDescriptor *desc;
+float decay;
+int planes;
+
+int depth;
+int nb_planes;
+int linesize[4];
+int height[4];
+
+AVFrame *old;
+
+int (*lagfun)(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs);
+} LagfunContext;
+
+static int query_formats(AVFilterContext *ctx)
+{
+static const enum AVPixelFormat pixel_fmts[] = {
+AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9,
+AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14,
+AV_PIX_FMT_GRAY16,
+AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P,
+AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P,
+AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P,
+AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P,
+AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P,
+AV_PIX_FMT_YUVJ411P,
+AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9,
+AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10,
+AV_PIX_FMT_YUV440P10,
+AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV420P12,
+AV_PIX_FMT_YUV440P12,
+AV_PIX_FMT_YUV444P14, AV_PIX_FMT_YUV422P14, AV_PIX_FMT_YUV420P14,
+AV_PIX_FMT_YUV420P16, AV_PIX_FMT_YUV422P16, AV_PIX_FMT_YUV444P16,
+AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10,
+AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16,
+AV_PIX_FMT_NONE
+};
+AVFilterFormats *formats = ff_make_format_list(pixel_fmts);
+if (!formats)
+return AVERROR(ENOMEM);
+return ff_set_common_formats(ctx, formats);
+}
+
+typedef struct ThreadData {
+AVFrame *in, *out, *old;
+} ThreadData;
+
+static int 

[FFmpeg-devel] [PATCH] avcodec/dsicinvideo: check the amount decoded by cin_decode_huffman()

2019-04-15 Thread Michael Niedermayer
Fixes: Timeout (158sec -> 36sec)
Fixes: 
14214/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DSICINVIDEO_fuzzer-5633569034076160

This is untested with valid cin files as none of the files i found cover the 
changed
codepath

Found-by: continuous fuzzing process 
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer 
---
 libavcodec/dsicinvideo.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavcodec/dsicinvideo.c b/libavcodec/dsicinvideo.c
index 37175d67b2..d422df068d 100644
--- a/libavcodec/dsicinvideo.c
+++ b/libavcodec/dsicinvideo.c
@@ -266,8 +266,11 @@ static int cinvideo_decode_frame(AVCodecContext *avctx,
  cin->bitmap_table[CIN_CUR_BMP], cin->bitmap_size);
 break;
 case 37:
-cin_decode_huffman(buf, bitmap_frame_size,
+res = cin_decode_huffman(buf, bitmap_frame_size,
cin->bitmap_table[CIN_CUR_BMP], cin->bitmap_size);
+
+if (cin->bitmap_size - 
avctx->discard_damaged_percentage*cin->bitmap_size/100 > res)
+return AVERROR_INVALIDDATA;
 break;
 case 38:
 res = cin_decode_lzss(buf, bitmap_frame_size,
-- 
2.21.0

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

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

Re: [FFmpeg-devel] [PATCH V1 1/2] lavf/hls: Cleanup the applehttp

2019-04-15 Thread Carl Eugen Hoyos
2019-04-12 13:20 GMT+02:00, Jun Zhao :
> From: Jun Zhao 
>
> Cleanup the applehttp as demuxer name, when use the command :
>
> ffmpeg -formats, get the confused information like:
> "
>  E hls Apple HTTP Live Streaming
> D  hls,applehttp   Apple HTTP Live Streaming
> "
> we don't use applehttp as the demuxer/muxer name usually, so
> cleanup the applehttp and update the documents.
>
> After the change, get the information from "ffmpeg -formats":
> "
> DE hls Apple HTTP Live Streaming
> "
>
> Signed-off-by: Jun Zhao 
> ---
>  doc/demuxers.texi |   20 +---
>  libavformat/hls.c |4 ++--
>  2 files changed, 11 insertions(+), 13 deletions(-)

> diff --git a/libavformat/hls.c b/libavformat/hls.c
> index f4e4498..1b61b4b 100644
> --- a/libavformat/hls.c
> +++ b/libavformat/hls.c
> @@ -2318,14 +2318,14 @@ static const AVOption hls_options[] = {
>  };
>
>  static const AVClass hls_class = {
> -.class_name = "hls,applehttp",
> +.class_name = "hls demuxer",
>  .item_name  = av_default_item_name,
>  .option = hls_options,
>  .version= LIBAVUTIL_VERSION_INT,
>  };
>
>  AVInputFormat ff_hls_demuxer = {
> -.name   = "hls,applehttp",
> +.name   = "hls",

This needs an entry in apichanges (which is impossible because
there was no minor version bump) iirc, I suggest you add an
entry to Changelog.

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH v2] lavf/rtsp.c: Fix stimeout option not applied on http tunnel

2019-04-15 Thread Steven Liu
Hendrik Leppkes  于2019年4月15日周一 下午7:48写道:
>
> On Mon, Apr 15, 2019 at 12:46 PM Carl Eugen Hoyos  wrote:
> >
> > 2019-04-15 9:42 GMT+02:00, Liu Steven :
> > >
> > >
> > >> 在 2019年4月11日,下午12:03,Liu Steven  写道:
> > >>
> > >>
> > >>
> > >>> 在 2019年4月11日,上午11:55,Jun Li  写道:
> > >>> ...
> > >>>
> > >>> Ping.
> > >> LGTM
> > >
> > > Pushed
> >
Ok, i should review the Author of local commit message.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH v2] lavf/rtsp.c: Fix stimeout option not applied on http tunnel

2019-04-15 Thread Hendrik Leppkes
On Mon, Apr 15, 2019 at 12:46 PM Carl Eugen Hoyos  wrote:
>
> 2019-04-15 9:42 GMT+02:00, Liu Steven :
> >
> >
> >> 在 2019年4月11日,下午12:03,Liu Steven  写道:
> >>
> >>
> >>
> >>> 在 2019年4月11日,上午11:55,Jun Li  写道:
> >>> ...
> >>>
> >>> Ping.
> >> LGTM
> >
> > Pushed
>
> Who wrote the patch that you pushed?
>

Also please carefully review anything you want to push. Needing 3
tries for one commit is just ridicoulous. Reverts still stay in the
history for ever.

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

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

Re: [FFmpeg-devel] [PATCH v2] lavf/rtsp.c: Fix stimeout option not applied on http tunnel

2019-04-15 Thread Steven Liu
Carl Eugen Hoyos  于2019年4月15日周一 下午6:46写道:
>
> 2019-04-15 9:42 GMT+02:00, Liu Steven :
> >
> >
> >> 在 2019年4月11日,下午12:03,Liu Steven  写道:
> >>
> >>
> >>
> >>> 在 2019年4月11日,上午11:55,Jun Li  写道:
> >>> ...
> >>>
> >>> Ping.
> >> LGTM
> >
> > Pushed
>
> Who wrote the patch that you pushed?
>
Wow, thanks Carl, my mistake :(
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH] avformat/dashdec: add ProgramInformation parser

2019-04-15 Thread Steven Liu
Carl Eugen Hoyos  于2019年4月15日周一 下午6:59写道:
>
> 2019-04-15 8:26 GMT+02:00, Steven Liu :
> > Signed-off-by: Steven Liu 
> > ---
> >  libavformat/dashdec.c | 32 
> >  1 file changed, 32 insertions(+)
> >
> > diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
> > index eed149cd1a..b6394403b9 100644
> > --- a/libavformat/dashdec.c
> > +++ b/libavformat/dashdec.c
> > @@ -1161,6 +1161,36 @@ static int
> > parse_manifest_adaptationset(AVFormatContext *s, const char *url,
> >  return 0;
> >  }
> >
> > +static int parse_programinformation(AVFormatContext *s, xmlNodePtr node)
> > +{
> > +xmlNodePtr programinfo_node = NULL;
> > +xmlChar *val = NULL;
>
> > +DASHContext *c = s->priv_data;
>
> Unused variable.
>
> > +
> > +programinfo_node = xmlFirstElementChild(node);
> > +while (programinfo_node) {
>
> > +if (!av_strcasecmp((const char *)programinfo_node->name,
>
> Unneeded cast.
>
> > (const char *)"Title")) {
>
> Unneeded cast.
>

Ok, will update new version.

Thanks Carl
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

[FFmpeg-devel] [PATCH v2] avformat/dashdec: add ProgramInformation parser

2019-04-15 Thread Steven Liu
Signed-off-by: Steven Liu 
---
 libavformat/dashdec.c | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
index eed149cd1a..6e3e7e4f1e 100644
--- a/libavformat/dashdec.c
+++ b/libavformat/dashdec.c
@@ -1161,6 +1161,34 @@ static int parse_manifest_adaptationset(AVFormatContext 
*s, const char *url,
 return 0;
 }
 
+static int parse_programinformation(AVFormatContext *s, xmlNodePtr node)
+{
+xmlChar *val = NULL;
+
+node = xmlFirstElementChild(node);
+while (node) {
+if (!av_strcasecmp(node->name, "Title")) {
+val = xmlNodeGetContent(node);
+if (val) {
+av_dict_set(>metadata, "Title", val, 0);
+}
+} else if (!av_strcasecmp(node->name, "Source")) {
+val = xmlNodeGetContent(node);
+if (val) {
+av_dict_set(>metadata, "Source", val, 0);
+}
+} else if (!av_strcasecmp(node->name, "Copyright")) {
+val = xmlNodeGetContent(node);
+if (val) {
+av_dict_set(>metadata, "Copyright", val, 0);
+}
+}
+node = xmlNextElementSibling(node);
+xmlFree(val);
+}
+return 0;
+}
+
 static int parse_manifest(AVFormatContext *s, const char *url, AVIOContext *in)
 {
 DASHContext *c = s->priv_data;
@@ -1310,6 +1338,8 @@ static int parse_manifest(AVFormatContext *s, const char 
*url, AVIOContext *in)
 if (c->period_start > 0)
 c->media_presentation_duration = c->period_duration;
 }
+} else if (!av_strcasecmp(node->name, "ProgramInformation")) {
+parse_programinformation(s, node);
 }
 node = xmlNextElementSibling(node);
 }
-- 
2.17.2 (Apple Git-113)



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

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

Re: [FFmpeg-devel] [PATCH] avformat/dashdec: add ProgramInformation parser

2019-04-15 Thread Carl Eugen Hoyos
2019-04-15 8:26 GMT+02:00, Steven Liu :
> Signed-off-by: Steven Liu 
> ---
>  libavformat/dashdec.c | 32 
>  1 file changed, 32 insertions(+)
>
> diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
> index eed149cd1a..b6394403b9 100644
> --- a/libavformat/dashdec.c
> +++ b/libavformat/dashdec.c
> @@ -1161,6 +1161,36 @@ static int
> parse_manifest_adaptationset(AVFormatContext *s, const char *url,
>  return 0;
>  }
>
> +static int parse_programinformation(AVFormatContext *s, xmlNodePtr node)
> +{
> +xmlNodePtr programinfo_node = NULL;
> +xmlChar *val = NULL;

> +DASHContext *c = s->priv_data;

Unused variable.

> +
> +programinfo_node = xmlFirstElementChild(node);
> +while (programinfo_node) {

> +if (!av_strcasecmp((const char *)programinfo_node->name,

Unneeded cast.

> (const char *)"Title")) {

Unneeded cast.

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH v2] lavf/rtsp.c: Fix stimeout option not applied on http tunnel

2019-04-15 Thread Carl Eugen Hoyos
2019-04-15 9:42 GMT+02:00, Liu Steven :
>
>
>> 在 2019年4月11日,下午12:03,Liu Steven  写道:
>>
>>
>>
>>> 在 2019年4月11日,上午11:55,Jun Li  写道:
>>> ...
>>>
>>> Ping.
>> LGTM
>
> Pushed

Who wrote the patch that you pushed?

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Re: [FFmpeg-devel] [PATCH] mxfdec: Constrain run-in to 64k

2019-04-15 Thread Carl Eugen Hoyos
2019-04-15 10:30 GMT+02:00, Tomas Härdin :
> This isn't likely to be a huge problem, but it allows us to reason more
> about run-in. It also exposes my gripe about klv_read_packet() using
> mxf_read_sync()

Does this patch have an effect on one of our samples?

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

[FFmpeg-devel] [PATCH v1] avformat/flvdec: fix the problem of packet mismatch while reading rtmp stream

2019-04-15 Thread Lance.Gao
Signed-off-by: Lance.Gao 
---
 libavformat/flvdec.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index b531a39..bc63dd2 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -1003,6 +1003,8 @@ static int flv_read_packet(AVFormatContext *s, AVPacket 
*pkt)
 int orig_size;
 
 retry:
+if (avio_feof(s->pb))
+return AVERROR_EOF;
 /* pkt size is repeated at end. skip it */
 pos  = avio_tell(s->pb);
 type = (avio_r8(s->pb) & 0x1F);
-- 
2.7.4

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

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

[FFmpeg-devel] [PATCH] mxfdec: Constrain run-in to 64k

2019-04-15 Thread Tomas Härdin
This isn't likely to be a huge problem, but it allows us to reason more
about run-in. It also exposes my gripe about klv_read_packet() using
mxf_read_sync()

/TomasFrom c2d66c4aa3105e33f8485234ca760da699cdfb4d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tomas=20H=C3=A4rdin?= 
Date: Sun, 14 Apr 2019 21:18:35 +0200
Subject: [PATCH] mxfdec: Constrain run-in to 64k

S377m says we should.
Fix use of magic 14s while we're at it.
---
 libavformat/mxfdec.c | 17 -
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index 8c65a2bbcf..6af760c5c4 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -282,6 +282,7 @@ typedef struct MXFContext {
 int local_tags_count;
 uint64_t footer_partition;
 KLVPacket current_klv_data;
+#define MXF_MAX_RUN_IN 65535/* S377m section 5.5 */
 int run_in;
 MXFPartition *current_partition;
 int parsing_backward;
@@ -383,10 +384,10 @@ static int64_t klv_decode_ber_length(AVIOContext *pb)
 return size;
 }
 
-static int mxf_read_sync(AVIOContext *pb, const uint8_t *key, unsigned size)
+static int mxf_read_sync(AVIOContext *pb, const uint8_t *key, unsigned size, int64_t max_read)
 {
 int i, b;
-for (i = 0; i < size && !avio_feof(pb); i++) {
+for (i = 0; i < size && !avio_feof(pb) && max_read > 0; i++, max_read--) {
 b = avio_r8(pb);
 if (b == key[0])
 i = 0;
@@ -399,7 +400,7 @@ static int mxf_read_sync(AVIOContext *pb, const uint8_t *key, unsigned size)
 static int klv_read_packet(KLVPacket *klv, AVIOContext *pb)
 {
 int64_t length, pos;
-if (!mxf_read_sync(pb, mxf_klv_key, 4))
+if (!mxf_read_sync(pb, mxf_klv_key, 4, INT64_MAX))
 return AVERROR_INVALIDDATA;
 klv->offset = avio_tell(pb) - 4;
 memcpy(klv->key, mxf_klv_key, 4);
@@ -3149,11 +3150,13 @@ static int mxf_read_header(AVFormatContext *s)
 
 mxf->last_forward_tell = INT64_MAX;
 
-if (!mxf_read_sync(s->pb, mxf_header_partition_pack_key, 14)) {
+if (!mxf_read_sync(s->pb, mxf_header_partition_pack_key,
+sizeof(mxf_header_partition_pack_key),
+MXF_MAX_RUN_IN + sizeof(mxf_header_partition_pack_key))) {
 av_log(s, AV_LOG_ERROR, "could not find header partition pack key\n");
 return AVERROR_INVALIDDATA;
 }
-avio_seek(s->pb, -14, SEEK_CUR);
+avio_seek(s->pb, -sizeof(mxf_header_partition_pack_key), SEEK_CUR);
 mxf->fc = s;
 mxf->run_in = avio_tell(s->pb);
 
@@ -3591,6 +3594,10 @@ static int mxf_probe(const AVProbeData *p) {
 /* Must skip Run-In Sequence and search for MXF header partition pack key SMPTE 377M 5.5 */
 end -= sizeof(mxf_header_partition_pack_key);
 
+if (end - bufp > MXF_MAX_RUN_IN) {
+end = bufp + MXF_MAX_RUN_IN;
+}
+
 for (; bufp < end;) {
 if (!((bufp[13] - 1) & 0xF2)){
 if (AV_RN32(bufp   ) == AV_RN32(mxf_header_partition_pack_key   ) &&
-- 
2.11.0

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

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

Re: [FFmpeg-devel] [PATCH] avcodec: add drop_changed_frames

2019-04-15 Thread Hendrik Leppkes
On Mon, Apr 15, 2019 at 8:17 AM Gyan  wrote:
>
>
>
> On 15-04-2019 12:17 AM, James Almer wrote:
> > On 4/14/2019 3:29 PM, Hendrik Leppkes wrote:
> >> On Sun, Apr 14, 2019 at 6:50 PM Gyan  wrote:
> >>> Implemented this patch
> >>> http://www.ffmpeg.org/pipermail/ffmpeg-devel/2019-March/241733.html
> >>>
> >>>
> >>>in libavcodec as suggested by Michael
> >>>
> >> This sure adds a lot of additional fields to the main struct for a
> >> rather specialized feature, that I personally rather see in the hands
> >> of the user of avcodec, not avcodec itself.
> >>
> >> In any case, can't we do this without any new public fields at all?
> >> Put the initial_* state fields into an internal struct (ie.
> >> AVCodecInternal), and expose enabling this through
> >> AVCodecContext->flags or flags2?
> >> That would make me feel much less dirty looking at this patch, personally.
> > +1
> >
> > There has been work to turn public AVCodecContext fields into internal
> > codec options recently as they were too specialized. This commit adds
> > half a dozen of such fields in one go, so it just feels wrong.
>
> Since, for this proposed use, the initial frame information has to be
> recorded, I thought to make them public, so any avcodec user could check
> them for other purposes. Right now, their population is contingent on
> the changed option being set, but that can be taken care of. But no firm
> preference here.
>
> I have a soft preference to keep the first field distinct in avctx, as
> I've seen CLI users to be sloppy both with option placement and setting
> multiple flags correctly for both the same or different target streams.
>

CLI usability problems should be resolved in the CLI tools, not in the
avcodec API, imho.

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

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

Re: [FFmpeg-devel] [PATCH v2] lavf/rtsp.c: Fix stimeout option not applied on http tunnel

2019-04-15 Thread Liu Steven


> 在 2019年4月11日,下午12:03,Liu Steven  写道:
> 
> 
> 
>> 在 2019年4月11日,上午11:55,Jun Li  写道:
>> ...
>> 
>> Ping.
> LGTM

Pushed


Thanks

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

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

[FFmpeg-devel] [PATCH v1] lavf/img2enc: add support for option strftime_source

2019-04-15 Thread Jun Li
Currently the strftime option generate timestamp based on generation
time. The new option would calcualte timestamp from source's
start_realtime and pkt->pts, try to generate a timestamp matches the
source starting time.
---
 doc/muxers.texi   |  4 
 libavformat/img2enc.c | 39 +++
 libavformat/rtsp.c|  1 +
 3 files changed, 44 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 83ae017d6c..58d2d0ee7c 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -1190,6 +1190,10 @@ 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_source
+If set to 1, expand the filename with date and time information from source.
+Useful when input is live stream like rtsp.
+
 @item strftime
 If set to 1, expand the filename with date and time information from
 @code{strftime()}. Default value is 0.
diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c
index bec4bf81dd..8ba95ee3d5 100644
--- a/libavformat/img2enc.c
+++ b/libavformat/img2enc.c
@@ -45,6 +45,7 @@ typedef struct VideoMuxData {
 int frame_pts;
 const char *muxer;
 int use_rename;
+int strftime_source;
 } VideoMuxData;
 
 static int write_header(AVFormatContext *s)
@@ -96,6 +97,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
 struct tm *tm, tmpbuf;
 time();
 tm = localtime_r(, );
+
 if (!strftime(filename, sizeof(filename), img->path, tm)) {
 av_log(s, AV_LOG_ERROR, "Could not get frame filename with 
strftime\n");
 return AVERROR(EINVAL);
@@ -105,6 +107,42 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
 av_log(s, AV_LOG_ERROR, "Cannot write filename by pts of the 
frames.");
 return AVERROR(EINVAL);
 }
+} else if (img->strftime_source) {
+int64_t start_realtime = s->start_time_realtime;
+time_t sec = 0;
+struct tm *tm;
+
+if (start_realtime == AV_NOPTS_VALUE) {
+// The value is not passed from input context to output, try 
to find in metadata.
+AVDictionaryEntry *entry = av_dict_get(s->metadata, 
"start_realtime", NULL, 0);
+if (entry) {
+av_log(s, AV_LOG_INFO, "Get start time from metadata 
start_realtime: %s\n", entry->value);
+start_realtime = strtoll(entry->value, NULL, 0);
+} else {
+if (ff_parse_creation_time_metadata(s, _realtime, 0) 
!= 0)
+av_log(s, AV_LOG_INFO, "Use creation_time as 
start_timestamp.\n");
+}
+
+if (start_realtime == 0 || start_realtime == AV_NOPTS_VALUE) {
+av_log(s, AV_LOG_WARNING, "Could not get start_realtime 
from source, set value to now.\n");
+time();
+s->start_time_realtime = sec * AV_TIME_BASE;
+} else {
+s->start_time_realtime = start_realtime;
+}
+} 
+
+if (!sec) {
+int64_t offset = av_rescale_q(pkt->pts, 
s->streams[0]->time_base, AV_TIME_BASE_Q);
+int64_t timestamp = start_realtime + offset;
+sec = timestamp / AV_TIME_BASE;
+}
+
+tm = gmtime();
+if (!strftime(filename, sizeof(filename), img->path, tm)) {
+av_log(s, AV_LOG_ERROR, "Could not get frame filename with 
strftime\n");
+return AVERROR(EINVAL);
+}
 } else if (av_get_frame_filename2(filename, sizeof(filename), 
img->path,
   img->img_number,
   AV_FRAME_FILENAME_FLAGS_MULTIPLE) < 
0 &&
@@ -215,6 +253,7 @@ static const AVOption muxoptions[] = {
 { "strftime", "use strftime for filename", OFFSET(use_strftime),  
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC },
 { "frame_pts","use current frame pts for filename", OFFSET(frame_pts), 
 AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC },
 { "atomic_writing", "write files atomically (using temporary files and 
renames)", OFFSET(use_rename), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, ENC },
+{ "strftime_source", "use strftime for filename and timestamp(UTC) from 
source if exists", OFFSET(strftime_source), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 
1, ENC },
 { NULL },
 };
 
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 8349840c96..16bb143ca6 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -2253,6 +2253,7 @@ redo:
 (uint64_t) rtpctx->st->time_base.num * 
100,
rtpctx->st->time_base.den);
 }
+

[FFmpeg-devel] [PATCH] avformat/dashdec: add ProgramInformation parser

2019-04-15 Thread Steven Liu
Signed-off-by: Steven Liu 
---
 libavformat/dashdec.c | 32 
 1 file changed, 32 insertions(+)

diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
index eed149cd1a..b6394403b9 100644
--- a/libavformat/dashdec.c
+++ b/libavformat/dashdec.c
@@ -1161,6 +1161,36 @@ static int parse_manifest_adaptationset(AVFormatContext 
*s, const char *url,
 return 0;
 }
 
+static int parse_programinformation(AVFormatContext *s, xmlNodePtr node)
+{
+xmlNodePtr programinfo_node = NULL;
+xmlChar *val = NULL;
+DASHContext *c = s->priv_data;
+
+programinfo_node = xmlFirstElementChild(node);
+while (programinfo_node) {
+if (!av_strcasecmp((const char *)programinfo_node->name, (const char 
*)"Title")) {
+val = xmlNodeGetContent(programinfo_node);
+if (val && strlen(val) < 1024) {
+av_dict_set(>metadata, "Title", val, 0);
+}
+} else if (!av_strcasecmp((const char *)programinfo_node->name, (const 
char *)"Source")) {
+val = xmlNodeGetContent(programinfo_node);
+if (val && strlen(val) < 1024) {
+av_dict_set(>metadata, "Source", val, 0);
+}
+} else if (!av_strcasecmp((const char *)programinfo_node->name, (const 
char *)"Copyright")) {
+val = xmlNodeGetContent(programinfo_node);
+if (val && strlen(val) < 1024) {
+av_dict_set(>metadata, "Copyright", val, 0);
+}
+}
+programinfo_node = xmlNextElementSibling(programinfo_node);
+xmlFree(val);
+}
+return 0;
+}
+
 static int parse_manifest(AVFormatContext *s, const char *url, AVIOContext *in)
 {
 DASHContext *c = s->priv_data;
@@ -1310,6 +1340,8 @@ static int parse_manifest(AVFormatContext *s, const char 
*url, AVIOContext *in)
 if (c->period_start > 0)
 c->media_presentation_duration = c->period_duration;
 }
+} else if (!av_strcasecmp(node->name, (const char 
*)"ProgramInformation")) {
+parse_programinformation(s, node);
 }
 node = xmlNextElementSibling(node);
 }
-- 
2.17.2 (Apple Git-113)



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

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

Re: [FFmpeg-devel] [PATCH] avcodec: add drop_changed_frames

2019-04-15 Thread Gyan



On 15-04-2019 12:17 AM, James Almer wrote:

On 4/14/2019 3:29 PM, Hendrik Leppkes wrote:

On Sun, Apr 14, 2019 at 6:50 PM Gyan  wrote:

Implemented this patch
http://www.ffmpeg.org/pipermail/ffmpeg-devel/2019-March/241733.html


   in libavcodec as suggested by Michael


This sure adds a lot of additional fields to the main struct for a
rather specialized feature, that I personally rather see in the hands
of the user of avcodec, not avcodec itself.

In any case, can't we do this without any new public fields at all?
Put the initial_* state fields into an internal struct (ie.
AVCodecInternal), and expose enabling this through
AVCodecContext->flags or flags2?
That would make me feel much less dirty looking at this patch, personally.

+1

There has been work to turn public AVCodecContext fields into internal
codec options recently as they were too specialized. This commit adds
half a dozen of such fields in one go, so it just feels wrong.


Since, for this proposed use, the initial frame information has to be 
recorded, I thought to make them public, so any avcodec user could check 
them for other purposes. Right now, their population is contingent on 
the changed option being set, but that can be taken care of. But no firm 
preference here.


I have a soft preference to keep the first field distinct in avctx, as 
I've seen CLI users to be sloppy both with option placement and setting 
multiple flags correctly for both the same or different target streams.


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

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