Re: [FFmpeg-devel] [PATCH] avcodec/hevc_ps: fix valid range of num_tile_{columns, rows}_minus1

2019-07-05 Thread Michael Niedermayer
On Sun, Jun 30, 2019 at 05:45:58PM -0300, James Almer wrote:
> From 7.4.3.3.1:
> 
> num_tile_columns_minus1 shall be in the range of 0 to PicWidthInCtbsY - 1, 
> inclusive.
> num_tile_rows_minus1 shall be in the range of 0 to PicHeightInCtbsY - 1, 
> inclusive.
> 
> Signed-off-by: James Almer 
> ---
> Sorry for not noticing it when reviewing c692051252 and 3b2082c663.
> 
>  libavcodec/hevc_ps.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

LGTM

Thanks!

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

When the tyrant has disposed of foreign enemies by conquest or treaty, and
there is nothing more to fear from them, then he is always stirring up
some war or other, in order that the people may require a leader. -- Plato


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 v4] avfilter/avf_aphasemeter: Add out-of-phase and mono detection

2019-07-05 Thread Michael Niedermayer
On Wed, Jul 03, 2019 at 03:33:46PM +0200, Romane Lafon wrote:
> I've added documentation for the extension of aphasemeter filter.
> Also, I'm not sure that "phasing" is the right word to describe the
> detection.

>  doc/filters.texi  |   32 ++
>  libavfilter/avf_aphasemeter.c |  127 
> --
>  2 files changed, 155 insertions(+), 4 deletions(-)
> d7ceb2e8f553300c6ba9058bd292244bc072173f  
> 0001-avfilter-avf_aphasemeter-Add-out-of-phase-and_v4.patch
> From 1e356929e878a2081add102b77a9560647232ef8 Mon Sep 17 00:00:00 2001
> From: Romane Lafon 
> Date: Wed, 3 Jul 2019 15:15:16 +0200
> Subject: [PATCH] avfilter/avf_aphasemeter: Add out of phase and mono detection
> 
> Signed-off-by: Romane Lafon 
> ---
>  doc/filters.texi  |  32 +++
>  libavfilter/avf_aphasemeter.c | 127 
> --
>  2 files changed, 155 insertions(+), 4 deletions(-)
> 
> diff --git a/doc/filters.texi b/doc/filters.texi
> index 700a76f239..ec8c73d558 100644
> --- a/doc/filters.texi
> +++ b/doc/filters.texi
> @@ -20656,6 +20656,38 @@ Set color which will be used for drawing median 
> phase. If color is
>  Enable video output. Default is enabled.
>  @end table
>  
> +@subsection phasing detection
> +
> +The filter also detects out of phase and mono sequences in stereo streams.
> +It logs the sequence start, end and duration when it lasts longer or as long 
> as the minimum set.
> +
> +The filter accepts the following options for this detection:
> +
> +@table @option
> +@item phasing
> +Enable mono and out of phase detection. Default is disabled.
> +
> +@item tolerance
> +Set phase tolerance for mono detection, in amplitude ratio. Default is 
> @code{0}.
> +Allowed range is @code{[0, 1]}.
> +
> +@item angle
> +Set angle threshold for out of phase detection, in degree. Default is 
> @code{170}.
> +Allowed range is @code{[0, 180]}.
> +
> +@item duration
> +Set mono or out of phase duration until notification, expressed in seconds. 
> Default is @code{2}.
> +
> +@subsection Examples
> +
> +@itemize
> +@item
> +Complete example with @command{ffmpeg} to detect 1 second of mono with 0.001 
> phase tolerance:
> +@example
> +ffmpeg -i stereo.wav -af 
> aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
> +@end example
> +@end itemize
> +
>  @section avectorscope
>  
>  Convert input audio to a video output, representing the audio vector

this breaks building docs

HTMLdoc/ffmpeg-all.html
doc/filters.texi:20681: @subsection seen before @end table
make: *** [doc/ffmpeg-all.html] Error 1

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The worst form of inequality is to try to make unequal things equal.
-- Aristotle


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 v4] avfilter/avf_aphasemeter: Add out-of-phase and mono detection

2019-07-05 Thread Devin Heitmueller
On Wed, Jul 3, 2019 at 9:34 AM Romane Lafon  wrote:
>
> I've added documentation for the extension of aphasemeter filter.
> Also, I'm not sure that "phasing" is the right word to describe the
> detection.

In some commercial analyzers I've also seen audio phase presented
using the term "lissajous" (after the name of the actual curve), but
personally I prefer to refer to it as audio phase.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
___
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] avutil: add av_memcpy() to avoid undefined behavior with NULL, NULL, 0

2019-07-05 Thread Tomas Härdin
ons 2019-07-03 klockan 10:46 +0200 skrev Michael Niedermayer:
> On Wed, Jul 03, 2019 at 09:41:41AM +0200, Reimar Döffinger wrote:
> > 
> > 
> > On 03.07.2019, at 08:29, Michael Niedermayer  wrote:
> > 
> > > On Tue, Jul 02, 2019 at 08:42:43PM -0300, James Almer wrote:
> > > > 
> > > > How many cases are there in the codebase where cnt can be 0, and dst or
> > > > src NULL, without it having been checked before calling memcpy? And from
> > > > those, which would not be from situations where the code should have
> > > > instead aborted and returned ENOMEM, or EINVAL if either of them are
> > > > function arguments?
> > > 
> > > There are around 2500 occurances of memcpy in the codebase
> > > To awnser your question it would be needed to review all of them and in 
> > > many
> > > cases their surrounding code.
> > > So that is unlikely to be awnsered by anyone accuratly
> > > 
> > > Also iam not sure i understand why you ask or why this would matter
> > > the suggested function allows to simplify cases where the NULL can
> > > occur, not where it cannot or should not. That is this is intended for
> > > the cases where we already have or are adding explicit checks to
> > > avoid the NULL case.
> > > 
> > > i could rename this to av_memcpy_nullsafe which would make it clearer but
> > > also its more to write and read
> > 
> > I admit I thought that a worthwhile idea originally,
> > but I have to think back to a long time ago that every function
> > added to our "API" has a cost of people having to know about it and
> > how to use it.
> > And if it's currently only 2 places that would benefit I think
> > James is right to ask if it makes sense.
> > Of course another question might be if it might make sense to
> > replace all memcpy uses with it.
> > I mean, isn't it naturally expected behaviour that the pointers
> > would be ignored if the copy amount is 0? There might be a lot of
> > code assuming that we do not know about...
> 
> in addition to the 2 there are these related commits found by very dumb git 
> log greps
> In further addition there would be cases that deal with src == dst, something 
> we
> could add a check for in av_memcpy() too

All of these proposed "solutions" are equally horrible

I'm going to raise the issue of formal verification again (Frama-C and
friends), because crap like this should be checked at compile time, not
with flakey runtime checks.

I gave adding ACSL markup to parts of lavu a stab a while back, and it
looked somewhat promising. Bit hacks present a bit of a problem
however..

/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] Ensure scaled video is divisible by n

2019-07-05 Thread Michael Niedermayer
On Wed, Jul 03, 2019 at 06:16:51PM +0200, Lars Kiesow wrote:
> This patch adds a new option to the scale filter which ensures that the
> output resolution is divisible by the given integer similar to using -n
> in the `w` and `h` options. But this works even if the
> `force_original_aspect_ratio` is used.
> 
> The use case for this is to set a fixed target resolution using `w` and
> `h`, to use the `force_original_aspect_ratio` option to make sure that
> the video always fits in the defined bounding box regardless of aspect
> ratio, but to also make sure that the calculated output resolution is
> divisible by n so in can be encoded with certain encoders/options if
> that is required.
> 
> Signed-off-by: Lars Kiesow 
> ---
>  doc/filters.texi   | 5 +
>  libavfilter/vf_scale.c | 9 ++---
>  2 files changed, 11 insertions(+), 3 deletions(-)

commit message should begin with a prefix like 
avfilter/vf_scale: ...

> 
> diff --git a/doc/filters.texi b/doc/filters.texi
> index 700a76f239..1694fdda28 100644
> --- a/doc/filters.texi
> +++ b/doc/filters.texi
> @@ -15215,6 +15215,11 @@ Please note that this is a different thing than 
> specifying -1 for @option{w}
>  or @option{h}, you still need to specify the output resolution for this 
> option
>  to work.
>  
> +@item force_divisible_by
> +Ensures that the output resolution is divisible by the given integer similar
> +to using -n in the @option{w} and @option{h} options. But this works even if
> +the @option{force_original_aspect_ratio} is used.
> +
>  @end table
>  
>  The values of the @option{w} and @option{h} options are expressions
> diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
> index f741419e7e..d1b486f3d6 100644
> --- a/libavfilter/vf_scale.c
> +++ b/libavfilter/vf_scale.c
> @@ -86,6 +86,7 @@ typedef struct ScaleContext {
>  int in_v_chr_pos;
>  
>  int force_original_aspect_ratio;
> +int force_divisible_by;
>  
>  int nb_slices;
>  
> @@ -237,10 +238,11 @@ static int config_props(AVFilterLink *outlink)
>  goto fail;
>  
>  /* Note that force_original_aspect_ratio may overwrite the previous set
> - * dimensions so that it is not divisible by the set factors anymore. */
> + * dimensions so that it is not divisible by the set factors anymore
> + * unless force_divisible_by is defined as well */
>  if (scale->force_original_aspect_ratio) {
> -int tmp_w = av_rescale(h, inlink->w, inlink->h);
> -int tmp_h = av_rescale(w, inlink->h, inlink->w);
> +int tmp_w = av_rescale(h, inlink->w, inlink->h) / 
> scale->force_divisible_by * scale->force_divisible_by;
> +int tmp_h = av_rescale(w, inlink->h, inlink->w) / 
> scale->force_divisible_by * scale->force_divisible_by;

what does this feature have to do with force_original_aspect_ratio ?
i think it should not be under this if()

also the rounding is always down, it probably should be rounding to closest
(for n=2 it doesnt matter but for larger divisibility like 16 rounding down
by 15 instead of rounding up by 1 seems not ideal


[...]

thx

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Awnsering whenever a program halts or runs forever is
On a turing machine, in general impossible (turings halting problem).
On any real computer, always possible as a real computer has a finite number
of states N, and will either halt in less than N cycles or never halt.


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 1/2] avformat/rpl: Fix detection of 8-bit linear formats

2019-07-05 Thread Michael Niedermayer
On Fri, Jun 14, 2019 at 08:51:33PM +0100, Cameron Cawley wrote:
> Was previously broken by commit 8cf5f94.
> Fixes ticket #7859
> 
> Signed-off-by: Cameron Cawley 
> ---
>  libavformat/rpl.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

will apply patchset

still a fate test should be added for these, or someone will break itz again

thx

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

If you fake or manipulate statistics in a paper in physics you will never
get a job again.
If you fake or manipulate statistics in a paper in medicin you will get
a job for life at the pharma industry.


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 1/2] avcodec: Implement Acorn Replay IMA ADPCM decoder

2019-07-05 Thread Michael Niedermayer
On Thu, Jun 27, 2019 at 08:56:01PM +0100, Cameron Cawley wrote:
> Signed-off-by: Cameron Cawley 
> ---
>  doc/general.texi|  1 +
>  libavcodec/Makefile |  1 +
>  libavcodec/adpcm.c  | 14 ++
>  libavcodec/allcodecs.c  |  1 +
>  libavcodec/avcodec.h|  1 +
>  libavcodec/codec_desc.c |  7 +++
>  libavcodec/utils.c  |  1 +
>  7 files changed, 26 insertions(+)
> 
> diff --git a/doc/general.texi b/doc/general.texi
> index ed3cdfcf99..fbbbc24753 100644
> --- a/doc/general.texi
> +++ b/doc/general.texi
> @@ -1070,6 +1070,7 @@ following image formats are supported:
>  @item ADPCM Electronic Arts XAS @tab @tab  X
>  @item ADPCM G.722@tab  X  @tab  X
>  @item ADPCM G.726@tab  X  @tab  X
> +@item ADPCM IMA Acorn Replay @tab @tab  X
>  @item ADPCM IMA AMV  @tab @tab  X
>  @tab Used in AMV files
>  @item ADPCM IMA Electronic Arts EACS  @tab @tab  X
> diff --git a/libavcodec/Makefile b/libavcodec/Makefile
> index edccd73037..9c0dd5d189 100644
> --- a/libavcodec/Makefile
> +++ b/libavcodec/Makefile
> @@ -825,6 +825,7 @@ OBJS-$(CONFIG_ADPCM_G726_DECODER) += g726.o
>  OBJS-$(CONFIG_ADPCM_G726_ENCODER) += g726.o
>  OBJS-$(CONFIG_ADPCM_G726LE_DECODER)   += g726.o
>  OBJS-$(CONFIG_ADPCM_G726LE_ENCODER)   += g726.o
> +OBJS-$(CONFIG_ADPCM_IMA_ACORN_DECODER)+= adpcm.o adpcm_data.o
>  OBJS-$(CONFIG_ADPCM_IMA_AMV_DECODER)  += adpcm.o adpcm_data.o
>  OBJS-$(CONFIG_ADPCM_IMA_APC_DECODER)  += adpcm.o adpcm_data.o
>  OBJS-$(CONFIG_ADPCM_IMA_DAT4_DECODER) += adpcm.o adpcm_data.o
> diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
> index ede0130bf1..1d4b4d2c22 100644
> --- a/libavcodec/adpcm.c
> +++ b/libavcodec/adpcm.c
> @@ -594,6 +594,7 @@ static int get_nb_samples(AVCodecContext *avctx, 
> GetByteContext *gb,
>  switch (avctx->codec->id) {
>  case AV_CODEC_ID_ADPCM_4XM:
>  case AV_CODEC_ID_ADPCM_AGM:
> +case AV_CODEC_ID_ADPCM_IMA_ACORN:
>  case AV_CODEC_ID_ADPCM_IMA_DAT4:
>  case AV_CODEC_ID_ADPCM_IMA_ISS: header_size = 4 * ch;  break;
>  case AV_CODEC_ID_ADPCM_IMA_AMV: header_size = 8;   break;
> @@ -1412,6 +1413,18 @@ static int adpcm_decode_frame(AVCodecContext *avctx, 
> void *data,
>  }
>  }
>  break;
> +case AV_CODEC_ID_ADPCM_IMA_ACORN:
> +for (i=0; i<=st; i++) {
> +bytestream2_skip(&gb, 2); // TODO: What does this do?
> +c->status[i].step_index = bytestream2_get_le16u(&gb);
> +}

where can we find such adpcm files for testing ?

2 bytes per stream could be initial raw pcm samples

thx

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

No great genius has ever existed without some touch of madness. -- Aristotle


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 2/2] avformat/rpl: Calculate the duration of the video track

2019-07-05 Thread Michael Niedermayer
On Sun, Jun 30, 2019 at 12:00:44AM +0100, Cameron Cawley wrote:
> ---
>  libavformat/rpl.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/libavformat/rpl.c b/libavformat/rpl.c
> index 579ab4f57e..d31c7f09ad 100644
> --- a/libavformat/rpl.c
> +++ b/libavformat/rpl.c
> @@ -280,8 +280,10 @@ static int rpl_read_header(AVFormatContext *s)
>  read_line_and_int(pb, &error);   //   (file index)
>  error |= read_line(pb, line, sizeof(line));  // offset to "helpful" 
> sprite
>  error |= read_line(pb, line, sizeof(line));  // size of "helpful" sprite
> -if (vst)
> +if (vst) {
>  error |= read_line(pb, line, sizeof(line));  // offset to key frame 
> list
> +vst->duration = number_of_chunks * rpl->frames_per_chunk;
> +}
>  
>  // Read the index
>  avio_seek(pb, chunk_catalog_offset, SEEK_SET);

will apply

thanks

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

It is dangerous to be right in matters on which the established authorities
are wrong. -- 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 1/2] avformat/rpl: Replace strcpy with av_strlcpy

2019-07-05 Thread Michael Niedermayer
On Sun, Jun 30, 2019 at 12:00:43AM +0100, Cameron Cawley wrote:
> ---
>  libavformat/rpl.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libavformat/rpl.c b/libavformat/rpl.c
> index b4859320f4..579ab4f57e 100644
> --- a/libavformat/rpl.c
> +++ b/libavformat/rpl.c
> @@ -192,7 +192,7 @@ static int rpl_read_header(AVFormatContext *s)
>  // samples, though. This code will ignore additional tracks.
>  error |= read_line(pb, line, sizeof(line));
>  audio_format = read_int(line, &endptr, &error);  // audio format ID
> -strcpy(audio_codec, endptr);
> +av_strlcpy(audio_codec, endptr, RPL_LINE_LENGTH);
>  if (audio_format) {
>  ast = avformat_new_stream(s, NULL);
>  if (!ast)
> @@ -203,7 +203,7 @@ static int rpl_read_header(AVFormatContext *s)
>  ast->codecpar->channels= read_line_and_int(pb, &error);  // 
> number of audio channels
>  error |= read_line(pb, line, sizeof(line));
>  ast->codecpar->bits_per_coded_sample = read_int(line, &endptr, 
> &error);  // audio bits per sample
> -strcpy(audio_type, endptr);
> +av_strlcpy(audio_type, endptr, RPL_LINE_LENGTH);
>  // At least one sample uses 0 for ADPCM, which is really 4 bits
>  // per sample.
>  if (ast->codecpar->bits_per_coded_sample == 0)

please include this in the patch that adds the strcpy()

thanks

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

He who knows, does not speak. He who speaks, does not know. -- Lao Tsu


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 1/2] avcodec: Implement Acorn Replay IMA ADPCM decoder

2019-07-05 Thread Cameron Cawley
Samples are available from
http://riscos.com/ftp_space/370/files/diversions.zip (in the "AudioDemos"
folder) and http://riscos.com/ftp_space/370/files/sound.zip (the files
"1812" and "Enigma").

On Fri, 5 Jul 2019 at 17:16, Michael Niedermayer 
wrote:

> On Thu, Jun 27, 2019 at 08:56:01PM +0100, Cameron Cawley wrote:
> > Signed-off-by: Cameron Cawley 
> > ---
> >  doc/general.texi|  1 +
> >  libavcodec/Makefile |  1 +
> >  libavcodec/adpcm.c  | 14 ++
> >  libavcodec/allcodecs.c  |  1 +
> >  libavcodec/avcodec.h|  1 +
> >  libavcodec/codec_desc.c |  7 +++
> >  libavcodec/utils.c  |  1 +
> >  7 files changed, 26 insertions(+)
> >
> > diff --git a/doc/general.texi b/doc/general.texi
> > index ed3cdfcf99..fbbbc24753 100644
> > --- a/doc/general.texi
> > +++ b/doc/general.texi
> > @@ -1070,6 +1070,7 @@ following image formats are supported:
> >  @item ADPCM Electronic Arts XAS @tab @tab  X
> >  @item ADPCM G.722@tab  X  @tab  X
> >  @item ADPCM G.726@tab  X  @tab  X
> > +@item ADPCM IMA Acorn Replay @tab @tab  X
> >  @item ADPCM IMA AMV  @tab @tab  X
> >  @tab Used in AMV files
> >  @item ADPCM IMA Electronic Arts EACS  @tab @tab  X
> > diff --git a/libavcodec/Makefile b/libavcodec/Makefile
> > index edccd73037..9c0dd5d189 100644
> > --- a/libavcodec/Makefile
> > +++ b/libavcodec/Makefile
> > @@ -825,6 +825,7 @@ OBJS-$(CONFIG_ADPCM_G726_DECODER) += g726.o
> >  OBJS-$(CONFIG_ADPCM_G726_ENCODER) += g726.o
> >  OBJS-$(CONFIG_ADPCM_G726LE_DECODER)   += g726.o
> >  OBJS-$(CONFIG_ADPCM_G726LE_ENCODER)   += g726.o
> > +OBJS-$(CONFIG_ADPCM_IMA_ACORN_DECODER)+= adpcm.o adpcm_data.o
> >  OBJS-$(CONFIG_ADPCM_IMA_AMV_DECODER)  += adpcm.o adpcm_data.o
> >  OBJS-$(CONFIG_ADPCM_IMA_APC_DECODER)  += adpcm.o adpcm_data.o
> >  OBJS-$(CONFIG_ADPCM_IMA_DAT4_DECODER) += adpcm.o adpcm_data.o
> > diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
> > index ede0130bf1..1d4b4d2c22 100644
> > --- a/libavcodec/adpcm.c
> > +++ b/libavcodec/adpcm.c
> > @@ -594,6 +594,7 @@ static int get_nb_samples(AVCodecContext *avctx,
> GetByteContext *gb,
> >  switch (avctx->codec->id) {
> >  case AV_CODEC_ID_ADPCM_4XM:
> >  case AV_CODEC_ID_ADPCM_AGM:
> > +case AV_CODEC_ID_ADPCM_IMA_ACORN:
> >  case AV_CODEC_ID_ADPCM_IMA_DAT4:
> >  case AV_CODEC_ID_ADPCM_IMA_ISS: header_size = 4 * ch;
> break;
> >  case AV_CODEC_ID_ADPCM_IMA_AMV: header_size = 8;
>  break;
> > @@ -1412,6 +1413,18 @@ static int adpcm_decode_frame(AVCodecContext
> *avctx, void *data,
> >  }
> >  }
> >  break;
> > +case AV_CODEC_ID_ADPCM_IMA_ACORN:
> > +for (i=0; i<=st; i++) {
> > +bytestream2_skip(&gb, 2); // TODO: What does this do?
> > +c->status[i].step_index = bytestream2_get_le16u(&gb);
> > +}
>
> where can we find such adpcm files for testing ?
>
> 2 bytes per stream could be initial raw pcm samples
>
> thx
>
> [...]
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> No great genius has ever existed without some touch of madness. --
> Aristotle
> ___
> 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 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] gdigrab: fix mouse position for multi-monitor setup with different scale settings

2019-07-05 Thread Dilshod Mukhtarov

Hi,

This is the patch that fixes the drawing of cursor in incorrect position 
on Windows with multi-monitor setup with different scales on different 
monitors


--
With the best regards,
Dilshod

>From 17f2a9b956d440bfedc38f8a6de50886de04b1dd Mon Sep 17 00:00:00 2001
From: Dilshod Muktharov 
Date: Thu, 4 Jul 2019 23:33:27 +0400
Subject: [PATCH 2/2] Cursor recording HighDPI support for Windows
 multi-monitor mode

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

diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c
index 276b448692..eeae9ba5a7 100644
--- a/libavdevice/gdigrab.c
+++ b/libavdevice/gdigrab.c
@@ -644,6 +644,10 @@ static void paint_mouse_pointer(AVFormatContext *s1, struct gdigrab *gdigrab)
 info.hbmMask = NULL;
 info.hbmColor = NULL;
 
+int log_x = ci.ptScreenPos.x;
+int log_y = ci.ptScreenPos.y;
+int ind   = get_monitor_id_by_logical_point(log_x, log_y);
+
 if (ci.flags != CURSOR_SHOWING)
 return;
 
@@ -663,21 +667,17 @@ static void paint_mouse_pointer(AVFormatContext *s1, struct gdigrab *gdigrab)
 RECT rect;
 
 if (GetWindowRect(hwnd, &rect)) {
-pos.x = ci.ptScreenPos.x - clip_rect.left - info.xHotspot - rect.left;
-pos.y = ci.ptScreenPos.y - clip_rect.top - info.yHotspot - rect.top;
-
-//that would keep the correct location of mouse with hidpi screens
-pos.x = pos.x * desktophorzres / horzres;
-pos.y = pos.y * desktopvertres / vertres;
+/* make cursor's logical coordinates relative to window */
+log_x -= rect.left;
+log_y -= rect.top;
 } else {
 CURSOR_ERROR("Couldn't get window rectangle");
 goto icon_error;
 }
-} else {
-//that would keep the correct location of mouse with hidpi screens
-pos.x = ci.ptScreenPos.x * desktophorzres / horzres - clip_rect.left - info.xHotspot;
-pos.y = ci.ptScreenPos.y * desktopvertres / vertres - clip_rect.top - info.yHotspot;
 }
+/* that would keep the correct location of mouse with hidpi screens */
+pos.x = LOGICAL_TO_PHYSICAL_X(log_x, ind) - clip_rect.left - info.xHotspot;
+pos.y = LOGICAL_TO_PHYSICAL_Y(log_y, ind) - clip_rect.top  - info.yHotspot;
 
 av_log(s1, AV_LOG_DEBUG, "Cursor pos (%li,%li) -> (%li,%li)\n",
 ci.ptScreenPos.x, ci.ptScreenPos.y, pos.x, pos.y);
-- 
2.21.0.windows.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] gdigrab: fix HIDPI support for multi-monitor setup with different scale settings

2019-07-05 Thread Dilshod Mukhtarov

Hi,

In Windows multi-monitor setup if there are different scales settings on 
different monitors then coordinates for videorecording  calculated not 
correct.


Here is the patch that fixes this problem

--
With the best regards,
Dilshod

>From 34ac7244b23ac2347a8e48b2ea2966cf69e1cf27 Mon Sep 17 00:00:00 2001
From: Dilshod Muktharov 
Date: Thu, 4 Jul 2019 21:52:09 +0400
Subject: [PATCH 1/2] HighDPI support for recording Windows multi-monitor mode

In windows multi-monitor mode with different UI scales it was not correctly calculated total area of recording on non-primary monitor
---
 libavdevice/gdigrab.c | 210 +++---
 1 file changed, 195 insertions(+), 15 deletions(-)

diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c
index f406fa..276b448692 100644
--- a/libavdevice/gdigrab.c
+++ b/libavdevice/gdigrab.c
@@ -212,6 +212,165 @@ gdigrab_region_wnd_update(AVFormatContext *s1, struct gdigrab *gdigrab)
 }
 }
 
+typedef struct tagRESOLUTION {
+int x;
+int y;
+} RESOLUTION;
+
+typedef struct tagMONITOR {
+RESOLUTION logical;
+RESOLUTION physical;
+RECT rect;
+} MONITOR;
+
+#define MY_MAX_MONITORS 4
+static MONITOR monitors[MY_MAX_MONITORS];
+static int monitorsNum = 0;
+static RECT rcCombined;
+
+/**
+ * Callback function which is used by EnumDisplayMonitors()
+ *
+ * @param hMon
+ * @param hdc
+ * @param lprcMonitor - rectangle of the given monitor
+ * @param pData - arbitrary user data passed to EnumDisplayMonitors
+ * @return TRUE
+ */
+static BOOL CALLBACK
+monitor_enum(HMONITOR hMon, HDC hdc, LPRECT lprcMonitor, LPARAM pData)
+{
+monitors[monitorsNum].rect = *lprcMonitor;
+UnionRect(&rcCombined, &rcCombined, lprcMonitor);
+
+MONITORINFOEXA monitor_info;
+monitor_info.cbSize = sizeof (monitor_info);
+GetMonitorInfoA(hMon, &monitor_info);
+
+HDC monitor_hdc = CreateDCA(NULL, monitor_info.szDevice, NULL, NULL);
+
+monitors[monitorsNum].logical.x  = GetDeviceCaps(monitor_hdc, HORZRES);
+monitors[monitorsNum].logical.y  = GetDeviceCaps(monitor_hdc, VERTRES);
+monitors[monitorsNum].physical.x = GetDeviceCaps(monitor_hdc, DESKTOPHORZRES);
+monitors[monitorsNum].physical.y = GetDeviceCaps(monitor_hdc, DESKTOPVERTRES);
+
+DeleteDC(monitor_hdc);
+
+++monitorsNum;
+return TRUE;
+}
+
+/**
+ * Returns the monitor id by given logical coordinates
+ * of a pixel
+ *
+ * @param x Logical coordinate x
+ * @param y Logical coordinate y
+ * @return id of monitor (in monitors) on success, -1 on error
+ */
+static int
+get_monitor_id_by_logical_point(int x, int y)
+{
+for (int i = 0; i < monitorsNum; ++i) {
+if (monitors[i].rect.left <= x && x < monitors[i].rect.right &&
+monitors[i].rect.top  <= y && y < monitors[i].rect.bottom)
+return i;
+}
+
+return -1;
+}
+
+/**
+ * Returns the monitor id by given logical coordinates
+ * of a rectangle. The center of rectangle is used to get monitor
+ *
+ * @param rect Logical coordinates of rect
+ * @return id of monitor (in monitors) on success, -1 on error
+ */
+static int
+get_monitor_id_by_logical_rectangle(const RECT *rect)
+{
+int x = rect->left + (rect->right  - rect->left) / 2;
+int y = rect->top  + (rect->bottom - rect->top)  / 2;
+return get_monitor_id_by_logical_point(x, y);
+}
+
+/**
+ * Returns the monitor id by given x coordinate
+ *
+ * @param x Logical coordinate x
+ * @return id of monitor (in monitors) on success, -1 on error
+ */
+static int
+get_monitor_id_by_logical_x(int x)
+{
+for (int i = 0; i < monitorsNum; ++i) {
+if (monitors[i].rect.left <= x && x < monitors[i].rect.right)
+return i;
+}
+
+return -1;
+}
+
+/**
+ * Returns the monitor id by given y coordinate
+ *
+ * @param y Logical coordinate y
+ * @return id of monitor (in monitors) on success, -1 on error
+ */
+static int
+get_monitor_id_by_logical_y(int y)
+{
+for (int i = 0; i < monitorsNum; ++i) {
+if (monitors[i].rect.top <= y && y < monitors[i].rect.bottom)
+return i;
+}
+
+return -1;
+}
+
+#define LOGICAL_TO_PHYSICAL_X(val, i) ((val) * monitors[i].physical.x / monitors[i].logical.x)
+#define LOGICAL_TO_PHYSICAL_Y(val, i) ((val) * monitors[i].physical.y / monitors[i].logical.y)
+
+/**
+ * Converts given rect from logical to physical pixel coordinates
+ *
+ * @param rect in logical coordinates, it will be modified to physical coordinates
+ * @return void
+ */
+static void
+convert_logical_rect_to_physical(RECT *rect)
+{
+int indX;
+int indY;
+int ind;
+
+/* convert top-left corner */
+ind = get_monitor_id_by_logical_point(rect->left, rect->top);
+if (ind >= 0) {
+indX = indY = ind;
+} else {
+/* monitor not found, let's search by x and y separately */
+indX = get_monitor_id_by_logical_x(rect->left);
+indY = get_monitor_id_by_logical_y(rect->top);
+}
+rect->left = LOGICAL_TO_PHYSICAL_X(rect->le

Re: [FFmpeg-devel] [PATCH] avcodec/hevc_ps: fix valid range of num_tile_{columns, rows}_minus1

2019-07-05 Thread James Almer
On 7/5/2019 11:13 AM, Michael Niedermayer wrote:
> On Sun, Jun 30, 2019 at 05:45:58PM -0300, James Almer wrote:
>> From 7.4.3.3.1:
>>
>> num_tile_columns_minus1 shall be in the range of 0 to PicWidthInCtbsY - 1, 
>> inclusive.
>> num_tile_rows_minus1 shall be in the range of 0 to PicHeightInCtbsY - 1, 
>> inclusive.
>>
>> Signed-off-by: James Almer 
>> ---
>> Sorry for not noticing it when reviewing c692051252 and 3b2082c663.
>>
>>  libavcodec/hevc_ps.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> LGTM
> 
> Thanks!

Pushed.
___
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] Config files for NetBeans IDE

2019-07-05 Thread Ulf Zibis
Hi,

I have made excellent experience in using the NetBeans IDE for FFmpeg
developement. So I like to share the customized configuration for this
if people like to try it here:
http://jugkoeln.de/Projects/ffmpeg/netbeans_1.patch

The most impressing is the graphical debugger.

The NetBeans IDE can be found here: https://netbeans.org
To run a C project one has add the NetBeans 8.2 Plugin Portal in the
Plugin Manager with following URL:
http://updates.netbeans.org/netbeans/updates/8.2/uc/final/distribution/catalog.xml.gz
and then install the C/C++ Plugin.

Have fun with it

-Ulf

___
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] avutil: add av_memcpy() to avoid undefined behavior with NULL, NULL, 0

2019-07-05 Thread Michael Niedermayer
On Fri, Jul 05, 2019 at 05:01:33PM +0200, Tomas Härdin wrote:
> ons 2019-07-03 klockan 10:46 +0200 skrev Michael Niedermayer:
> > On Wed, Jul 03, 2019 at 09:41:41AM +0200, Reimar Döffinger wrote:
> > > 
> > > 
> > > On 03.07.2019, at 08:29, Michael Niedermayer  
> > > wrote:
> > > 
> > > > On Tue, Jul 02, 2019 at 08:42:43PM -0300, James Almer wrote:
> > > > > 
> > > > > How many cases are there in the codebase where cnt can be 0, and dst 
> > > > > or
> > > > > src NULL, without it having been checked before calling memcpy? And 
> > > > > from
> > > > > those, which would not be from situations where the code should have
> > > > > instead aborted and returned ENOMEM, or EINVAL if either of them are
> > > > > function arguments?
> > > > 
> > > > There are around 2500 occurances of memcpy in the codebase
> > > > To awnser your question it would be needed to review all of them and in 
> > > > many
> > > > cases their surrounding code.
> > > > So that is unlikely to be awnsered by anyone accuratly
> > > > 
> > > > Also iam not sure i understand why you ask or why this would matter
> > > > the suggested function allows to simplify cases where the NULL can
> > > > occur, not where it cannot or should not. That is this is intended for
> > > > the cases where we already have or are adding explicit checks to
> > > > avoid the NULL case.
> > > > 
> > > > i could rename this to av_memcpy_nullsafe which would make it clearer 
> > > > but
> > > > also its more to write and read
> > > 
> > > I admit I thought that a worthwhile idea originally,
> > > but I have to think back to a long time ago that every function
> > > added to our "API" has a cost of people having to know about it and
> > > how to use it.
> > > And if it's currently only 2 places that would benefit I think
> > > James is right to ask if it makes sense.
> > > Of course another question might be if it might make sense to
> > > replace all memcpy uses with it.
> > > I mean, isn't it naturally expected behaviour that the pointers
> > > would be ignored if the copy amount is 0? There might be a lot of
> > > code assuming that we do not know about...
> > 
> > in addition to the 2 there are these related commits found by very dumb git 
> > log greps
> > In further addition there would be cases that deal with src == dst, 
> > something we
> > could add a check for in av_memcpy() too
> 
> All of these proposed "solutions" are equally horrible

> 
> I'm going to raise the issue of formal verification again (Frama-C and
> friends), because crap like this should be checked at compile time, not
> with flakey runtime checks.
> 
> I gave adding ACSL markup to parts of lavu a stab a while back, and it
> looked somewhat promising. Bit hacks present a bit of a problem
> however..

As we are already off topic, heres an example to test static
analysis, does this trigger undefined behavior by executing the memcpy
for some user input ?

void f(unsigned bigint a) {
bigint i;
for (i = 2; (((bigint)1 << a) + 1) % i; i++)
;
if (a > 20 && i > ((bigint)1 << a))
memcpy(NULL, NULL, 0);
}

i know its a lame example but just to remind that static analysis has
limitations. (your mail sounds a bit like static analysis could replace
everything ...)

Thanks

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In fact, the RIAA has been known to suggest that students drop out
of college or go to community college in order to be able to afford
settlements. -- The RIAA


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] Config files for NetBeans IDE

2019-07-05 Thread Paul B Mahol
If this is meant to be applied to our tree I'm against.
We do not need this bloat.

On 7/5/19, Ulf Zibis  wrote:
> Hi,
>
> I have made excellent experience in using the NetBeans IDE for FFmpeg
> developement. So I like to share the customized configuration for this
> if people like to try it here:
> http://jugkoeln.de/Projects/ffmpeg/netbeans_1.patch
>
> The most impressing is the graphical debugger.
>
> The NetBeans IDE can be found here: https://netbeans.org
> To run a C project one has add the NetBeans 8.2 Plugin Portal in the
> Plugin Manager with following URL:
> http://updates.netbeans.org/netbeans/updates/8.2/uc/final/distribution/catalog.xml.gz
> and then install the C/C++ Plugin.
>
> Have fun with it
>
> -Ulf
>
> ___
> 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 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] Config files for NetBeans IDE

2019-07-05 Thread Kieran Kunhya
I would ignore what Paul says and perhaps start a Github project with your
patch.
I think it would be useful for developers using the NetBeans IDE.

Kieran

On Fri, 5 Jul 2019 at 23:33, Paul B Mahol  wrote:

> If this is meant to be applied to our tree I'm against.
> We do not need this bloat.
>
> On 7/5/19, Ulf Zibis  wrote:
> > Hi,
> >
> > I have made excellent experience in using the NetBeans IDE for FFmpeg
> > developement. So I like to share the customized configuration for this
> > if people like to try it here:
> > http://jugkoeln.de/Projects/ffmpeg/netbeans_1.patch
> >
> > The most impressing is the graphical debugger.
> >
> > The NetBeans IDE can be found here: https://netbeans.org
> > To run a C project one has add the NetBeans 8.2 Plugin Portal in the
> > Plugin Manager with following URL:
> >
> http://updates.netbeans.org/netbeans/updates/8.2/uc/final/distribution/catalog.xml.gz
> > and then install the C/C++ Plugin.
> >
> > Have fun with it
> >
> > -Ulf
> >
> > ___
> > 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 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 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] Config files for NetBeans IDE

2019-07-05 Thread Ulf Zibis
It's not meant to apply to the tree, but you can put it somewhere on
your site for people who like to work with NetBeans.

-Ulf

Am 06.07.19 um 00:03 schrieb Paul B Mahol:
> If this is meant to be applied to our tree I'm against.
> We do not need this bloat.
>
> On 7/5/19, Ulf Zibis  wrote:
>> Hi,
>>
>> I have made excellent experience in using the NetBeans IDE for FFmpeg
>> developement. So I like to share the customized configuration for this
>> if people like to try it here:
>> http://jugkoeln.de/Projects/ffmpeg/netbeans_1.patch
>>
>> The most impressing is the graphical debugger.
>>
>> The NetBeans IDE can be found here: https://netbeans.org
>> To run a C project one has add the NetBeans 8.2 Plugin Portal in the
>> Plugin Manager with following URL:
>> http://updates.netbeans.org/netbeans/updates/8.2/uc/final/distribution/catalog.xml.gz
>> and then install the C/C++ Plugin.
>>
>> Have fun with it
>>
>> -Ulf
>>
>> ___
>> 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 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 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: Implement DM PAR Muxer/Demuxer

2019-07-05 Thread Andreas Rheinhardt
Tom Needham:
> Samples are Available from
> 
> https://transfernow.net/131xk9g4u0jt
> 
> Signed-off-by: Thomas Needham <06needh...@gmail.com>
> ---
>  Changelog |1 +
>  configure |7 +
>  libavformat/Makefile  |   10 +
>  libavformat/adaudio.c |  137 
>  libavformat/adbinary.c|  609 
>  libavformat/adcommon.c| 1106 +
>  libavformat/adffmpeg_errors.h |   94 +++
>  libavformat/adjfif.c  |  551 ++
>  libavformat/adjfif.h  |   41 ++
>  libavformat/admime.c  |  822 +
>  libavformat/adpic.h   |  116 +++
>  libavformat/adraw.c   |  131 
>  libavformat/allformats.c  |7 +
>  libavformat/ds.c  | 1262 +
>  libavformat/ds.h  |  135 
>  libavformat/ds_exports.h  |  173 +
>  libavformat/dsenc.c   |  488 +
>  libavformat/dsenc.h   |   35 +
>  libavformat/dspic.c   |  317 +
>  libavformat/libpar.c  | 1030 +++
>  libavformat/libpar.h  |   40 ++
>  libavformat/netvu.c   |  214 ++
>  libavformat/netvu.h   |   21 +
>  libavformat/version.h |4 +-
>  24 files changed, 7349 insertions(+), 2 deletions(-)
>  create mode 100644 libavformat/adaudio.c
>  create mode 100644 libavformat/adbinary.c
>  create mode 100644 libavformat/adcommon.c
>  create mode 100644 libavformat/adffmpeg_errors.h
>  create mode 100644 libavformat/adjfif.c
>  create mode 100644 libavformat/adjfif.h
>  create mode 100644 libavformat/admime.c
>  create mode 100644 libavformat/adpic.h
>  create mode 100644 libavformat/adraw.c
>  create mode 100644 libavformat/ds.c
>  create mode 100644 libavformat/ds.h
>  create mode 100644 libavformat/ds_exports.h
>  create mode 100644 libavformat/dsenc.c
>  create mode 100644 libavformat/dsenc.h
>  create mode 100644 libavformat/dspic.c
>  create mode 100644 libavformat/libpar.c
>  create mode 100644 libavformat/libpar.h
>  create mode 100644 libavformat/netvu.c
>  create mode 100644 libavformat/netvu.h
> 
> diff --git a/Changelog b/Changelog
> index 86167b76a1..41d12c092e 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -35,6 +35,7 @@ version :
>  - IFV demuxer
>  - derain filter
>  - deesser filter
> +- AD Holdings PAR Muxer and Demuxer
> 
> 
>  version 4.1:
> diff --git a/configure b/configure
> index 7cea9d4d73..39c4356c00 100755
> --- a/configure
> +++ b/configure
> @@ -317,6 +317,7 @@ External library support:
>--enable-vapoursynth enable VapourSynth demuxer [no]
>--disable-xlib   disable xlib [autodetect]
>--disable-zlib   disable zlib [autodetect]
> +  --enable-libparreaderenable PAR (de)muxing via libparreader [no]
> 
>The following libraries provide various hardware acceleration features:
>--disable-amfdisable AMF video encoding code [autodetect]
> @@ -1720,6 +1721,7 @@ EXTERNAL_LIBRARY_NONFREE_LIST="
>  libfdk_aac
>  openssl
>  libtls
> +libparreader
>  "
> 
>  EXTERNAL_LIBRARY_VERSION3_LIST="
> @@ -2768,6 +2770,8 @@ on2avc_decoder_select="mdct"
>  opus_decoder_deps="swresample"
>  opus_decoder_select="mdct15"
>  opus_encoder_select="audio_frame_queue mdct15"
> +libparreader_demuxer_deps="libparreader"
> +libparreader_muxer_deps="libparreader"
>  png_decoder_deps="zlib"
>  png_encoder_deps="zlib"
>  png_encoder_select="llvidencdsp"
> @@ -6136,7 +6140,10 @@ for func in $COMPLEX_FUNCS; do
>  done
> 
>  # these are off by default, so fail if requested and not available
> +
>  enabled cuda_nvcc && { check_nvcc || die "ERROR: failed checking
> for nvcc."; }
> +enabled libparreader  && require libparreader "parreader.h
> parreader_types.h" parReader_getPicStructSize -lparreader
> +enabled cuda_sdk  && require cuda_sdk cuda.h cuCtxCreate -lcuda
>  enabled chromaprint   && require chromaprint chromaprint.h
> chromaprint_get_version -lchromaprint
>  enabled decklink  && { require_headers DeckLinkAPI.h &&
> { test_cpp_condition DeckLinkAPIVersion.h
> "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a090500" || die "ERROR: Decklink API
> version must be >= 10.9.5."; } }
> diff --git a/libavformat/Makefile b/libavformat/Makefile
> index a434b005a4..363159009d 100644
> --- a/libavformat/Makefile
> +++ b/libavformat/Makefile
> @@ -569,11 +569,21 @@ OBJS-$(CONFIG_YUV4MPEGPIPE_DEMUXER)  +=
> yuv4mpegdec.o
>  OBJS-$(CONFIG_YUV4MPEGPIPE_MUXER)+= yuv4mpegenc.o
> 
>  # external library muxers/demuxers
> +OBJS-$(CONFIG_ADAUDIO_DEMUXER)   += adaudio.o
> +OBJS-$(CONFIG_ADBINARY_DEMUXER)  += adbinary.o adcommon.o adjfif.o
> +OBJS-$(CONFIG_ADMIME_DEMUXER)+= admime.o adcommon.o adjfif.o
> +OBJS-$(CONFIG_ADRAW_DEMUXER) += adraw.o adcommon.o adjfif.o
>  OBJS-$(CONFIG_AVISYNTH_DEMUXER)

Re: [FFmpeg-devel] [PATCH] avcodec: Implement DM PAR Muxer/Demuxer

2019-07-05 Thread Hendrik Leppkes
On Fri, Jul 5, 2019 at 10:53 PM Tom Needham <06needh...@gmail.com> wrote:
>
> Samples are Available from
>
> https://transfernow.net/131xk9g4u0jt
>
> Signed-off-by: Thomas Needham <06needh...@gmail.com>
> ---
>  Changelog |1 +
>  configure |7 +
>  libavformat/Makefile  |   10 +
>  libavformat/adaudio.c |  137 
>  libavformat/adbinary.c|  609 
>  libavformat/adcommon.c| 1106 +
>  libavformat/adffmpeg_errors.h |   94 +++
>  libavformat/adjfif.c  |  551 ++
>  libavformat/adjfif.h  |   41 ++
>  libavformat/admime.c  |  822 +
>  libavformat/adpic.h   |  116 +++
>  libavformat/adraw.c   |  131 
>  libavformat/allformats.c  |7 +
>  libavformat/ds.c  | 1262 +
>  libavformat/ds.h  |  135 
>  libavformat/ds_exports.h  |  173 +
>  libavformat/dsenc.c   |  488 +
>  libavformat/dsenc.h   |   35 +
>  libavformat/dspic.c   |  317 +
>  libavformat/libpar.c  | 1030 +++
>  libavformat/libpar.h  |   40 ++
>  libavformat/netvu.c   |  214 ++
>  libavformat/netvu.h   |   21 +
>  libavformat/version.h |4 +-
>  24 files changed, 7349 insertions(+), 2 deletions(-)

Before anyone spends a huge amount of time reviewing 24(!) files and
over 7000(!) lines of code..

This is an implementation of a proprietary format based on a non-free
library (and for some reason despite using a library still needs over
7000 lines of code?)
We don't really accept non-free proprietary library wrappers like this
into ffmpeg, the only possible exceptions not applying here
(open-source with incompatible license, or hardware libraries, and the
second one is even being debated on still).

Outside of that, the code looks like it needs a serious overhaul, and
the submitter does not appear to be the author of most of it, judging
from the comments in the headers, which makes authorship problematic
at best.

- 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".