Re: [FFmpeg-devel] [PATCH] avcodec/hevc_ps: fix valid range of num_tile_{columns, rows}_minus1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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".