Re: [FFmpeg-devel] Export display matrix mirroring info as part of the rotate API

2019-05-17 Thread Jun Li
On Thu, May 16, 2019 at 7:38 PM Vittorio Giovara 
wrote:

> On Thu, May 16, 2019 at 9:32 PM Jun Li  wrote:
>
> > On Thu, May 16, 2019 at 4:34 PM Ted Meyer <
> > tmathmeyer-at-google@ffmpeg.org> wrote:
> >
> > > Right now ffmpeg doesn't export a mirroring status when checking the
> > > display matrix for rotation.
> > > Here is an example video: https://files.tedm.io/flip.mp4
> > > -Ted
> > > ___
> > > 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".
> >
> >
> > There is a patch but not merged into master, quality not guaranteed :)
> > Hope this helps.
> > https://patchwork.ffmpeg.org/patch/13130/
> >
>
> hey i just noticed this patch
>
> +if (CONV_FP(m[0]) * CONV_FP(m[4]) < CONV_FP(m[1]) *
> CONV_FP(m[3])) {+*hflip = 1;+av_display_matrix_flip(m,
> 1, 0);+}
>
> the long if is basically computing the determinant of the matrix, but you
> only need the fact whether it's positive or negative, you can discard the
> result so you can avoid converting to CONV_FP, and just cast to int64_t
>
+return av_display_rotation_get(m);
>
> don't you need to set vertical flip only if det < 0 and rot = 180?
>

I think it should be fine and not need to check. Because vlip could be
represented as hflip+rotation, the cross product (Michael's brilliant idea)
m[0] * m[4] - m[1]*[3]  cannot reflect it is horizontal or vertical flip.
It all depends how we want to represents the transform, it could be
"rotation+hflip"  or "rotation+vlip".Any combination of rotation+flip
can be represented by either one.



> beside that small point, this patch introduces an api that basically
> supersedes the normal av_display_rotation_get(), and does many more things,
> I'd be tempted to deprecate any other use, and what do you think? in that
> case you could just call it av_display_rotation_get2() like is tradition

I can't find the other patches from the set to review, would you be able to
> send an updated version?
>

Thanks Vittorio, I updated the version as suggested:
https://patchwork.ffmpeg.org/patch/13181/

The original patch includes two part, but I am going to abandon it after
discussing with Nicolas.
The patches were for per frame flip/mirror and rotation. Basically it
checks every frame's meta-data and address flip or rotation or both.
I think it also covers stream level flip, addressed in ffmpeg_filter.c
(correct me if I am wrong).
https://patchwork.ffmpeg.org/patch/13131/
https://patchwork.ffmpeg.org/patch/13130/

Best Regards,
Jun


> thanks
> --
> Vittorio
> ___
> 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 v3 2/2] fftools/ffmpeg: add support for per frame rotation and flip

2019-05-17 Thread Jun Li
On Thu, May 16, 2019 at 9:21 PM Andriy Gelman 
wrote:

> On Thu, 16. May 18:28, Jun Li wrote:
> > On Thu, May 16, 2019 at 12:54 PM Andriy Gelman 
> > wrote:
> >
> > > Hi Jun,
> > >
> > > On Thu, 16. May 00:12, Jun Li wrote:
> > > > Fix #6945
> > > > Current implementaion for autorotate works fine for stream
> > > > level rotataion but no support for frame level operation
> > > > and frame flip. This patch is for adding flip support and
> > > > per frame operations.
> > > > ---
> > > >  fftools/cmdutils.c  |  9 ++---
> > > >  fftools/cmdutils.h  |  2 +-
> > > >  fftools/ffmpeg.c| 21 ++-
> > > >  fftools/ffmpeg.h|  2 +
> > > >  fftools/ffmpeg_filter.c | 81
> ++---
> > > >  fftools/ffplay.c| 28 +++---
> > > >  6 files changed, 126 insertions(+), 17 deletions(-)
> > > >
> > > > diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
> > > > index 9cfbc45c2b..b8bb904419 100644
> > > > --- a/fftools/cmdutils.c
> > > > +++ b/fftools/cmdutils.c
> > > > @@ -2172,13 +2172,12 @@ void *grow_array(void *array, int elem_size,
> int
> > > *size, int new_size)
> > > >  return array;
> > > >  }
> > > >
> > > > -double get_rotation(AVStream *st)
> > > > +double get_rotation_hflip(int32_t display_matrix[9], int* hflip)
> > > >  {
> > > > -uint8_t* displaymatrix = av_stream_get_side_data(st,
> > > > -
> > >  AV_PKT_DATA_DISPLAYMATRIX, NULL);
> > > >  double theta = 0;
> > > > -if (displaymatrix)
> > > > -theta = -av_display_rotation_get((int32_t*) displaymatrix);
> > > > +
> > > > +if (display_matrix)
> > > > +theta = -av_display_rotation_hflip_get(display_matrix,
> hflip);
> > > >
> > > >  theta -= 360*floor(theta/360 + 0.9/360);
> > > >
> > > > diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h
> > > > index 6e2e0a2acb..dce44ed6e1 100644
> > > > --- a/fftools/cmdutils.h
> > > > +++ b/fftools/cmdutils.h
> > > > @@ -643,6 +643,6 @@ void *grow_array(void *array, int elem_size, int
> > > *size, int new_size);
> > > >  char name[128];\
> > > >  av_get_channel_layout_string(name, sizeof(name), 0, ch_layout);
> > > >
> > > > -double get_rotation(AVStream *st);
> > > > +double get_rotation_hflip(int32_t display_matrix[9], int* hflip);
> > > >
> > > >  #endif /* FFTOOLS_CMDUTILS_H */
> > > > diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> > > > index 01f04103cf..9ea1aaa930 100644
> > > > --- a/fftools/ffmpeg.c
> > > > +++ b/fftools/ffmpeg.c
> > > > @@ -2126,6 +2126,24 @@ static int
> > > ifilter_has_all_input_formats(FilterGraph *fg)
> > > >  return 1;
> > > >  }
> > > >
> > > > +static int ifilter_display_matrix_need_from_frame(InputFilter
> *ifilter,
> > > AVFrame* frame)
> > > > +{
> > > > +int32_t* stream_matrix =
> > > (int32_t*)av_stream_get_side_data(ifilter->ist->st,
> > > > +
> > > AV_PKT_DATA_DISPLAYMATRIX, NULL);
> > > > +// if we already have display matrix from stream, use it
> instead of
> > > extracting
> > > > +// from frame.
> > > > +if (stream_matrix) {
> > > > +memcpy(ifilter->display_matrix, stream_matrix, 4 * 9);
> > > > +return 0;
> > > > +}
> > > > +
> > > > +// cleanup the display matrix, may be from last frame
> > > > +memset(ifilter->display_matrix, 0, 4 * 9);
> > > > +av_display_rotation_set(ifilter->display_matrix, 0);
> > > > +
> > > > +return !!av_dict_get(frame->metadata, "Orientation", NULL, 0);
> > > > +}
> > > > +
> > > >  static int ifilter_send_frame(InputFilter *ifilter, AVFrame *frame)
> > > >  {
> > > >  FilterGraph *fg = ifilter->graph;
> > > > @@ -2141,7 +2159,8 @@ static int ifilter_send_frame(InputFilter
> > > *ifilter, AVFrame *frame)
> > > > ifilter->channel_layout !=
> frame->channel_layout;
> > > >  break;
> > > >  case AVMEDIA_TYPE_VIDEO:
> > > > -need_reinit |= ifilter->width  != frame->width ||
> > > > +need_reinit |=
> ifilter_display_matrix_need_from_frame(ifilter,
> > > frame) ||
> > > > +   ifilter->width  != frame->width ||
> > > > ifilter->height != frame->height;
> > > >  break;
> > > >  }
> > > > diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
> > > > index eb1eaf6363..8331720663 100644
> > > > --- a/fftools/ffmpeg.h
> > > > +++ b/fftools/ffmpeg.h
> > > > @@ -251,6 +251,8 @@ typedef struct InputFilter {
> > > >  int channels;
> > > >  uint64_t channel_layout;
> > > >
> > > > +int32_t display_matrix[9];
> > > > +
> > > >  AVBufferRef *hw_frames_ctx;
> > > >
> > > >  int eof;
> > > > diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
> > > > index 72838de1e2..1894f30561 100644
> > > > --- a/fftools/ffmpeg_filter.c
> > > > +++ b/fftools/ffmpeg_filter.c
> > > > @@ -328,6 +328,7 @@ static void init_input_filter(FilterGraph *fg,
> > > AVFilterInOut *in)
> > > >  fg->inputs[fg->nb_inputs - 1]->format = -1;
> > > >  fg->inputs[fg->nb_inputs - 1]->

Re: [FFmpeg-devel] [PATCH]

2019-05-17 Thread Gyan



On 16-05-2019 06:29 PM, Werner Robitza wrote:

On Wed, May 15, 2019 at 11:23 PM Michael Niedermayer
 wrote:

On Wed, May 15, 2019 at 11:13:57PM +0200, Werner Robitza wrote:

On Wed, May 15, 2019 at 4:55 PM Gyan  wrote:

On 15-05-2019 05:06 PM, Werner Robitza wrote:

On Wed, May 15, 2019 at 11:36 AM Gyan  wrote:

Which lines in the CLI help?

SWScaler AVOptions:
-sws_flags   E..V. scaler flags (default bicubic)
 ...
-src_formatE..V. source format (default yuv420p)
-dst_formatE..V. destination format (default 
yuv420p)
-src_range E..V. source is full range (default 
false)
-dst_range E..V. destination is full range
(default false)


I don't see any constants set in the AVOptions struct. Can you share a command 
line where you could set this option using a string?

I was just going by the help printed above, including the default. If
a string is not valid, which values are?

The help function fetches the string name for the default value but the
user has to input an integer.

The pixel formats are declared in an enum in libavutil/pixfmt.h. The
integers correspond to their index in that list.

That seems very bad in terms of usability. Is there a particular
reason why the "-pix_fmt" option can parse these values, but swscaler
not? In fact, most (if not all) other options that accept a finite set
of arguments don't use numbers in that way, but strings.
I can add the integers to the documentation as a lookup table, but it
feels weird doing so.

where exactly is a end user facing interface using integers for pix_fmt
in place of named identifers, can you show an example command line ?

I checked again, and when you try this, this is printed:


Directly using swscale dimensions/format options is not supported, please use 
the -s or -pix_fmt options
Error parsing option 'src_format' with argument 'yuv420p'.

So this should actually be removed from the CLI options entirely, or?
(And the documentation.)
Strictly speaking, the doc page isn't for CLI use only. A note has been 
added to indicate which options are API only.


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

Re: [FFmpeg-devel] [PATCH v3 2/2] fftools/ffmpeg: add support for per frame rotation and flip

2019-05-17 Thread Ben Hutchinson
Please unsubscribe me from this mailing list. It is filling up my inbox. Or
at least switch me to getting a daily digest from the mailing list. The way
it is set up now, I'm getting an email for every post, and my inbox is
cluttered.

On Thu, May 16, 2019 at 12:21 AM Jun Li  wrote:

> Fix #6945
> Current implementaion for autorotate works fine for stream
> level rotataion but no support for frame level operation
> and frame flip. This patch is for adding flip support and
> per frame operations.
> ---
>  fftools/cmdutils.c  |  9 ++---
>  fftools/cmdutils.h  |  2 +-
>  fftools/ffmpeg.c| 21 ++-
>  fftools/ffmpeg.h|  2 +
>  fftools/ffmpeg_filter.c | 81 ++---
>  fftools/ffplay.c| 28 +++---
>  6 files changed, 126 insertions(+), 17 deletions(-)
>
> diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
> index 9cfbc45c2b..b8bb904419 100644
> --- a/fftools/cmdutils.c
> +++ b/fftools/cmdutils.c
> @@ -2172,13 +2172,12 @@ void *grow_array(void *array, int elem_size, int
> *size, int new_size)
>  return array;
>  }
>
> -double get_rotation(AVStream *st)
> +double get_rotation_hflip(int32_t display_matrix[9], int* hflip)
>  {
> -uint8_t* displaymatrix = av_stream_get_side_data(st,
> -
>  AV_PKT_DATA_DISPLAYMATRIX, NULL);
>  double theta = 0;
> -if (displaymatrix)
> -theta = -av_display_rotation_get((int32_t*) displaymatrix);
> +
> +if (display_matrix)
> +theta = -av_display_rotation_hflip_get(display_matrix, hflip);
>
>  theta -= 360*floor(theta/360 + 0.9/360);
>
> diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h
> index 6e2e0a2acb..dce44ed6e1 100644
> --- a/fftools/cmdutils.h
> +++ b/fftools/cmdutils.h
> @@ -643,6 +643,6 @@ void *grow_array(void *array, int elem_size, int
> *size, int new_size);
>  char name[128];\
>  av_get_channel_layout_string(name, sizeof(name), 0, ch_layout);
>
> -double get_rotation(AVStream *st);
> +double get_rotation_hflip(int32_t display_matrix[9], int* hflip);
>
>  #endif /* FFTOOLS_CMDUTILS_H */
> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
> index 01f04103cf..9ea1aaa930 100644
> --- a/fftools/ffmpeg.c
> +++ b/fftools/ffmpeg.c
> @@ -2126,6 +2126,24 @@ static int
> ifilter_has_all_input_formats(FilterGraph *fg)
>  return 1;
>  }
>
> +static int ifilter_display_matrix_need_from_frame(InputFilter *ifilter,
> AVFrame* frame)
> +{
> +int32_t* stream_matrix =
> (int32_t*)av_stream_get_side_data(ifilter->ist->st,
> +
> AV_PKT_DATA_DISPLAYMATRIX, NULL);
> +// if we already have display matrix from stream, use it instead of
> extracting
> +// from frame.
> +if (stream_matrix) {
> +memcpy(ifilter->display_matrix, stream_matrix, 4 * 9);
> +return 0;
> +}
> +
> +// cleanup the display matrix, may be from last frame
> +memset(ifilter->display_matrix, 0, 4 * 9);
> +av_display_rotation_set(ifilter->display_matrix, 0);
> +
> +return !!av_dict_get(frame->metadata, "Orientation", NULL, 0);
> +}
> +
>  static int ifilter_send_frame(InputFilter *ifilter, AVFrame *frame)
>  {
>  FilterGraph *fg = ifilter->graph;
> @@ -2141,7 +2159,8 @@ static int ifilter_send_frame(InputFilter *ifilter,
> AVFrame *frame)
> ifilter->channel_layout != frame->channel_layout;
>  break;
>  case AVMEDIA_TYPE_VIDEO:
> -need_reinit |= ifilter->width  != frame->width ||
> +need_reinit |= ifilter_display_matrix_need_from_frame(ifilter,
> frame) ||
> +   ifilter->width  != frame->width ||
> ifilter->height != frame->height;
>  break;
>  }
> diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
> index eb1eaf6363..8331720663 100644
> --- a/fftools/ffmpeg.h
> +++ b/fftools/ffmpeg.h
> @@ -251,6 +251,8 @@ typedef struct InputFilter {
>  int channels;
>  uint64_t channel_layout;
>
> +int32_t display_matrix[9];
> +
>  AVBufferRef *hw_frames_ctx;
>
>  int eof;
> diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
> index 72838de1e2..1894f30561 100644
> --- a/fftools/ffmpeg_filter.c
> +++ b/fftools/ffmpeg_filter.c
> @@ -328,6 +328,7 @@ static void init_input_filter(FilterGraph *fg,
> AVFilterInOut *in)
>  fg->inputs[fg->nb_inputs - 1]->format = -1;
>  fg->inputs[fg->nb_inputs - 1]->type = ist->st->codecpar->codec_type;
>  fg->inputs[fg->nb_inputs - 1]->name = describe_filter_link(fg, in, 1);
> +av_display_rotation_set(fg->inputs[fg->nb_inputs -
> 1]->display_matrix, 0);
>
>  fg->inputs[fg->nb_inputs - 1]->frame_queue = av_fifo_alloc(8 *
> sizeof(AVFrame*));
>  if (!fg->inputs[fg->nb_inputs - 1]->frame_queue)
> @@ -807,22 +808,43 @@ static int configure_input_video_filter(FilterGraph
> *fg, InputFilter *ifilter,
>  last_filter = ifilter->filter;
>
>  if (ist->autorotate) {
> -double theta = get_rotation(ist->st);
> +int hflip = 0;
> +double theta = get_rotation_hf

Re: [FFmpeg-devel] [PATCH v3 2/2] fftools/ffmpeg: add support for per frame rotation and flip

2019-05-17 Thread Gyan



On 17-05-2019 01:17 PM, Ben Hutchinson wrote:

Please unsubscribe me from this mailing list. It is filling up my inbox. Or
at least switch me to getting a daily digest from the mailing list. The way
it is set up now, I'm getting an email for every post, and my inbox is
cluttered.

...

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


See above.

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

Re: [FFmpeg-devel] [PATCH] mpeg12enc: Use all Closed Captions side data

2019-05-17 Thread Paul B Mahol
On 5/17/19, Mathieu Duponchelle  wrote:
> There isn't one, as I said the added indentation is because of the new loop!

To get this committed to tree you need to comply to review requests.

>
> On 5/13/19 3:39 PM, Carl Eugen Hoyos wrote:
>> Am Mi., 10. Apr. 2019 um 13:26 Uhr schrieb Mathieu Duponchelle
>> :
>>
>>> No problem
>> I don't see an updated patch.
>>
>> 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 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] avfilter: add apitch filter

2019-05-17 Thread Paul B Mahol
On 5/15/19, Paul B Mahol  wrote:
> On 5/12/19, Paul B Mahol  wrote:
>> On 5/12/19, Michael Niedermayer  wrote:
>>> On Sun, May 12, 2019 at 11:00:51PM +0200, Nicolas George wrote:
 Marton Balint (12019-05-12):
 > Yeah, you are right, what I had in mind was this:
 >
 > apitch  ===  asetrate,aresample,atempo

 Exactly. And reciprocally, atempo = apitch+asetrate+aresample.

 Furthermore, since it works with the spectrum, the filter that does the
 hard work can probably easily output at any sample rate, at a cost much
 lower than resampling afterwards. Therefore, it makes most sense to
 have
 a single filter with all three parameters (sample rate, speed
 adjustment
 and pitch adjustment).
>>>
>>> and if thats done in our resampler than that can also be combined with
>>> changing the channel order, layout, sample type and so on.
>>> Iam not sure its a good idea but purely technically it should be more
>>> efficient to do it all together.
>>> Also swresample already supports an external FFT resampler so it might
>>> actually fit in there nicely and it might even allow us to remove an
>>> external
>>> dependancy without loosing a feature. (assuming the new FFT resampler
>>> would be equally good)
>>>
>>>
>>
>> To make it work dynamically, filter must resample audio internally.
>>
>
> Can I get testers?
>

Because lack of testers, I will apply this patch as is.
___
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] avfilter: add apitch filter

2019-05-17 Thread Nicolas George
Paul B Mahol (12019-05-17):
> Because lack of testers, I will apply this patch as is.

Absolutely not. The consensus was to have a single filter, and even
possibly make it part of lswr. This is what is currently discussed.

-- 
  Nicolas George
___
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] tools/target_dec_fuzzer: Limit error concealment on pixels instead of just frames

2019-05-17 Thread Michael Niedermayer
This should reduce the amount of timeout issues overall

Fixes: Timeout (34->10sec)
Fixes: 
14682/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMV2_fuzzer-5728608414334976

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

diff --git a/tools/target_dec_fuzzer.c b/tools/target_dec_fuzzer.c
index 2a6d525b73..4f51b70b65 100644
--- a/tools/target_dec_fuzzer.c
+++ b/tools/target_dec_fuzzer.c
@@ -137,6 +137,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t 
size) {
 const uint8_t *last = data;
 const uint8_t *end = data + size;
 uint32_t it = 0;
+uint64_t ec_pixels = 0;
 int (*decode_handler)(AVCodecContext *avctx, AVFrame *picture,
   int *got_picture_ptr,
   const AVPacket *avpkt) = NULL;
@@ -244,7 +245,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t 
size) {
 av_frame_unref(frame);
 int ret = decode_handler(ctx, frame, &got_frame, &avpkt);
 
-if (it > 20)
+ec_pixels += ctx->width * ctx->height;
+if (it > 20 || ec_pixels > 4 * ctx->max_pixels)
 ctx->error_concealment = 0;
 
 if (ret <= 0 || ret > avpkt.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".

[FFmpeg-devel] [PATCH] libavdevice/gdigrab: fix ffmpeg -devices doesn't show gdigrab

2019-05-17 Thread Jun Zhao
From: Jun Zhao 

missed the category AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT lead to
ffmpeg -devices doesn't show gdigrab as a input device

FIx #7848

Found-by: dangibson
Signed-off-by: Jun Zhao 
---
 libavdevice/gdigrab.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c
index b226bd0..f40 100644
--- a/libavdevice/gdigrab.c
+++ b/libavdevice/gdigrab.c
@@ -647,6 +647,7 @@ static const AVClass gdigrab_class = {
 .item_name  = av_default_item_name,
 .option = options,
 .version= LIBAVUTIL_VERSION_INT,
+.category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
 };
 
 /** gdi grabber device demuxer declaration */
-- 
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]

2019-05-17 Thread Werner Robitza
On Fri, May 17, 2019 at 9:41 AM Gyan  wrote:
> Strictly speaking, the doc page isn't for CLI use only. A note has been
> added to indicate which options are API only.

That definitely clears things up, thanks.

But coming back to what you wrote initially:

> Sure, if the option name was is_src_range_full. But src_range allows you
> to specify a range. So, even though there are only two, better to
> mention the allowed values and their meaning.

Changed the patch now. Please have a look.

Werner


0001-doc-swscaler-explain-values-for-src_range-dst_range.patch
Description: Binary data
___
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]

2019-05-17 Thread Gyan



On 17-05-2019 02:29 PM, Werner Robitza wrote:

On Fri, May 17, 2019 at 9:41 AM Gyan  wrote:

Strictly speaking, the doc page isn't for CLI use only. A note has been
added to indicate which options are API only.

That definitely clears things up, thanks.

But coming back to what you wrote initially:


Sure, if the option name was is_src_range_full. But src_range allows you
to specify a range. So, even though there are only two, better to
mention the allowed values and their meaning.

Changed the patch now. Please have a look.

One change, from,

    If value is set to @code{1}, enable full range for source. Default 
value is @code{0}, which enables limited range.


to

    If value is set to @code{1}, indicates source is full range. 
Default value is @code{0}, which indicates source as limited range.



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

Re: [FFmpeg-devel] [PATCH] "assert(a && b)" --> "assert(a); assert(b)" for more precise diagnostics, except for libformat

2019-05-17 Thread Michael Niedermayer
On Wed, May 15, 2019 at 12:13:07PM -0700, Adam Richter wrote:
> On Tue, May 14, 2019 at 6:48 PM myp...@gmail.com  wrote:
> >
> > On Wed, May 15, 2019 at 7:01 AM Hendrik Leppkes  wrote:
> > >
> > > On Tue, May 14, 2019 at 11:25 PM Adam Richter  
> > > wrote:
[...]
> > > >
> > > > Also after this, I may take a look at adding a branch hint to the 
> > > > av_assertN
> > > > macros if nobody objects.
> > > >
> > >
> > > Please don't, we don't do branch hints anywhere, and this is a bad
> > > place to start.
> > > If an assert is truely performance sensitive (as in, it makes a
> > > measurable difference), it should probably be moved from assert0 to
> > > assert1, and as such is only enabled in testing builds.
> > >
> > If assert0 or assert1 lead to performance drop, we need some profiling
> > data, then try to fix it.
> 
> The above comments by Hendrick and you does not identify a cost to
> adding a branch hint to assert.  There would be a downside in the form of
> a few lines of code complexity in libavutil/avassert.h.  If that is
> your concern,
> I guess our disagreement is that I see reducing the cost of assert so that
> perhaps CPU usage with and without would be a tiny bit more similar for
> reproducing problems and maybe (I'm not saying it's likely) it might tip a
> trade-off in favor of keeping an assert enabled in some borderline
> circumstance.  I'd take that trade (add the branch prediction).
> 
> If you want to educate me on some other reason why I may be wrong,
> about adding the branch prediction for assertion checks, I'd been keen
> to know, but I realize everyone's time is limited, and if I haven't
> convinced you and also created consensus in favor of adding the
> branch prediction to assertion checking, then I don't expect to advocate
> further on this list for merging such a change into your tree at this time.

I think a key question here would be if a speedeffect or code generation
improvment can be shown to have actually occured. Instead of assuming that
it could.

[...]

-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Into a blind darkness they enter who follow after the Ignorance,
they as if into a greater darkness enter who devote themselves
to the Knowledge alone. -- Isha Upanishad


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] Support for Multiview Video Coding (MVC)

2019-05-17 Thread Dennis Mungai
On Thu, May 16, 2019, 18:49 qunming peng 
wrote:

> Hi,
> May I know if there is a plan to integrate MVC into ffmpeg?
> Thanks,
> Brook
>

Hello there,

To the best of my knowledge, specific encoders (and hwaccel backends) have
support for H.264 MVC encoding, namely VAAPI (using the i965 driver) and
the x264 encoder (which requires a separate license, need to confirm if
this is the case to date). NVENC, from Maxwell Gen 1 (GM10x series) also
exposes support for MVC profiles, and proprietary software such as
Cyberlink's Power director can take advantage of this.

Whether this is exposed in FFmpeg, through private codec options or global
libav options is what I cannot confirm at the present. Will get back to you
when I have more info.

>
___
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/2] avcodec/nvenc: add master display and light level sei data for hdr10

2019-05-17 Thread lance . lmwang
From: Limin Wang 

---
 libavcodec/nvenc.c  | 73 +
 libavcodec/nvenc.h  |  1 +
 libavcodec/nvenc_hevc.c |  2 ++
 3 files changed, 76 insertions(+)

diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
index 77eb9918a4..55547d4246 100644
--- a/libavcodec/nvenc.c
+++ b/libavcodec/nvenc.c
@@ -22,6 +22,9 @@
 #include "config.h"
 
 #include "nvenc.h"
+#include "cbs_h265.h"
+#include "hevc_sei.h"
+#include "put_bits.h"
 
 #include "libavutil/hwcontext_cuda.h"
 #include "libavutil/hwcontext.h"
@@ -30,6 +33,7 @@
 #include "libavutil/avassert.h"
 #include "libavutil/mem.h"
 #include "libavutil/pixdesc.h"
+#include "libavutil/mastering_display_metadata.h"
 #include "internal.h"
 
 #define CHECK_CU(x) FF_CUDA_CHECK_DL(avctx, dl_fn->cuda_dl, x)
@@ -2110,6 +2114,75 @@ int ff_nvenc_send_frame(AVCodecContext *avctx, const 
AVFrame *frame)
 }
 }
 
+if (ctx->hdr) {
+AVFrameSideData *sd = av_frame_get_side_data(frame, 
AV_FRAME_DATA_MASTERING_DISPLAY_METADATA);
+
+if (sd) {
+AVMasteringDisplayMetadata *mdm = (AVMasteringDisplayMetadata 
*)sd->data;
+// HEVC uses a g,b,r ordering, which we convert to a more 
natural r,g,b
+const int mapping[3] = {2, 0, 1};
+const int chroma_den = 5;
+const int luma_den = 1;
+
+if (mdm->has_primaries && mdm->has_luminance) {
+H265RawSEIMasteringDisplayColourVolume smd;
+
+for (i = 0; i < 3; i++) {
+const int j = mapping[i];
+smd.display_primaries_x[i] = chroma_den * 
av_q2d(mdm->display_primaries[j][0]);
+smd.display_primaries_y[i] = chroma_den * av_q2d( 
mdm->display_primaries[j][1]);
+}
+
+smd.white_point_x = chroma_den * 
av_q2d(mdm->white_point[0]);
+smd.white_point_y = chroma_den * 
av_q2d(mdm->white_point[1]);
+smd.max_display_mastering_luminance = luma_den * 
av_q2d(mdm->max_luminance);
+smd.min_display_mastering_luminance = luma_den * 
av_q2d(mdm->min_luminance);
+
+sei_data[sei_count].payloadSize = 
sizeof(H265RawSEIMasteringDisplayColourVolume);
+sei_data[sei_count].payloadType = 
HEVC_SEI_TYPE_MASTERING_DISPLAY_INFO;
+sei_data[sei_count].payload = 
av_mallocz(sei_data[sei_count].payloadSize);
+if (sei_data[sei_count].payload) {
+PutBitContext pb;
+
+init_put_bits(&pb, sei_data[sei_count].payload, 
sei_data[sei_count].payloadSize);
+for (i = 0; i < 3; i++) {
+put_bits(&pb, 16, smd.display_primaries_x[i]);
+put_bits(&pb, 16, smd.display_primaries_y[i]);
+}
+put_bits(&pb, 16, smd.white_point_x);
+put_bits(&pb, 16, smd.white_point_y);
+put_bits(&pb, 32, smd.max_display_mastering_luminance);
+put_bits(&pb, 32, smd.min_display_mastering_luminance);
+flush_put_bits(&pb);
+
+sei_count ++;
+}
+}
+}
+
+sd = av_frame_get_side_data(frame, 
AV_FRAME_DATA_CONTENT_LIGHT_LEVEL);
+if (sd) {
+AVContentLightMetadata *clm = (AVContentLightMetadata 
*)sd->data;
+H265RawSEIContentLightLevelInfo clli;
+
+clli.max_content_light_level = FFMIN(clm->MaxCLL,  65535);
+clli.max_pic_average_light_level = FFMIN(clm->MaxFALL, 65535);
+
+sei_data[sei_count].payloadSize = 
sizeof(H265RawSEIContentLightLevelInfo);
+sei_data[sei_count].payloadType = 
HEVC_SEI_TYPE_CONTENT_LIGHT_LEVEL_INFO;
+sei_data[sei_count].payload = 
av_mallocz(sei_data[sei_count].payloadSize);
+if (sei_data[sei_count].payload) {
+PutBitContext pb;
+
+init_put_bits(&pb, sei_data[sei_count].payload, 
sei_data[sei_count].payloadSize);
+put_bits(&pb, 16, clli.max_content_light_level);
+put_bits(&pb, 16, clli.max_pic_average_light_level);
+flush_put_bits(&pb);
+
+sei_count ++;
+}
+}
+}
 nvenc_codec_specific_pic_params(avctx, &pic_params, sei_data, 
sei_count);
 } else {
 pic_params.encodePicFlags = NV_ENC_PIC_FLAG_EOS;
diff --git a/libavcodec/nvenc.h b/libavcodec/nvenc.h
index ddd6168409..952e691147 100644
--- a/libavcodec/nvenc.h
+++ b/libavcodec/nvenc.h
@@ -192,6 +192,7 @@ typedef struct NvencContext
 int coder;
 int b_ref_mode;
 int a53_cc;
+int hdr;
 } NvencContext;
 
 int 

[FFmpeg-devel] [PATCH 1/2] avcodec/nvenc: add more sei data support

2019-05-17 Thread lance . lmwang
From: Limin Wang 

---
 libavcodec/nvenc.c | 36 ++--
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
index 3fe64bba8b..77eb9918a4 100644
--- a/libavcodec/nvenc.c
+++ b/libavcodec/nvenc.c
@@ -1705,7 +1705,8 @@ static int nvenc_upload_frame(AVCodecContext *avctx, 
const AVFrame *frame,
 
 static void nvenc_codec_specific_pic_params(AVCodecContext *avctx,
 NV_ENC_PIC_PARAMS *params,
-NV_ENC_SEI_PAYLOAD *sei_data)
+NV_ENC_SEI_PAYLOAD *sei_data,
+int sei_count)
 {
 NvencContext *ctx = avctx->priv_data;
 
@@ -1715,9 +1716,9 @@ static void 
nvenc_codec_specific_pic_params(AVCodecContext *avctx,
 ctx->encode_config.encodeCodecConfig.h264Config.sliceMode;
 params->codecPicParams.h264PicParams.sliceModeData =
 ctx->encode_config.encodeCodecConfig.h264Config.sliceModeData;
-if (sei_data) {
+if (sei_count > 0) {
 params->codecPicParams.h264PicParams.seiPayloadArray = sei_data;
-params->codecPicParams.h264PicParams.seiPayloadArrayCnt = 1;
+params->codecPicParams.h264PicParams.seiPayloadArrayCnt = 
sei_count;
 }
 
   break;
@@ -1726,9 +1727,9 @@ static void 
nvenc_codec_specific_pic_params(AVCodecContext *avctx,
 ctx->encode_config.encodeCodecConfig.hevcConfig.sliceMode;
 params->codecPicParams.hevcPicParams.sliceModeData =
 ctx->encode_config.encodeCodecConfig.hevcConfig.sliceModeData;
-if (sei_data) {
+if (sei_count > 0) {
 params->codecPicParams.hevcPicParams.seiPayloadArray = sei_data;
-params->codecPicParams.hevcPicParams.seiPayloadArrayCnt = 1;
+params->codecPicParams.hevcPicParams.seiPayloadArrayCnt = 
sei_count;
 }
 
 break;
@@ -2023,8 +2024,9 @@ int ff_nvenc_send_frame(AVCodecContext *avctx, const 
AVFrame *frame)
 NVENCSTATUS nv_status;
 NvencSurface *tmp_out_surf, *in_surf;
 int res, res2;
-NV_ENC_SEI_PAYLOAD *sei_data = NULL;
-size_t sei_size;
+NV_ENC_SEI_PAYLOAD sei_data[8];
+int sei_count = 0;
+int i;
 
 NvencContext *ctx = avctx->priv_data;
 NvencDynLoadFunctions *dl_fn = &ctx->nvenc_dload_funcs;
@@ -2093,18 +2095,22 @@ int ff_nvenc_send_frame(AVCodecContext *avctx, const 
AVFrame *frame)
 pic_params.inputTimeStamp = frame->pts;
 
 if (ctx->a53_cc && av_frame_get_side_data(frame, 
AV_FRAME_DATA_A53_CC)) {
-if (ff_alloc_a53_sei(frame, sizeof(NV_ENC_SEI_PAYLOAD), 
(void**)&sei_data, &sei_size) < 0) {
+void *a53_data = NULL;
+size_t a53_size = 0;
+
+if (ff_alloc_a53_sei(frame, 0, (void**)&a53_data, &a53_size) < 0) {
 av_log(ctx, AV_LOG_ERROR, "Not enough memory for closed 
captions, skipping\n");
 }
 
-if (sei_data) {
-sei_data->payloadSize = (uint32_t)sei_size;
-sei_data->payloadType = 4;
-sei_data->payload = (uint8_t*)(sei_data + 1);
+if (a53_data) {
+sei_data[sei_count].payloadSize = (uint32_t)a53_size;
+sei_data[sei_count].payloadType = 4;
+sei_data[sei_count].payload = (uint8_t*)a53_data;
+sei_count ++;
 }
 }
 
-nvenc_codec_specific_pic_params(avctx, &pic_params, sei_data);
+nvenc_codec_specific_pic_params(avctx, &pic_params, sei_data, 
sei_count);
 } else {
 pic_params.encodePicFlags = NV_ENC_PIC_FLAG_EOS;
 ctx->encoder_flushing = 1;
@@ -2115,7 +2121,9 @@ int ff_nvenc_send_frame(AVCodecContext *avctx, const 
AVFrame *frame)
 return res;
 
 nv_status = p_nvenc->nvEncEncodePicture(ctx->nvencoder, &pic_params);
-av_free(sei_data);
+
+for ( i = 0; i < sei_count; i++)
+av_freep(&sei_data[i].payload);
 
 res = nvenc_pop_context(avctx);
 if (res < 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] [PATCHv3] VP4 video decoder

2019-05-17 Thread Peter Ross
On Thu, May 16, 2019 at 08:52:39PM +0200, Reimar Döffinger wrote:
> On Thu, May 16, 2019 at 08:00:55PM +0200, Reimar Döffinger wrote:
> > On Thu, May 16, 2019 at 09:35:00PM +1000, Peter Ross wrote:
> > > +static int read_mb_value(GetBitContext *gb)
> > > +{
> > > +int v = 1;
> > > +int size;
> > > +OPEN_READER(re, gb);
> > > +
> > > +do {
> > > +int bit;
> > > +size = 0;
> > > +
> > > +UPDATE_CACHE(re, gb);
> > > +bit = SHOW_UBITS(re, gb, 1);
> > > +SKIP_BITS(re, gb, 1);
> > > +if (!bit)
> > > +break;
> > > +
> > > +do {
> > > +bit = SHOW_UBITS(re, gb, 1);
> > > +SKIP_BITS(re, gb, 1);
> > > +if (!bit)
> > > +break;
> > > +size++;
> > > +} while (size < 8);
> > > +
> > > +v += 1 << size;
> > > +
> > > +} while (size == 8);
> > > +
> > > +if (size) {
> > > +v += SHOW_UBITS(re, gb, size);
> > > +LAST_SKIP_BITS(re, gb, size);
> > > +}
> > > +
> > > +CLOSE_READER(re, gb);
> > > +return v;
> > > +}
> >
> > I meant that you should do something like
> > (could maybe be made less messy, and not
> > sure it's really necessary to use the macro
> > version, I think it'd prefer the plain
> > show_bits etc)
> >
> 
> So many bugs in the previous version, this
> one is at least a bit more correct...

ah, i see what you did there! it works perfectly, just missing
UPDATE_CACHE at the start and in the loop.

test results on i7 decoding 3 minute long 4k video with vp4.

vp4 patch v3:
bench: utime=113.439s stime=0.414s rtime=30.161s
bench: utime=113.406s stime=0.403s rtime=30.123s
bench: utime=113.533s stime=0.310s rtime=30.104s
bench: utime=113.691s stime=0.414s rtime=30.148s
bench: utime=113.414s stime=0.435s rtime=30.102s
bench: utime=113.449s stime=0.370s rtime=30.138s
bench: utime=113.277s stime=0.470s rtime=30.139s

your patch + UPDATE_CACHE:
bench: utime=113.373s stime=0.386s rtime=30.109s
bench: utime=113.284s stime=0.378s rtime=30.122s
bench: utime=113.314s stime=0.414s rtime=30.125s
bench: utime=113.369s stime=0.378s rtime=30.130s
bench: utime=113.309s stime=0.394s rtime=30.108s
bench: utime=113.285s stime=0.435s rtime=30.048s
bench: utime=113.506s stime=0.362s rtime=30.182s

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)


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] [PATCHv3] VP4 video decoder

2019-05-17 Thread Peter Ross
On Thu, May 16, 2019 at 10:49:41AM -0300, James Almer wrote:
> On 5/16/2019 8:35 AM, Peter Ross wrote:
> > ---
> > 
> > what's changed:
> > * reordered AV_CODEC_ID_VP4
> > * minor read_mb_values improvement (reproducible 0.5% speedup)
> > * configure/Makefile fix
> > * squished data tables to fill 80 columns.
> > 
> > UNCHECKED_BITSTREAM_READER doesn't give any performance improvement
> > on my i7, even with unrealisticly huge 4k vp4 video files.
> 
> I hope that was a typo and you tested CACHED_BITSTREAM_READER, not
> UNCHECKED_BITSTREAM_READER :p
> 
> In any case, I wouldn't bother. Ricing a VP4 decoder is hardly worth
> anyone's time.

oops, yes. and i agree.

> > @@ -2825,6 +2825,7 @@ vc1image_decoder_select="vc1_decoder"
> >  vorbis_decoder_select="mdct"
> >  vorbis_encoder_select="audio_frame_queue mdct"
> >  vp3_decoder_select="hpeldsp vp3dsp videodsp"
> > +vp4_decoder_select="hpeldsp vp3dsp videodsp"
> 
> Theora enables the vp3 decoder instead of only the related modules
> because by compiling vp3.c it's already compiling the entirety of the
> vp3 decoder, so might as well have it enabled and available. IMO for vp4
> you should do the same.
> 
> Also, big vp4 specific functions and big chunks of code within shared
> functions should ideally be wrapped inside CONFIG_VP4_DECODER checks.

thanks for spotting these. fixed and fixed.

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)


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] libavdevice/gdigrab: fix ffmpeg -devices doesn't show gdigrab

2019-05-17 Thread Paul B Mahol
On 5/17/19, Jun Zhao  wrote:
> From: Jun Zhao 
>
> missed the category AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT lead to
> ffmpeg -devices doesn't show gdigrab as a input device
>
> FIx #7848
>
> Found-by: dangibson
> Signed-off-by: Jun Zhao 
> ---
>  libavdevice/gdigrab.c |1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c
> index b226bd0..f40 100644
> --- a/libavdevice/gdigrab.c
> +++ b/libavdevice/gdigrab.c
> @@ -647,6 +647,7 @@ static const AVClass gdigrab_class = {
>  .item_name  = av_default_item_name,
>  .option = options,
>  .version= LIBAVUTIL_VERSION_INT,
> +.category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
>  };
>
>  /** gdi grabber device demuxer declaration */
> --
> 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".

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

Re: [FFmpeg-devel] [PATCH] avfilter: add apitch filter

2019-05-17 Thread Paul B Mahol
On 5/17/19, Nicolas George  wrote:
> Paul B Mahol (12019-05-17):
>> Because lack of testers, I will apply this patch as is.
>
> Absolutely not. The consensus was to have a single filter, and even
> possibly make it part of lswr. This is what is currently discussed.

You are proposing even more absurd things.

It can not be part of lswr at all.
___
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] avfilter: add apitch filter

2019-05-17 Thread Paul B Mahol
On 5/17/19, Paul B Mahol  wrote:
> On 5/17/19, Nicolas George  wrote:
>> Paul B Mahol (12019-05-17):
>>> Because lack of testers, I will apply this patch as is.
>>
>> Absolutely not. The consensus was to have a single filter, and even
>> possibly make it part of lswr. This is what is currently discussed.
>
> You are proposing even more absurd things.
>
> It can not be part of lswr at all.
>

If you or anyone does not propose some reasonable alternative solution
in due time, I gonna apply this patch.
___
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] [FFMPEG DEVEL] [PATCH v2] fftools/ffprobe: Add S12M Timecode output as side data (such as SEI TC)

2019-05-17 Thread Antonin Gouzer
Thanks in advance.
---
 fftools/ffprobe.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index dea489d02e..4763ce6d98 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -2199,6 +2199,14 @@ static void show_frame(WriterContext *w, AVFrame *frame, 
AVStream *stream,
 char tcbuf[AV_TIMECODE_STR_SIZE];
 av_timecode_make_mpeg_tc_string(tcbuf, *(int64_t *)(sd->data));
 print_str("timecode", tcbuf);
+} else if (sd->type == AV_FRAME_DATA_S12M_TIMECODE && sd->size >= 
8) {
+uint32_t *tc = (uint32_t*)sd->data;
+for (int j = 1; j <= tc[0]; j++) {
+char tcbuf[AV_TIMECODE_STR_SIZE];
+av_timecode_make_smpte_tc_string(tcbuf, tc[j], 0);
+print_str("timecode", tcbuf);
+}
+break;
 } else if (sd->type == AV_FRAME_DATA_MASTERING_DISPLAY_METADATA) {
 AVMasteringDisplayMetadata *metadata = 
(AVMasteringDisplayMetadata *)sd->data;
 
-- 
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] avfilter: add apitch filter

2019-05-17 Thread Nicolas George
Paul B Mahol (12019-05-17):
> If you or anyone does not propose some reasonable alternative solution
> in due time, I gonna apply this patch.

As already said: a single filter named atempo with compatibility
options, or it is rejected.

And see with Michael about lswr.

-- 
  Nicolas George


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] avfilter: add apitch filter

2019-05-17 Thread Paul B Mahol
On 5/17/19, Nicolas George  wrote:
> Paul B Mahol (12019-05-17):
>> If you or anyone does not propose some reasonable alternative solution
>> in due time, I gonna apply this patch.
>
> As already said: a single filter named atempo with compatibility
> options, or it is rejected.

Says who? You are last person to be asked about this.

>
> And see with Michael about lswr.
>

I already rejected such idea.

> --
>   Nicolas George
>
___
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] avfilter: add apitch filter

2019-05-17 Thread Nicolas George
Paul B Mahol (12019-05-17):
> Says who? You are last person to be asked about this.

Another ad-hominem attack.

> I already rejected such idea.

No, since you did not give any argument.

I will not reply again if you continue your rudeness, your ad-hominem
attacks or just your lack of arguments. Just revert if you try to go
against the policy.

-- 
  Nicolas George


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] avfilter: add apitch filter

2019-05-17 Thread Paul B Mahol
On 5/17/19, Nicolas George  wrote:
> Paul B Mahol (12019-05-17):
>> Says who? You are last person to be asked about this.
>
> Another ad-hominem attack.

I really stopped counting, how many times you feel "attacked".

>
>> I already rejected such idea.
>
> No, since you did not give any argument.

There was no valid argument to do it via swr.
How you are supposed to dynamically change pitch that way?

>
> I will not reply again if you continue your rudeness, your ad-hominem
> attacks or just your lack of arguments. Just revert if you try to go
> against the policy.
>

I will call ban on your presense in this project.
___
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]

2019-05-17 Thread Werner Robitza
On Fri, May 17, 2019 at 11:16 AM Gyan  wrote:
> One change, from,
>
>  If value is set to @code{1}, enable full range for source. Default
> value is @code{0}, which enables limited range.
>
> to
>
>  If value is set to @code{1}, indicates source is full range.
> Default value is @code{0}, which indicates source as limited range.

Fixed and wrapped text at 80 chars.

Werner


0001-doc-swscaler-explain-values-for-src_range-dst_range.patch
Description: Binary data
___
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]

2019-05-17 Thread Gyan



On 17-05-2019 08:24 PM, Werner Robitza wrote:

On Fri, May 17, 2019 at 11:16 AM Gyan  wrote:

One change, from,

  If value is set to @code{1}, enable full range for source. Default
value is @code{0}, which enables limited range.

to

  If value is set to @code{1}, indicates source is full range.
Default value is @code{0}, which indicates source as limited range.

Fixed and wrapped text at 80 chars.

Pushed as b99c73abf4b9931d0790cfbcb46aa8b799ac244b

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

Re: [FFmpeg-devel] [PATCH 2/4] avformat/vivo: improve probing of some files

2019-05-17 Thread Michael Niedermayer
On Thu, May 16, 2019 at 11:43:05AM +0200, Paul B Mahol wrote:
> Signed-off-by: Paul B Mahol 
> ---
>  libavformat/vivo.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

LGTM

thx

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

What does censorship reveal? It reveals fear. -- Julian Assange


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] [PATCHv3] VP4 video decoder

2019-05-17 Thread Reimar Döffinger
On Fri, May 17, 2019 at 08:09:45PM +1000, Peter Ross wrote:
> ah, i see what you did there! it works perfectly, just missing
> UPDATE_CACHE at the start and in the loop.
>
> test results on i7 decoding 3 minute long 4k video with vp4.

Looks fairly close to noise to me, though for me
it seemed a bit more obvious how the encoding
works from it (which was the primary reason to suggest it).
If one really wanted to optimize it for performance the
arrangement of the conditions can probably be improved, e.g.
the 0x1ff check is now the very first one even though
it is the least likely one (but avoids duplicating code
or needing crazy goto or loop constructs and thus
is more readable), and depending on probabilities
doing the range checks in a more tree-like structure
might also be better.
But as said, optimizing this has probably at most
curiosity value :)

> vp4 patch v3:
> bench: utime=113.439s stime=0.414s rtime=30.161s
> bench: utime=113.406s stime=0.403s rtime=30.123s
> bench: utime=113.533s stime=0.310s rtime=30.104s
> bench: utime=113.691s stime=0.414s rtime=30.148s
> bench: utime=113.414s stime=0.435s rtime=30.102s
> bench: utime=113.449s stime=0.370s rtime=30.138s
> bench: utime=113.277s stime=0.470s rtime=30.139s
>
> your patch + UPDATE_CACHE:
> bench: utime=113.373s stime=0.386s rtime=30.109s
> bench: utime=113.284s stime=0.378s rtime=30.122s
> bench: utime=113.314s stime=0.414s rtime=30.125s
> bench: utime=113.369s stime=0.378s rtime=30.130s
> bench: utime=113.309s stime=0.394s rtime=30.108s
> bench: utime=113.285s stime=0.435s rtime=30.048s
> bench: utime=113.506s stime=0.362s rtime=30.182s
___
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/mxfenc: support XAVC long gop

2019-05-17 Thread Baptiste Coudurier
Hi Thomas,

> On May 14, 2019, at 2:54 PM, Thomas Mundt  wrote:
> 
> Hi Baptiste,
> 
> Am Di., 14. Mai 2019 um 18:59 Uhr schrieb Baptiste Coudurier 
> mailto:baptiste.coudur...@gmail.com>>:
> ---
>  libavformat/Makefile |   2 +-
>  libavformat/avc.c| 186 +
>  libavformat/avc.h|  15 +++
>  libavformat/hevc.c   |  36 +---
>  libavformat/mxf.h|   1 +
>  libavformat/mxfenc.c | 213 ++-
>  6 files changed, 372 insertions(+), 81 deletions(-)
> 
> diff --git a/libavformat/Makefile b/libavformat/Makefile
> index 99be60d184..df87c54a58 100644
> --- a/libavformat/Makefile
> +++ b/libavformat/Makefile
> @@ -339,7 +339,7 @@ OBJS-$(CONFIG_MUSX_DEMUXER)  += musx.o
>  OBJS-$(CONFIG_MV_DEMUXER)+= mvdec.o
>  OBJS-$(CONFIG_MVI_DEMUXER)   += mvi.o
>  OBJS-$(CONFIG_MXF_DEMUXER)   += mxfdec.o mxf.o
> -OBJS-$(CONFIG_MXF_MUXER) += mxfenc.o mxf.o audiointerleave.o
> +OBJS-$(CONFIG_MXF_MUXER) += mxfenc.o mxf.o audiointerleave.o 
> avc.o
>  OBJS-$(CONFIG_MXG_DEMUXER)   += mxg.o
>  OBJS-$(CONFIG_NC_DEMUXER)+= ncdec.o
>  OBJS-$(CONFIG_NISTSPHERE_DEMUXER)+= nistspheredec.o pcm.o
> diff --git a/libavformat/avc.c b/libavformat/avc.c
> index ec50033a04..a041e84357 100644
> --- a/libavformat/avc.c
> +++ b/libavformat/avc.c
> @@ -21,6 +21,7 @@
> 
>  #include "libavutil/intreadwrite.h"
>  #include "libavcodec/h264.h"
> +#include "libavcodec/get_bits.h"
>  #include "avformat.h"
>  #include "avio.h"
>  #include "avc.h"
> @@ -241,3 +242,188 @@ const uint8_t *ff_avc_mp4_find_startcode(const uint8_t 
> *start,
> 
>  return start + res;
>  }
> +
> +uint8_t *ff_nal_unit_extract_rbsp(const uint8_t *src, uint32_t src_len,
> +  uint32_t *dst_len, int header_len)
> +{
> +uint8_t *dst;
> +uint32_t i, len;
> +
> +dst = av_malloc(src_len + AV_INPUT_BUFFER_PADDING_SIZE);
> +if (!dst)
> +return NULL;
> +
> +/* NAL unit header */
> +i = len = 0;
> +while (i < header_len && i < src_len)
> +dst[len++] = src[i++];
> +
> +while (i + 2 < src_len)
> +if (!src[i] && !src[i + 1] && src[i + 2] == 3) {
> +dst[len++] = src[i++];
> +dst[len++] = src[i++];
> +i++; // remove emulation_prevention_three_byte
> +} else
> +dst[len++] = src[i++];
> +
> +while (i < src_len)
> +dst[len++] = src[i++];
> +
> +memset(dst + len, 0, AV_INPUT_BUFFER_PADDING_SIZE);
> +
> +*dst_len = len;
> +return dst;
> +}
> +
> +static const AVRational avc_sample_aspect_ratio[17] = {
> +{   0,  1 },
> +{   1,  1 },
> +{  12, 11 },
> +{  10, 11 },
> +{  16, 11 },
> +{  40, 33 },
> +{  24, 11 },
> +{  20, 11 },
> +{  32, 11 },
> +{  80, 33 },
> +{  18, 11 },
> +{  15, 11 },
> +{  64, 33 },
> +{ 160, 99 },
> +{   4,  3 },
> +{   3,  2 },
> +{   2,  1 },
> +};
> +
> +static inline int get_ue_golomb(GetBitContext *gb) {
> +int i;
> +for (i = 0; i < 32 && !get_bits1(gb); i++)
> +;
> +return get_bitsz(gb, i) + (1 << i) - 1;
> +}
> +
> +static inline int get_se_golomb(GetBitContext *gb) {
> +int v = get_ue_golomb(gb) + 1;
> +int sign = -(v & 1);
> +return ((v >> 1) ^ sign) - sign;
> +}
> +
> +H264SequenceParameterSet *ff_avc_decode_sps(const uint8_t *buf, int buf_size)
> +{
> +int i, j, ret, rbsp_size, aspect_ratio_idc, pic_order_cnt_type;
> +int num_ref_frames_in_pic_order_cnt_cycle;
> +int delta_scale, lastScale = 8, nextScale = 8;
> +int sizeOfScalingList;
> +H264SequenceParameterSet *sps = NULL;
> +GetBitContext gb;
> +uint8_t *rbsp_buf;
> +
> +rbsp_buf = ff_nal_unit_extract_rbsp(buf, buf_size, &rbsp_size, 0);
> +if (!rbsp_buf)
> +return NULL;
> +
> +ret = init_get_bits8(&gb, rbsp_buf, rbsp_size);
> +if (ret < 0)
> +goto end;
> +
> +sps = av_mallocz(sizeof(*sps));
> +if (!sps)
> +goto end;
> +
> +sps->profile_idc = get_bits(&gb, 8);
> +sps->constraint_set_flags |= get_bits1(&gb) << 0; // constraint_set0_flag
> +sps->constraint_set_flags |= get_bits1(&gb) << 1; // constraint_set1_flag
> +sps->constraint_set_flags |= get_bits1(&gb) << 2; // constraint_set2_flag
> +sps->constraint_set_flags |= get_bits1(&gb) << 3; // constraint_set3_flag
> +sps->constraint_set_flags |= get_bits1(&gb) << 4; // constraint_set4_flag
> +sps->constraint_set_flags |= get_bits1(&gb) << 5; // constraint_set5_flag
> +skip_bits(&gb, 2); // reserved_zero_2bits
> +sps->level_idc = get_bits(&gb, 8);
> +sps->id = get_ue_golomb(&gb);
> +
> +if (sps->profile_idc == 100 || sps->profile_idc == 110 ||
> +sps->profile_idc == 122 || sps->profile_idc == 244 || 
> sps->profile_idc ==  44 ||
> +sps->profile_idc ==  83 || sps->profile_idc =

Re: [FFmpeg-devel] [PATCH] ffplay: added option always on top for video window

2019-05-17 Thread Daniel Kučera
Dňa št 16. 5. 2019, 12:04 Daniel Kučera 
napísal(a):

>
>
> Dňa st 15. 5. 2019, 11:14 Daniel Kučera 
> napísal(a):
>
>> >
>> > Ping.
>> >
>> > --
>> >
>> > S pozdravom / Best regards
>> > Daniel Kucera.
>>
>> Ping.
>>
>> --
>>
>> S pozdravom / Best regards
>> Daniel Kucera.
>>
>
> Ping.
>

Ping.
___
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] [DECISION] Ban Nicolas George from project

2019-05-17 Thread Paul B Mahol
Hi,

$subject.

He is constantly against my patches, and derailing it with other things
to just block them.

He is also misguiding other fellow developers with unreasonable and
impossible refactoring task, see that frame rotating patch set.

libavfilter does not allow dynamic changing of frame parameters.
And he know it very well.
___
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] [DECISION] Ban Nicolas George from project

2019-05-17 Thread James Almer
On 5/17/2019 4:25 PM, Paul B Mahol wrote:
> Hi,
> 
> $subject.
> 
> He is constantly against my patches, and derailing it with other things
> to just block them.
> 
> He is also misguiding other fellow developers with unreasonable and
> impossible refactoring task, see that frame rotating patch set.
> 
> libavfilter does not allow dynamic changing of frame parameters.
> And he know it very well.

You didn't set a deadline, and even if you had done it, something like
this requires at the bare minimum some examples to back your argument
about blocking/derailing in the form of links or similar.
Also, this requires some discussion first, you know? No one is going to
touch such a sudden and extreme call for vote with a ten foot pole
otherwise.

And I'd very much like a peaceful weekend. Please.
___
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/2] avcodec/vmnc: Check available space against chunks before reget_buffer()

2019-05-17 Thread Michael Niedermayer
Fixes: Timeout (16sec -> 60ms)
Fixes: 
14673/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VMNC_fuzzer-5640217517621248

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

diff --git a/libavcodec/vmnc.c b/libavcodec/vmnc.c
index 30b1414e49..e273043311 100644
--- a/libavcodec/vmnc.c
+++ b/libavcodec/vmnc.c
@@ -333,11 +333,15 @@ static int decode_frame(AVCodecContext *avctx, void 
*data, int *got_frame,
 uint8_t *outptr;
 int dx, dy, w, h, depth, enc, chunks, res, size_left, ret;
 
+bytestream2_init(gb, buf, buf_size);
+bytestream2_skip(gb, 2);
+chunks = bytestream2_get_be16(gb);
+if (12LL * chunks > bytestream2_get_bytes_left(gb))
+return AVERROR_INVALIDDATA;
+
 if ((ret = ff_reget_buffer(avctx, c->pic)) < 0)
 return ret;
 
-bytestream2_init(gb, buf, buf_size);
-
 c->pic->key_frame = 0;
 c->pic->pict_type = AV_PICTURE_TYPE_P;
 
@@ -369,8 +373,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, 
int *got_frame,
 }
 }
 }
-bytestream2_skip(gb, 2);
-chunks = bytestream2_get_be16(gb);
+
 while (chunks--) {
 if (bytestream2_get_bytes_left(gb) < 12) {
 av_log(avctx, AV_LOG_ERROR, "Premature end of data!\n");
-- 
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/2] avcodec/pafvideo: Clear frame buffer later

2019-05-17 Thread Michael Niedermayer
This way the clearing can be skipped in case of some errors.

Fixes: Timeout (11sec -> 344ms)
Fixes: 
14670/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PAF_VIDEO_fuzzer-5769534503387136

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

diff --git a/libavcodec/pafvideo.c b/libavcodec/pafvideo.c
index 7bfd6815df..323c662c59 100644
--- a/libavcodec/pafvideo.c
+++ b/libavcodec/pafvideo.c
@@ -293,9 +293,6 @@ static int paf_video_decode(AVCodecContext *avctx, void 
*data,
 return ret;
 
 if (code & 0x20) {  // frame is keyframe
-for (i = 0; i < 4; i++)
-memset(c->frame[i], 0, c->frame_size);
-
 memset(c->pic->data[1], 0, AVPALETTE_SIZE);
 c->current_frame  = 0;
 c->pic->key_frame = 1;
@@ -332,6 +329,10 @@ static int paf_video_decode(AVCodecContext *avctx, void 
*data,
 c->pic->palette_has_changed = 1;
 }
 
+if (code & 0x20)
+for (i = 0; i < 4; i++)
+memset(c->frame[i], 0, c->frame_size);
+
 switch (code & 0x0F) {
 case 0:
 /* Block-based motion compensation using 4x4 blocks with either
-- 
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] [DECISION] Ban Nicolas George from project

2019-05-17 Thread Reimar Döffinger
Voting is not yet another mobbing tool for when you get tired of other ways.
If you wish for an end to that feud, you can ask other developers to try and 
help, but you've kept this going for years and usually responded somewhere 
between dismissive and insulting to any such attempts.
If you wish to keep the feud going, please deal with the consequences yourself 
and stop dragging the whole project into your self-created messes.

Sorry for the bluntness and my excuses if I ruined the chances for a peaceful 
weekend.

Best regards,
Reimar Döffinger.

On 17.05.2019, at 21:25, Paul B Mahol  wrote:

> Hi,
> 
> $subject.
> 
> He is constantly against my patches, and derailing it with other things
> to just block them.
> 
> He is also misguiding other fellow developers with unreasonable and
> impossible refactoring task, see that frame rotating patch set.
> 
> libavfilter does not allow dynamic changing of frame parameters.
> And he know it very well.
> ___
> 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] libavdevice/gdigrab: fix ffmpeg -devices doesn't show gdigrab

2019-05-17 Thread myp...@gmail.com
On Fri, May 17, 2019 at 7:33 PM Paul B Mahol  wrote:
>
> On 5/17/19, Jun Zhao  wrote:
> > From: Jun Zhao 
> >
> > missed the category AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT lead to
> > ffmpeg -devices doesn't show gdigrab as a input device
> >
> > FIx #7848
> >
> > Found-by: dangibson
> > Signed-off-by: Jun Zhao 
> > ---
> >  libavdevice/gdigrab.c |1 +
> >  1 files changed, 1 insertions(+), 0 deletions(-)
> >
> > diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c
> > index b226bd0..f40 100644
> > --- a/libavdevice/gdigrab.c
> > +++ b/libavdevice/gdigrab.c
> > @@ -647,6 +647,7 @@ static const AVClass gdigrab_class = {
> >  .item_name  = av_default_item_name,
> >  .option = options,
> >  .version= LIBAVUTIL_VERSION_INT,
> > +.category   = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
> >  };
> >
> >  /** gdi grabber device demuxer declaration */
> > --
> > 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".
>
> 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".