Re: [FFmpeg-devel] [PATCH v4] avformat/http, icecast, rtsp: Add option to disable send-100-continue

2019-03-29 Thread Jun Li
On Wed, Mar 27, 2019 at 11:27 PM Jun Li  wrote:

>
>
> On Mon, Mar 25, 2019 at 2:42 PM Jun Li  wrote:
>
>>
>>
>> On Fri, Mar 22, 2019 at 4:12 PM Jun Li  wrote:
>>
>>> The current setting for send-100-continue option is either
>>> enabled if applicable or forced enabled, no option to force
>>> disable the header. This change is to expand the option setting
>>> to provide more flexibility, which is useful for rstp case.
>>> ---
>>>  libavformat/http.c| 28 +---
>>>  libavformat/icecast.c |  2 +-
>>>  libavformat/rtsp.c|  1 +
>>>  3 files changed, 19 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/libavformat/http.c b/libavformat/http.c
>>> index 74d743850d..5a937994cf 100644
>>> --- a/libavformat/http.c
>>> +++ b/libavformat/http.c
>>> @@ -113,6 +113,7 @@ typedef struct HTTPContext {
>>>  uint8_t *inflate_buffer;
>>>  #endif /* CONFIG_ZLIB */
>>>  AVDictionary *chained_options;
>>> +/* -1 = try to send if applicable, 0 = always disabled, 1 = always
>>> enabled */
>>>  int send_expect_100;
>>>  char *method;
>>>  int reconnect;
>>> @@ -155,7 +156,7 @@ static const AVOption options[] = {
>>>  { "auth_type", "HTTP authentication type",
>>> OFFSET(auth_state.auth_type), AV_OPT_TYPE_INT, { .i64 = HTTP_AUTH_NONE },
>>> HTTP_AUTH_NONE, HTTP_AUTH_BASIC, D | E, "auth_type"},
>>>  { "none", "No auth method set, autodetect", 0, AV_OPT_TYPE_CONST, {
>>> .i64 = HTTP_AUTH_NONE }, 0, 0, D | E, "auth_type"},
>>>  { "basic", "HTTP basic authentication", 0, AV_OPT_TYPE_CONST, {
>>> .i64 = HTTP_AUTH_BASIC }, 0, 0, D | E, "auth_type"},
>>> -{ "send_expect_100", "Force sending an Expect: 100-continue header
>>> for POST", OFFSET(send_expect_100), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E
>>> },
>>> +{ "send_expect_100", "Force sending an Expect: 100-continue header
>>> for POST", OFFSET(send_expect_100), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1,
>>> E },
>>>  { "location", "The actual location of the data received",
>>> OFFSET(location), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, D | E },
>>>  { "offset", "initial byte offset", OFFSET(off), AV_OPT_TYPE_INT64,
>>> { .i64 = 0 }, 0, INT64_MAX, D },
>>>  { "end_offset", "try to limit the request to bytes preceding this
>>> offset", OFFSET(end_off), AV_OPT_TYPE_INT64, { .i64 = 0 }, 0, INT64_MAX, D
>>> },
>>> @@ -1179,16 +1180,21 @@ static int http_connect(URLContext *h, const
>>> char *path, const char *local_path,
>>>  local_path, method);
>>>  proxyauthstr = ff_http_auth_create_response(>proxy_auth_state,
>>> proxyauth,
>>>  local_path, method);
>>> -if (post && !s->post_data) {
>>> -send_expect_100 = s->send_expect_100;
>>> -/* The user has supplied authentication but we don't know the
>>> auth type,
>>> - * send Expect: 100-continue to get the 401 response including
>>> the
>>> - * WWW-Authenticate header, or an 100 continue if no auth
>>> actually
>>> - * is needed. */
>>> -if (auth && *auth &&
>>> -s->auth_state.auth_type == HTTP_AUTH_NONE &&
>>> -s->http_code != 401)
>>> -send_expect_100 = 1;
>>> +
>>> + if (post && !s->post_data) {
>>> +if (s->send_expect_100 != -1) {
>>> +send_expect_100 = s->send_expect_100;
>>> +} else {
>>> +send_expect_100 = 0;
>>> +/* The user has supplied authentication but we don't know
>>> the auth type,
>>> + * send Expect: 100-continue to get the 401 response
>>> including the
>>> + * WWW-Authenticate header, or an 100 continue if no auth
>>> actually
>>> + * is needed. */
>>> +if (auth && *auth &&
>>> +s->auth_state.auth_type == HTTP_AUTH_NONE &&
>>> +s->http_code != 401)
>>> +send_expect_100 = 1;
>>> +}
>>>  }
>>>
>>>  #if FF_API_HTTP_USER_AGENT
>>> diff --git a/libavformat/icecast.c b/libavformat/icecast.c
>>> index c93b06b553..d2198b78ec 100644
>>> --- a/libavformat/icecast.c
>>> +++ b/libavformat/icecast.c
>>> @@ -115,7 +115,7 @@ static int icecast_open(URLContext *h, const char
>>> *uri, int flags)
>>>  av_dict_set(_dict, "auth_type", "basic", 0);
>>>  av_dict_set(_dict, "headers", headers, 0);
>>>  av_dict_set(_dict, "chunked_post", "0", 0);
>>> -av_dict_set(_dict, "send_expect_100", s->legacy_icecast ? "0" :
>>> "1", 0);
>>> +av_dict_set(_dict, "send_expect_100", s->legacy_icecast ? "-1"
>>> : "1", 0);
>>>  if (NOT_EMPTY(s->content_type))
>>>  av_dict_set(_dict, "content_type", s->content_type, 0);
>>>  else
>>> diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
>>> index ae8811234a..6e67e411b9 100644
>>> --- a/libavformat/rtsp.c
>>> +++ b/libavformat/rtsp.c
>>> @@ -1793,6 +1793,7 @@ redirect:
>>>   sessioncookie);
>>>  

Re: [FFmpeg-devel] Fw: [PATCH] libavcodec Adding ff_v210_planar_unpack AVX2

2019-03-29 Thread Mike
> On 2019-03-26 21:22, Mike Stoner via ffmpeg-devel wrote:
>
> > Hello,
> > I’ve accounted for all feedback on this so far, I’m wondering if it is 
> > ready to be pushed upstream?
> >
> > Here are my results from ‘checkasm’ (lower is better):
> >
> > v210_unpack_c: 1636
> > v210_unpack_ssse3: 611
> > v210_unpack_avx: 601
> > v210_unpack_avx2: 423
> >
> > I ran it 5 times and averaged the middle 3 results for each CPU target 
> > (ignoring the highest and lowest time).
> >
> > https://patchwork.ffmpeg.org/patch/12325/
> >
> >
> > Thanks… -Mike
>
>
> Sorry that I keep forgetting about this.  I will try to make some time
> tomorrow to give this another look over.
>
> I'm not sure what order this and my checkasm patch should be applied in,
> which I also forgot about.
>
> Did anyone else make comments on either patch?
>

Martin Vignali had commented about using VBROADCASTI128 instead of
doubling the constants to 32 bytes for AVX2.  I incorporated that into
the updated patch.

Your checkasm patch looks good to me.  I think you could also add it
to "/tests/fate/checkasm.mak".

I'm open to either order that these could be committed.  Note there
are already a few Fate vsynth tests that will fail if v210dec gets
broken.

-Mike
___
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 4/5] x86/opusdsp: implement FMA3 accelerated postfilter and deemphasis

2019-03-29 Thread Carl Eugen Hoyos
2019-03-16 17:33 GMT+01:00, Lynne :
> 58893 decicycles in deemphasis_c,  130548 runs,524 skips
> 9475 decicycles in deemphasis_fma3,  130686 runs,386 skips -> 6.21x
> speedup
>
> 24866 decicycles in postfilter_c,   65386 runs,150 skips
> 5268 decicycles in postfilter_fma3,   65505 runs, 31 skips -> 4.72x
> speedup
>
> Total decoder speedup: ~14%

I can reproduce approximately half of this speedup and
will push over the weekend if there are no objections.

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

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

Re: [FFmpeg-devel] [PATCH 1/2] libavcodec/zmbv: change 24-bit decoder channel order, from RGB24 to BGR24

2019-03-29 Thread Matthew Fearnley
On Wed, 27 Mar 2019 at 09:42, Tomas Härdin  wrote:

> tis 2019-03-26 klockan 22:13 + skrev Matthew Fearnley:
> > This brings the channel order in line with that used in 32-bit mode
> (BGR0).
> >
> > 24-bit decoding is disabled by default (#ifdef ZMBV_ENABLE_24BPP), and no
> > prior encoders or sample videos are known to exist for this bit depth, so
> > I consider this change in implementation is unlikely to affect anyone.
> >
> > The decision has been made in agreement with the DOSBox Development Team
> > > (dosbox.c...@gmail.com), specifically with harekiet, who wrote the
> original
> > codec.
>
> I can confirm this
>
> > Additional minor fix: use PTRDIFF_SPECIFIER for `src - c->decomp_buf`.
> > Other bit depths saw this change in ced0d6c14d, but this instance was
> > missed, presumably because of the #ifdef block.
>
> I think it'd be best to split this off into its own patch, even if it's
> trivial
>
Yeah, I think you're right.
I'm attaching two patches here, if that works..

>
> /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".
From f78dc4276dd0517332bafdf99c7ce522aeb7cac2 Mon Sep 17 00:00:00 2001
From: Matthew Fearnley 
Date: Tue, 26 Mar 2019 19:44:23 +
Subject: [PATCH 1/3] libavcodec/zmbv: change 24-bit decoder channel order,
 from RGB24 to BGR24

This brings the channel order in line with that used in 32-bit mode (BGR0).

24-bit decoding is disabled by default (#ifdef ZMBV_ENABLE_24BPP), and no
prior encoders or sample videos are known to exist for this bit depth, so
I consider this change in implementation is unlikely to affect anyone.

The decision has been made in agreement with the DOSBox Development Team
(dosbox.c...@gmail.com), specifically with harekiet, who wrote the original
codec.
---
 libavcodec/zmbv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/zmbv.c b/libavcodec/zmbv.c
index e07009d0fb..71ec2cd424 100644
--- a/libavcodec/zmbv.c
+++ b/libavcodec/zmbv.c
@@ -303,7 +303,7 @@ static int zmbv_decode_xor_24(ZmbvContext *c)
 prev += stride * c->bh;
 }
 if (src - c->decomp_buf != c->decomp_len)
-av_log(c->avctx, AV_LOG_ERROR, "Used %i of %i bytes\n",
+av_log(c->avctx, AV_LOG_ERROR, "Used %"PTRDIFF_SPECIFIER" of %i bytes\n",
src-c->decomp_buf, c->decomp_len);
 return 0;
 }
-- 
2.17.1

From 905eb8b403281f180148bef50804af740d411b54 Mon Sep 17 00:00:00 2001
From: Matthew Fearnley 
Date: Fri, 29 Mar 2019 22:03:03 +
Subject: [PATCH 2/3] libavcodec/zmbv: use PTRDIFF_SPECIFIER for `src -
 c->decomp_buf`.

Other bit depths saw this change in ced0d6c14d, but this instance was
presumably missed because of the #ifdef block.
---
 libavcodec/zmbv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/zmbv.c b/libavcodec/zmbv.c
index 71ec2cd424..898b62d065 100644
--- a/libavcodec/zmbv.c
+++ b/libavcodec/zmbv.c
@@ -473,7 +473,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac
 c->bpp = 24;
 decode_intra = zmbv_decode_intra;
 c->decode_xor = zmbv_decode_xor_24;
-avctx->pix_fmt = AV_PIX_FMT_RGB24;
+avctx->pix_fmt = AV_PIX_FMT_BGR24;
 c->stride = c->width * 3;
 break;
 #endif //ZMBV_ENABLE_24BPP
-- 
2.17.1

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

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

Re: [FFmpeg-devel] [PATCH] avformat/mxfenc: support XAVC long gop

2019-03-29 Thread Thomas Mundt
Am Do., 28. März 2019 um 16:51 Uhr schrieb Baptiste Coudurier <
baptiste.coudur...@gmail.com>:

> ---
>  libavformat/mxf.h|   1 +
>  libavformat/mxfenc.c | 194 ---
>  2 files changed, 145 insertions(+), 50 deletions(-)
>
> diff --git a/libavformat/mxf.h b/libavformat/mxf.h
> index 4394450dea..f32124f772 100644
> --- a/libavformat/mxf.h
> +++ b/libavformat/mxf.h
> @@ -48,6 +48,7 @@ enum MXFMetadataSetType {
>  EssenceGroup,
>  TaggedValue,
>  TapeDescriptor,
> +AVCSubDescriptor,
>  };
>
>  enum MXFFrameLayout {
> diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
> index 8c6db94865..b2e818a8a5 100644
> --- a/libavformat/mxfenc.c
> +++ b/libavformat/mxfenc.c
> @@ -49,7 +49,10 @@
>  #include "libavcodec/bytestream.h"
>  #include "libavcodec/dnxhddata.h"
>  #include "libavcodec/dv_profile.h"
> -#include "libavcodec/h264.h"
> +#include "libavcodec/golomb.h"
> +#include "libavcodec/h264data.h"
> +#include "libavcodec/h264_ps.h"
> +#include "libavcodec/h2645_parse.h"
>  #include "libavcodec/internal.h"
>  #include "audiointerleave.h"
>  #include "avformat.h"
> @@ -99,6 +102,7 @@ typedef struct MXFStreamContext {
>  int max_gop; ///< maximum gop size, used by mpeg-2
> descriptor
>  int b_picture_count; ///< maximum number of consecutive b
> pictures, used in mpeg-2 descriptor
>  int low_delay;   ///< low delay, used in mpeg-2 descriptor
> +int avc_intra;
>  } MXFStreamContext;
>
>  typedef struct MXFContainerEssenceEntry {
> @@ -167,6 +171,7 @@ static const struct {
>  static void mxf_write_wav_desc(AVFormatContext *s, AVStream *st);
>  static void mxf_write_aes3_desc(AVFormatContext *s, AVStream *st);
>  static void mxf_write_mpegvideo_desc(AVFormatContext *s, AVStream *st);
> +static void mxf_write_h264_desc(AVFormatContext *s, AVStream *st);
>  static void mxf_write_cdci_desc(AVFormatContext *s, AVStream *st);
>  static void mxf_write_generic_sound_desc(AVFormatContext *s, AVStream
> *st);
>  static void mxf_write_s436m_anc_desc(AVFormatContext *s, AVStream *st);
> @@ -310,7 +315,7 @@ static const MXFContainerEssenceEntry
> mxf_essence_container_uls[] = {
>  { {
> 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0a,0x0D,0x01,0x03,0x01,0x02,0x10,0x60,0x01
> },
>{
> 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x15,0x01,0x05,0x00
> },
>{
> 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0a,0x04,0x01,0x02,0x02,0x01,0x00,0x00,0x00
> },
> -  mxf_write_mpegvideo_desc },
> +  mxf_write_h264_desc },
>  // S436M ANC
>  { {
> 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0a,0x0D,0x01,0x03,0x01,0x02,0x0e,0x00,0x00
> },
>{
> 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x17,0x01,0x02,0x00
> },
> @@ -498,6 +503,12 @@ static const MXFLocalTagPair mxf_local_tag_batch[] = {
>  { 0x8006,
> {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x08,0x00,0x00}},
> /* MaxGOP */
>  { 0x8007,
> {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x0A,0x00,0x00}},
> /* ProfileAndLevel */
>  { 0x8008,
> {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x01,0x06,0x02,0x01,0x09,0x00,0x00}},
> /* BPictureCount */
> +// Generic Descriptor
> +{ 0x8100,
> {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x09,0x06,0x01,0x01,0x04,0x06,0x10,0x00,0x00}},
> /* SubDescriptors */
> +// AVC SubDescriptor
> +{ 0x8200,
> {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x0E,0x04,0x01,0x06,0x06,0x01,0x0E,0x00,0x00}},
> /* AVC Decoding Delay */
> +{ 0x8201,
> {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x0E,0x04,0x01,0x06,0x06,0x01,0x0A,0x00,0x00}},
> /* AVC Profile */
> +{ 0x8202,
> {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x0E,0x04,0x01,0x06,0x06,0x01,0x0D,0x00,0x00}},
> /* AVC Level */
>  // Wave Audio Essence Descriptor
>  { 0x3D09,
> {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x02,0x03,0x03,0x05,0x00,0x00,0x00}},
> /* Average Bytes Per Second */
>  { 0x3D0A,
> {0x06,0x0E,0x2B,0x34,0x01,0x01,0x01,0x05,0x04,0x02,0x03,0x02,0x01,0x00,0x00,0x00}},
> /* Block Align */
> @@ -1126,6 +1137,8 @@ static const UID mxf_aes3_descriptor_key  = {
> 0x06,0x0E,0x2B,0x34,0x02,0x53,
>  static const UID mxf_cdci_descriptor_key  = {
> 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0D,0x01,0x01,0x01,0x01,0x01,0x28,0x00
> };
>  static const UID mxf_generic_sound_descriptor_key = {
> 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0D,0x01,0x01,0x01,0x01,0x01,0x42,0x00
> };
>
> +static const UID mxf_avc_subdescriptor_key = {
> 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x6E,0x00
> };
> +
>  static int get_trc(UID ul, enum AVColorTransferCharacteristic trc)
>  {
>  switch (trc){
> @@ -1317,6 +1330,13 @@ static int64_t
> mxf_write_cdci_common(AVFormatContext *s, AVStream *st, const UID
>  avio_w8(pb, sc->field_dominance);
>  }
>
> +if (st->codecpar->codec_id == AV_CODEC_ID_H264 && !sc->avc_intra) {
> +// write avc sub descriptor ref
> +

Re: [FFmpeg-devel] [PATCH] Fix loss of precision for silencedetect on large files

2019-03-29 Thread Allan Cady via ffmpeg-devel

Trying a desktop mail client instead of webmail.

On 3/27/2019 11:19 AM, Michael Niedermayer wrote:


this breaks make fate

also if fate is updated it should be ensured it still checks enough precission
and that it does produce the same results (fate passes) on all relevant
platforms. This change may bring non significant differences into significance

thanks

[...]



OK so I spent some more time familiarizing myself with the code and 
tests, and it's clear that making the change the way I did would 
probably break dozens of tests, because the function I changed, 
av_ts_make_time_string, is referenced (by its convenience macro 
av_ts2timestr) in many files (I count 21) and dozens of lines of code, 
in libavfilter, fftools, and libavformat.


As an alternative, I tried making a modified & renamed copy of 
av_ts_make_time_string/av_ts2timestr, and referencing that copy in 
af_silencedetect.c, leaving other references to the original function 
unchanged. In this case, FATE fails just a single test, 
filter-metadata-silencedetect. I then modified the reference output file 
(tests/ref/fate/filter-metadata-silencedetect) to match the changed 
output, and all tests then pass.


In looking at other uses of av_ts2timestr, it's clear av_ts2timestr was 
intended for general purpose use.


So at this point I could use some guidance from the wizards as to the 
best way to proceed. Not knowing any of the history or thinking that 
went into the design, I don't know if it makes the best sense to use the 
"%.6g" format for all those other timestamps, but I feel strongly that 
it's a poor choice for silencedetect (and probably other *detect 
filters), for the reason I explained originally. Is there possibly 
another way to get the result I want without modifying the code? I can 
imagine maybe a format specifier as a filter parameter -- is there any 
precedent for this?


Open to suggestions. Thanks all.

Allan

___
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] Added more commandline options for libaom encoder.

2019-03-29 Thread James Almer
On 3/29/2019 1:58 PM, Sam John via ffmpeg-devel wrote:
> The following are the newly added options:
> arnr_max_frames, arnr_strength, aq_mode, denoise_noise_level, 
> denoise_block_size,
> rc_undershoot_pct, rc_overshoot_pct, minsection_pct, maxsection_pct, 
> frame_parallel,
> enable_cdef, enable_global_motion, and intrabc.
> 
> Also added macros for compiling for aom 1.0.0 and fixed the default values.
> ---
>  libavcodec/libaomenc.c | 97 --
>  1 file changed, 93 insertions(+), 4 deletions(-)

Applied. Please send a patch documenting the new options in
encoders.texi as Gyan requested.
___
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 4/5] x86/opusdsp: implement FMA3 accelerated postfilter and deemphasis

2019-03-29 Thread Lynne
Mar 16, 2019, 4:33 PM by d...@lynne.ee :

> 58893 decicycles in deemphasis_c,  130548 runs,    524 skips
> 9475 decicycles in deemphasis_fma3,  130686 runs,    386 skips -> 6.21x 
> speedup
>
> 24866 decicycles in postfilter_c,   65386 runs,    150 skips
> 5268 decicycles in postfilter_fma3,   65505 runs, 31 skips -> 4.72x 
> speedup
>
> Total decoder speedup: ~14%
>
> Deemphasis SIMD based on the following unrolling:
> const float c1 = CELT_EMPH_COEFF, c2 = c1*c1, c3 = c2*c1, c4 = c3*c1;
> float state = coeff;
>
> for (int i = 0; i < len; i += 4) {
>     y[0] = x[0] + c1*state;
>     y[1] = x[1] + c2*state + c1*x[0];
>     y[2] = x[2] + c3*state + c1*x[1] + c2*x[0];
>     y[3] = x[3] + c4*state + c1*x[2] + c2*x[1] + c3*x[0];
>
>     state = y[3];
>     y += 4;
>     x += 4;
> }
>

Ping to this part of the patchset while I fix android?
___
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] Added more commandline options for libaom encoder.

2019-03-29 Thread Gyan



On 29-03-2019 10:28 PM, Sam John via ffmpeg-devel wrote:

The following are the newly added options:
arnr_max_frames, arnr_strength, aq_mode, denoise_noise_level, 
denoise_block_size,
rc_undershoot_pct, rc_overshoot_pct, minsection_pct, maxsection_pct, 
frame_parallel,
enable_cdef, enable_global_motion, and intrabc.



Docs update missing.

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]download: Fix the release link

2019-03-29 Thread Michael Niedermayer
On Fri, Mar 29, 2019 at 01:16:41AM +0100, Carl Eugen Hoyos wrote:
> 2019-03-28 20:52 GMT+01:00, Michael Niedermayer :
> > On Thu, Mar 28, 2019 at 06:47:52PM +0100, Carl Eugen Hoyos wrote:
> >> 2019-03-28 18:31 GMT+01:00, Michael Niedermayer :
> >> > On Thu, Mar 28, 2019 at 12:00:39PM +0100, Carl Eugen Hoyos wrote:
> >>
> >> >> -  ffmpeg-4.1.2.tar.bz2
> >> >> +  ffmpeg-snapshot.tar.bz2
> >> >
> >> > Iam not sure if this is wise. This would increase the burden
> >> > for security fixes because now any fix to a bug in no release
> >> > can be ignored. But if distros would ship random master
> >> > checkouts everything even if its fixed an hour later could
> >> > be relevant to some distribution
> >>
> >> This link will not affect any distribution, only users who need a
> >> quick download (and report an issue afterwards).
> >
> > maybe there should be a button for downloading the latest release
> > and the latest snapshot side by side
> 
> > and certainly i see your point but users downloading the latest snapshot
> > still will not have the latest when they report a bug. So iam not
> > sure this would actually help. Many if not most people still would
> > have to go and re-download
> 
> After working on FFmpeg for some time I would say
> users who use a release very often miss that an issue
> was already fixed, users with a recent snapshots
> are less likely in this situation.
> 
> > also if release and snapshot differ much its probably time for a new
> > major release ...
> > not saying that makes your argument less relevant but more saying
> > that i think we should probably make a new major release ...
> 

> Given the number of open current regressions, I would
> prefer if we fixed at least some of them before
> making a release...

yes, i prefer that as well and bugs should be fixed independant of
there being a release ...
and i would suggest we consider setting up some bug bounties for these
151 ? regressions or a subset of them. This may help to draw more
interrest towards them ...


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

While the State exists there can be no freedom; when there is freedom there
will be no State. -- Vladimir Lenin


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

[FFmpeg-devel] [PATCH] Added more commandline options for libaom encoder.

2019-03-29 Thread Sam John via ffmpeg-devel
The following are the newly added options:
arnr_max_frames, arnr_strength, aq_mode, denoise_noise_level, 
denoise_block_size,
rc_undershoot_pct, rc_overshoot_pct, minsection_pct, maxsection_pct, 
frame_parallel,
enable_cdef, enable_global_motion, and intrabc.

Also added macros for compiling for aom 1.0.0 and fixed the default values.
---
 libavcodec/libaomenc.c | 97 --
 1 file changed, 93 insertions(+), 4 deletions(-)

diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c
index faec61cacd..6d2441b4ed 100644
--- a/libavcodec/libaomenc.c
+++ b/libavcodec/libaomenc.c
@@ -66,36 +66,69 @@ typedef struct AOMEncoderContext {
 struct FrameListData *coded_frame_list;
 int cpu_used;
 int auto_alt_ref;
+int arnr_max_frames;
+int arnr_strength;
+int aq_mode;
 int lag_in_frames;
 int error_resilient;
 int crf;
 int static_thresh;
 int drop_threshold;
+int denoise_noise_level;
+int denoise_block_size;
 uint64_t sse[4];
 int have_sse; /**< true if we have pending sse[] */
 uint64_t frame_number;
+int rc_undershoot_pct;
+int rc_overshoot_pct;
+int minsection_pct;
+int maxsection_pct;
+int frame_parallel;
 int tile_cols, tile_rows;
 int tile_cols_log2, tile_rows_log2;
 aom_superblock_size_t superblock_size;
 int uniform_tiles;
 int row_mt;
+int enable_cdef;
+int enable_global_motion;
+int enable_intrabc;
 } AOMContext;
 
 static const char *const ctlidstr[] = {
 [AOME_SET_CPUUSED]  = "AOME_SET_CPUUSED",
 [AOME_SET_CQ_LEVEL] = "AOME_SET_CQ_LEVEL",
 [AOME_SET_ENABLEAUTOALTREF] = "AOME_SET_ENABLEAUTOALTREF",
+[AOME_SET_ARNR_MAXFRAMES]   = "AOME_SET_ARNR_MAXFRAMES",
+[AOME_SET_ARNR_STRENGTH]= "AOME_SET_ARNR_STRENGTH",
 [AOME_SET_STATIC_THRESHOLD] = "AOME_SET_STATIC_THRESHOLD",
 [AV1E_SET_COLOR_RANGE]  = "AV1E_SET_COLOR_RANGE",
 [AV1E_SET_COLOR_PRIMARIES]  = "AV1E_SET_COLOR_PRIMARIES",
 [AV1E_SET_MATRIX_COEFFICIENTS] = "AV1E_SET_MATRIX_COEFFICIENTS",
 [AV1E_SET_TRANSFER_CHARACTERISTICS] = "AV1E_SET_TRANSFER_CHARACTERISTICS",
+[AV1E_SET_AQ_MODE]  = "AV1E_SET_AQ_MODE",
+[AV1E_SET_FRAME_PARALLEL_DECODING] = "AV1E_SET_FRAME_PARALLEL_DECODING",
 [AV1E_SET_SUPERBLOCK_SIZE]  = "AV1E_SET_SUPERBLOCK_SIZE",
 [AV1E_SET_TILE_COLUMNS] = "AV1E_SET_TILE_COLUMNS",
 [AV1E_SET_TILE_ROWS]= "AV1E_SET_TILE_ROWS",
 #ifdef AOM_CTRL_AV1E_SET_ROW_MT
 [AV1E_SET_ROW_MT]   = "AV1E_SET_ROW_MT",
 #endif
+#ifdef AV1E_SET_DENOISE_NOISE_LEVEL
+[AV1E_SET_DENOISE_NOISE_LEVEL] =  "AV1E_SET_DENOISE_NOISE_LEVEL",
+#endif
+#ifdef AV1E_SET_DENOISE_BLOCK_SIZE
+[AV1E_SET_DENOISE_BLOCK_SIZE] =   "AV1E_SET_DENOISE_BLOCK_SIZE",
+#endif
+#ifdef AV1E_SET_MAX_REFERENCE_FRAMES
+[AV1E_SET_MAX_REFERENCE_FRAMES] = "AV1E_SET_MAX_REFERENCE_FRAMES",
+#endif
+#ifdef AV1E_SET_ENABLE_GLOBAL_MOTION
+[AV1E_SET_ENABLE_GLOBAL_MOTION] = "AV1E_SET_ENABLE_GLOBAL_MOTION",
+#endif
+#ifdef AV1E_SET_ENABLE_INTRABC
+[AV1E_SET_ENABLE_INTRABC] = "AV1E_SET_ENABLE_INTRABC",
+#endif
+[AV1E_SET_ENABLE_CDEF]  = "AV1E_SET_ENABLE_CDEF",
 };
 
 static av_cold void log_encoder_error(AVCodecContext *avctx, const char *desc)
@@ -567,10 +600,14 @@ static av_cold int aom_init(AVCodecContext *avctx,
 
 // 0-100 (0 => CBR, 100 => VBR)
 enccfg.rc_2pass_vbr_bias_pct   = round(avctx->qcompress * 100);
-if (avctx->bit_rate)
+if (ctx->minsection_pct >= 0)
+enccfg.rc_2pass_vbr_minsection_pct = ctx->minsection_pct;
+else if (avctx->bit_rate)
 enccfg.rc_2pass_vbr_minsection_pct =
 avctx->rc_min_rate * 100LL / avctx->bit_rate;
-if (avctx->rc_max_rate)
+if (ctx->maxsection_pct >= 0)
+enccfg.rc_2pass_vbr_maxsection_pct = ctx->maxsection_pct;
+else if (avctx->rc_max_rate)
 enccfg.rc_2pass_vbr_maxsection_pct =
 avctx->rc_max_rate * 100LL / avctx->bit_rate;
 
@@ -582,6 +619,11 @@ static av_cold int aom_init(AVCodecContext *avctx,
 avctx->rc_initial_buffer_occupancy * 1000LL / avctx->bit_rate;
 enccfg.rc_buf_optimal_sz = enccfg.rc_buf_sz * 5 / 6;
 
+if (ctx->rc_undershoot_pct >= 0)
+enccfg.rc_undershoot_pct = ctx->rc_undershoot_pct;
+if (ctx->rc_overshoot_pct >= 0)
+enccfg.rc_overshoot_pct = ctx->rc_overshoot_pct;
+
 // _enc_init() will balk if kf_min_dist differs from max w/AOM_KF_AUTO
 if (avctx->keyint_min >= 0 && avctx->keyint_min == avctx->gop_size)
 enccfg.kf_min_dist = avctx->keyint_min;
@@ -643,7 +685,12 @@ static av_cold int aom_init(AVCodecContext *avctx,
 codecctl_int(avctx, AOME_SET_CPUUSED, ctx->cpu_used);
 if (ctx->auto_alt_ref >= 0)
 codecctl_int(avctx, AOME_SET_ENABLEAUTOALTREF, ctx->auto_alt_ref);
-
+if (ctx->arnr_max_frames >= 0)
+codecctl_int(avctx, AOME_SET_ARNR_MAXFRAMES,   ctx->arnr_max_frames);
+if (ctx->arnr_strength >= 

[FFmpeg-devel] patch for supporting m264 on h.264 decoding and encoding.

2019-03-29 Thread Yufei He
Hi

This is the fixed version of this patch that follows the way other 
companies do on supporting FFmpeg.

1>Put library mvm264 to the nonfree list in configure

2>Remove calling to dlopen

Please review.

Thanks.

Yufei


From 1a636c0aa2288731374a4a6139c385baad2a8e98 Mon Sep 17 00:00:00 2001
From: yhe 
Date: Fri, 29 Mar 2019 10:06:37 -0400
Subject: [PATCH] h.264 decoder and encoder support with M264

---
 Changelog  |   1 +
 configure  |   6 +
 libavcodec/Makefile|   2 +
 libavcodec/allcodecs.c |   2 +
 libavcodec/m264dec.c   | 304 +
 libavcodec/m264dec.h   |  40 +++
 libavcodec/m264enc.c   | 262 ++
 libavcodec/m264enc.h   |  38 +++
 8 files changed, 655 insertions(+)
 create mode 100644 libavcodec/m264dec.c
 create mode 100644 libavcodec/m264dec.h
 create mode 100644 libavcodec/m264enc.c
 create mode 100644 libavcodec/m264enc.h

diff --git a/Changelog b/Changelog
index 4d80e5b..ce0daf8 100644
--- a/Changelog
+++ b/Changelog
@@ -19,6 +19,7 @@ version :
 - ARBC decoder
 - libaribb24 based ARIB STD-B24 caption support (profiles A and C)
 - Support decoding of HEVC 4:4:4 content in nvdec and cuviddec
+- Support h.264 encoding and decoding with Matrox M264 card.
 
 
 version 4.1:
diff --git a/configure b/configure
index dcead3a..b579d10 100755
--- a/configure
+++ b/configure
@@ -302,6 +302,7 @@ External library support:
   --enable-mbedtls enable mbedTLS, needed for https support
if openssl, gnutls or libtls is not used [no]
   --enable-mediacodec  enable Android MediaCodec support [no]
+  --enable-mvm264  enable Matrox M264 H.264 support [no]
   --enable-libmysofa   enable libmysofa, needed for sofalizer filter [no]
   --enable-openal  enable OpenAL 1.1 capture support [no]
   --enable-opencl  enable OpenCL processing [no]
@@ -1717,6 +1718,7 @@ EXTERNAL_LIBRARY_NONFREE_LIST="
 libfdk_aac
 openssl
 libtls
+mvm264
 "
 
 EXTERNAL_LIBRARY_VERSION3_LIST="
@@ -2697,6 +2699,8 @@ h263p_decoder_select="h263_decoder"
 h263p_encoder_select="h263_encoder"
 h264_decoder_select="cabac golomb h264chroma h264dsp h264parse h264pred h264qpel videodsp"
 h264_decoder_suggest="error_resilience"
+h264_m264_decoder_deps="mvm264"
+h264_m264_encoder_deps="mvm264"
 hap_decoder_select="snappy texturedsp"
 hap_encoder_deps="libsnappy"
 hap_encoder_select="texturedspenc"
@@ -2753,6 +2757,7 @@ msmpeg4v3_decoder_select="h263_decoder"
 msmpeg4v3_encoder_select="h263_encoder"
 mss2_decoder_select="mpegvideo qpeldsp vc1_decoder"
 mts2_decoder_select="mss34dsp"
+mvm264_deps_any="libdl LoadLibrary"
 mwsc_decoder_deps="zlib"
 mxpeg_decoder_select="mjpeg_decoder"
 nellymoser_decoder_select="mdct sinewin"
@@ -6277,6 +6282,7 @@ enabled mmal  && { check_lib mmal interface/mmal/mmal.h mmal_port_co
  check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host; } ||
die "ERROR: mmal not found" &&
check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"; }
+enabled mvm264&& require_headers mvm264api.h 
 enabled openal&& { { for al_extralibs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do
check_lib openal 'AL/al.h' alGetError "${al_extralibs}" && break; done } ||
die "ERROR: openal not found"; } &&
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 15c43a8..8e8f9ab 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -348,6 +348,8 @@ OBJS-$(CONFIG_H264_DECODER)+= h264dec.o h264_cabac.o h264_cavlc.o \
   h264_slice.o h264data.o
 OBJS-$(CONFIG_H264_AMF_ENCODER)+= amfenc_h264.o
 OBJS-$(CONFIG_H264_CUVID_DECODER)  += cuviddec.o
+OBJS-$(CONFIG_H264_M264_DECODER)   += m264dec.o
+OBJS-$(CONFIG_H264_M264_ENCODER)   += m264enc.o
 OBJS-$(CONFIG_H264_MEDIACODEC_DECODER) += mediacodecdec.o
 OBJS-$(CONFIG_H264_MMAL_DECODER)   += mmaldec.o
 OBJS-$(CONFIG_H264_NVENC_ENCODER)  += nvenc_h264.o
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index b26aeca..c03a5a3 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -737,6 +737,8 @@ extern AVCodec ff_libopenh264_encoder;
 extern AVCodec ff_libopenh264_decoder;
 extern AVCodec ff_h264_amf_encoder;
 extern AVCodec ff_h264_cuvid_decoder;
+extern AVCodec ff_h264_m264_decoder;
+extern AVCodec ff_h264_m264_encoder;
 extern AVCodec ff_h264_nvenc_encoder;
 extern AVCodec ff_h264_omx_encoder;
 extern AVCodec ff_h264_qsv_encoder;
diff --git a/libavcodec/m264dec.c b/libavcodec/m264dec.c
new file mode 100644
index 000..cb58bad
--- /dev/null
+++ b/libavcodec/m264dec.c
@@ -0,0 +1,304 @@
+/*
+ * M264 H.264 video decoder
+ *
+ * This file 

Re: [FFmpeg-devel] [PATCH] avformat/mxfenc: support XAVC long gop

2019-03-29 Thread Baptiste Coudurier
Hey Tomas, I hope you are doing well

> On Mar 29, 2019, at 2:41 AM, Tomas Härdin  wrote:
> 
> tor 2019-03-28 klockan 08:50 -0700 skrev Baptiste Coudurier:
>> ---
>>  libavformat/mxf.h|   1 +
>>  libavformat/mxfenc.c | 194 ---
>>  2 files changed, 145 insertions(+), 50 deletions(-)
>> 
>> diff --git a/libavformat/mxf.h b/libavformat/mxf.h
>> index 4394450dea..f32124f772 100644
>> --- a/libavformat/mxf.h
>> +++ b/libavformat/mxf.h
>> @@ -1317,6 +1330,13 @@ static int64_t mxf_write_cdci_common(AVFormatContext 
>> *s, AVStream *st, const UID
>>  avio_w8(pb, sc->field_dominance);
>>  }
>> 
>> +if (st->codecpar->codec_id == AV_CODEC_ID_H264 && !sc->avc_intra) {
>> +// write avc sub descriptor ref
>> +mxf_write_local_tag(pb, 8 + 16, 0x8100);
>> +mxf_write_refs_count(pb, 1);
>> +mxf_write_uuid(pb, AVCSubDescriptor, 0);
>> +}
> 
> Should this always be written for long gop AVC? Not just XAVC? Same
> goes for mxf_write_avc_subdesc() I think, unless I'm reading this 
> incorrectly..

The code will write always write it for AV_CODEC_ID_H264 except if it is 
avc_intra (it uses the legacy mpegvideo desc),
so it will always be written for long gop as well. There is no check for XAVC 
technically.

>>  static void mxf_write_s436m_anc_desc(AVFormatContext *s, AVStream *st)
>> @@ -2136,30 +2196,30 @@ static const struct {
>>  int frame_size;
>>  int profile;
>>  uint8_t interlaced;
>> -int long_gop; // 1 or 0 when there are separate UIDs for Long GOP and 
>> Intra, -1 when Intra/LGOP detection can be ignored
>> +int intra_only; // 1 or 0 when there are separate UIDs for Long GOP and 
>> Intra, -1 when Intra/LGOP detection can be ignored
> 
> Any particular reason for inverting this logic? Leaving it as is would
> make the patch smaller..
> 
> /Tomas

Checking long gop looks weird to me since the specs don’t make that 
distinction, they do however make the explicit distinction for intra only
profile, so it feels more intuitive to mark them intra only. No strong opinion 
though.

Thanks a lot!

—
Baptiste Coudurier


signature.asc
Description: Message signed with OpenPGP
___
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] This patch addresses Trac ticket #5570. The optimized functions are in file libswscale/ppc/input_vsx.c. Each optimized function name is a concatenation of the corresponding

2019-03-29 Thread Lauri Kasanen
On Fri, 29 Mar 2019 17:00:38 +0300
Вячеслав  wrote:

> ---
>  libswscale/ppc/Makefile   |3 +-
>  libswscale/ppc/input_vsx.c| 3801 
> +
>  libswscale/swscale.c  |3 +
>  libswscale/swscale_internal.h |1 +
>  4 files changed, 3807 insertions(+), 1 deletion(-)
>  create mode 100644 libswscale/ppc/input_vsx.c

Please include performance benchmarks for each function. The
description should go in the patch main part, not in the title.

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

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

[FFmpeg-devel] [PATCH V1] lavf/hashenc: Correct the hash/MD5 muxer class name

2019-03-29 Thread Jun Zhao
From: Jun Zhao 

Follow the name style to correct the hash/md5 muxer class name

Signed-off-by: Jun Zhao 
---
 libavformat/hashenc.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavformat/hashenc.c b/libavformat/hashenc.c
index a66db4a..06fc085 100644
--- a/libavformat/hashenc.c
+++ b/libavformat/hashenc.c
@@ -88,7 +88,7 @@ static int hash_write_trailer(struct AVFormatContext *s)
 
 #if CONFIG_HASH_MUXER
 static const AVClass hashenc_class = {
-.class_name = "hash encoder class",
+.class_name = "hash muxer",
 .item_name  = av_default_item_name,
 .option = hash_options,
 .version= LIBAVUTIL_VERSION_INT,
@@ -111,7 +111,7 @@ AVOutputFormat ff_hash_muxer = {
 
 #if CONFIG_MD5_MUXER
 static const AVClass md5enc_class = {
-.class_name = "MD5 encoder class",
+.class_name = "MD5 muxer",
 .item_name  = av_default_item_name,
 .option = md5_options,
 .version= LIBAVUTIL_VERSION_INT,
@@ -217,7 +217,7 @@ static int framehash_write_trailer(struct AVFormatContext 
*s)
 
 #if CONFIG_FRAMEHASH_MUXER
 static const AVClass framehash_class = {
-.class_name = "frame hash encoder class",
+.class_name = "frame hash muxer",
 .item_name  = av_default_item_name,
 .option = hash_options,
 .version= LIBAVUTIL_VERSION_INT,
@@ -240,7 +240,7 @@ AVOutputFormat ff_framehash_muxer = {
 
 #if CONFIG_FRAMEMD5_MUXER
 static const AVClass framemd5_class = {
-.class_name = "frame hash encoder class",
+.class_name = "frame MD5 muxer",
 .item_name  = av_default_item_name,
 .option = md5_options,
 .version= LIBAVUTIL_VERSION_INT,
-- 
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 v10 1/2] lavc/svt_hevc: add libsvt hevc encoder wrapper

2019-03-29 Thread Vittorio Giovara
On Fri, Mar 29, 2019 at 5:28 AM Jing Sun  wrote:

> +static int config_enc_params(EB_H265_ENC_CONFIGURATION *param,
> + AVCodecContext *avctx)
> +{
> +SvtContext *svt_enc = avctx->priv_data;
> +int ret;
> +
> +param->sourceWidth = avctx->width;
> +param->sourceHeight = avctx->height;
> +param->encoderBitDepth = 8;
> +
> +if (avctx->pix_fmt == AV_PIX_FMT_YUV420P10LE) {
> +av_log(avctx, AV_LOG_DEBUG, "Encoder 10 bits depth input\n");
> +
> +param->encoderBitDepth = 10;
> +}
> +param->encoderColorFormat = EB_YUV420;
>
>
this patch blatantly ignores my review(s) and therefore it is rejected

to reiterate:
- if the encoder does not support 10 bit (or if scales down from 10 to 8
internally), this feature should not be present in the wrapper either (or
it should at least warn the user)
- if the encoder does not support setting the color properties in the VUI,
the wrapper should definitely warn the user of the loss of information (or
we should wait until this features is present upstream)

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

Re: [FFmpeg-devel] [PATCH] Fix loss of precision for silencedetect on large files

2019-03-29 Thread Allan Cady via ffmpeg-devel
Gck! Sorry guys about the formatting. Yahoo Mail sucks for anything 
slightly out of the norm...

Let's try this again... if it doesn't work better, not sure what to do:
On Wednesday, March 27, 2019, 11:19:23 AM PDT, Michael Niedermayer 
 wrote: > this breaks make fate> > also if fate is 
updated it should be ensured it still checks enough precission> and that it 
does produce the same results (fate passes) on all relevant> platforms. This 
change may bring non significant differences into significance> > thanks
OK so I spent some more time familiarizing myself with the code and tests, and 
it's clear that making the change the way I did would probably break dozens of 
tests, because the function I changed, av_ts_make_time_string, is referenced 
(by its convenience macro av_ts2timestr) in many files (I count 21) and dozens 
of lines of code, in libavfilter, fftools, and libavformat.
As an alternative, I tried making a modified & renamed copy of 
av_ts_make_time_string/av_ts2timestr, and referencing that copy in 
af_silencedetect.c, leaving other references to the original function 
unchanged. In this case, FATE fails just a single test, 
filter-metadata-silencedetect. I then modified the reference output file 
(tests/ref/fate/filter-metadata-silencedetect) to match the changed output, and 
all tests then pass.
In looking at other uses of av_ts2timestr, it's clear av_ts2timestr was 
intended for general purpose use.
So at this point I could use some guidance from the wizards as to the best way 
to proceed. Not knowing any of the history or thinking that went into the 
design, I don't know if it makes the best sense to use the "%.6g" format for 
all those other timestamps, but I feel strongly that it's a poor choice for 
silencedetect (and probably other *detect filters), for the reason I explained 
originally. Is there possibly another way to get the result I want without 
modifying the code? I can imagine maybe a format specifier as a filter 
parameter -- is there any precedent for this?
Open to suggestions. Thanks all.
Allan
___
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] Fix loss of precision for silencedetecton large files

2019-03-29 Thread Allan Cady via ffmpeg-devel
  On Wednesday, March 27, 2019, 11:19:23 AM PDT, Michael Niedermayer 
 wrote: > this breaks make fate> > also if fate is 
updated it should be ensured it still checks enough precission> and that it 
does produce the same results (fate passes) on all relevant> platforms. This 
change may bring non significant differences into significance> > thanks
OK so I spent some more time familiarizing myself with the code and tests, and 
it's clear that making the change the way I did would probably break dozens of 
tests, because the function I changed, av_ts_make_time_string, is referenced 
(by its convenience macro av_ts2timestr) in many files (I count 21) and dozens 
of lines of code, in libavfilter, fftools, and libavformat.
As an alternative, I tried making a modified & renamed copy of 
av_ts_make_time_string/av_ts2timestr, and referencing that copy in 
af_silencedetect.c, leaving other references to the original function 
unchanged. In this case, FATE fails just a single test, 
filter-metadata-silencedetect. I then modified the reference output file 
(tests/ref/fate/filter-metadata-silencedetect) to match the changed output, and 
all tests then pass.
So at this point I could use some guidance from the wizards as to the best way 
to proceed. Not knowing any of the history or thinking that went into the 
design, I don't know if it makes the best sense to use the "%.6g" format for 
all those other timestamps, but I feel strongly that it's a poor choice for 
silencedetect (and probably other *detect filters), for the reason I explained 
originally. Is there possibly another way to get the result I want without 
modifying the code? Or I can imagine maybe a format specifier as a filter 
parameter -- is there any precedent for this?

Open to suggestions. Thanks all.
Allan
  
___
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 v10 1/2] lavc/svt_hevc: add libsvt hevc encoder wrapper

2019-03-29 Thread Li, Zhong
> From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf
> Of Jing Sun
> Sent: Friday, March 29, 2019 4:22 PM
> To: ffmpeg-devel@ffmpeg.org
> Cc: Sun, Jing A ; Huang, Zhengxu
> ; Jun Zhao ; Tmar,
> Hassene 
> Subject: [FFmpeg-devel] [PATCH v10 1/2] lavc/svt_hevc: add libsvt hevc
> encoder wrapper
> 
> Signed-off-by: Zhengxu Huang 
> Signed-off-by: Hassene Tmar 
> Signed-off-by: Jun Zhao 
> Signed-off-by: Jing Sun 
> ---
>  configure|   4 +
>  libavcodec/Makefile  |   1 +
>  libavcodec/allcodecs.c   |   1 +
>  libavcodec/libsvt_hevc.c | 500
> +++
>  4 files changed, 506 insertions(+)
>  create mode 100644 libavcodec/libsvt_hevc.c
> 
> diff --git a/configure b/configure
> index 938ff10..2aabac4 100755
> --- a/configure
> +++ b/configure
> @@ -264,6 +264,7 @@ External library support:
>--enable-libspeexenable Speex de/encoding via libspeex [no]
>--enable-libsrt  enable Haivision SRT protocol via libsrt [no]
>--enable-libssh  enable SFTP protocol via libssh [no]
> +  --enable-libsvthevc  enable HEVC encoding via svt [no]
>--enable-libtensorflow   enable TensorFlow as a DNN module backend
> for DNN based filters like sr [no]
>--enable-libtesseractenable Tesseract, needed for ocr filter [no]
> @@ -1784,6 +1785,7 @@ EXTERNAL_LIBRARY_LIST="
>  libspeex
>  libsrt
>  libssh
> +libsvthevc
>  libtensorflow
>  libtesseract
>  libtheora
> @@ -3173,6 +3175,7 @@ libshine_encoder_select="audio_frame_queue"
>  libspeex_decoder_deps="libspeex"
>  libspeex_encoder_deps="libspeex"
>  libspeex_encoder_select="audio_frame_queue"
> +libsvt_hevc_encoder_deps="libsvthevc"
>  libtheora_encoder_deps="libtheora"
>  libtwolame_encoder_deps="libtwolame"
>  libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
> @@ -6209,6 +6212,7 @@ enabled libsoxr   && require libsoxr
> soxr.h soxr_create -lsoxr
>  enabled libssh&& require_pkg_config libssh libssh
> libssh/sftp.h sftp_init
>  enabled libspeex  && require_pkg_config libspeex speex
> speex/speex.h speex_decoder_init
>  enabled libsrt&& require_pkg_config libsrt "srt >= 1.3.0"
> srt/srt.h srt_socket
> +enabled libsvthevc&& require_pkg_config libsvthevc SvtHevcEnc
> EbApi.h EbInitHandle
>  enabled libtensorflow && require libtensorflow tensorflow/c/c_api.h
> TF_Version -ltensorflow
>  enabled libtesseract  && require_pkg_config libtesseract tesseract
> tesseract/capi.h TessBaseAPICreate
>  enabled libtheora && require libtheora theora/theoraenc.h
> th_info_init -ltheoraenc -ltheoradec -logg
> diff --git a/libavcodec/Makefile b/libavcodec/Makefile index
> 15c43a8..c93e545 100644
> --- a/libavcodec/Makefile
> +++ b/libavcodec/Makefile
> @@ -987,6 +987,7 @@ OBJS-$(CONFIG_LIBOPUS_ENCODER)
> += libopusenc.o libopus.o \
>  OBJS-$(CONFIG_LIBSHINE_ENCODER)   += libshine.o
>  OBJS-$(CONFIG_LIBSPEEX_DECODER)   += libspeexdec.o
>  OBJS-$(CONFIG_LIBSPEEX_ENCODER)   += libspeexenc.o
> +OBJS-$(CONFIG_LIBSVT_HEVC_ENCODER)+= libsvt_hevc.o
>  OBJS-$(CONFIG_LIBTHEORA_ENCODER)  += libtheoraenc.o
>  OBJS-$(CONFIG_LIBTWOLAME_ENCODER) += libtwolame.o
>  OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) +=
> libvo-amrwbenc.o
> diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c index
> b26aeca..e93f66f 100644
> --- a/libavcodec/allcodecs.c
> +++ b/libavcodec/allcodecs.c
> @@ -703,6 +703,7 @@ extern AVCodec ff_librsvg_decoder;  extern
> AVCodec ff_libshine_encoder;  extern AVCodec ff_libspeex_encoder;
> extern AVCodec ff_libspeex_decoder;
> +extern AVCodec ff_libsvt_hevc_encoder;
>  extern AVCodec ff_libtheora_encoder;
>  extern AVCodec ff_libtwolame_encoder;
>  extern AVCodec ff_libvo_amrwbenc_encoder; diff --git
> a/libavcodec/libsvt_hevc.c b/libavcodec/libsvt_hevc.c new file mode 100644
> index 000..4ef06a8
> --- /dev/null
> +++ b/libavcodec/libsvt_hevc.c
> @@ -0,0 +1,500 @@
> +/*
> +* Scalable Video Technology for HEVC encoder library plugin
> +*
> +* Copyright (c) 2018 Intel Corporation

It is 2019 now.

> +* This file is part of FFmpeg.
> +*
> +* FFmpeg is free software; you can redistribute it and/or
> +* modify it under the terms of the GNU Lesser General Public
> +* License as published by the Free Software Foundation; either
> +* version 2.1 of the License, or (at your option) any later version.
> +*
> +* FFmpeg is distributed in the hope that it will be useful,
> +* but WITHOUT ANY WARRANTY; without even the implied warranty of
> +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> GNU
> +* Lesser General Public License for more details.
> +*
> +* You should have received a copy of the GNU Lesser General Public
> +* License along with this program; if not, write to the Free Software
> +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> +02110-1301 USA */
> +
> +#include 

Re: [FFmpeg-devel] [PATCH] Fixed corrupt segment video files when using hls_init_time option.

2019-03-29 Thread Moritz Barsnick
On Thu, Mar 28, 2019 at 16:48:51 -0700, Laszlo Kovacs wrote:
> (P.S. I hope this text will be the body and not the subject :) )
> ---
>  libavformat/hlsenc.c | 5 +++--

This time, the text is in the correct position. ;-) (Yes, you need an
empty line between what lands in the subject and what lands in the
body.

But your P.S. remark belongs below the "---" line, and not into the
commit message.

Cheers,
Moritz
___
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-03-29 Thread Tomas Härdin
tor 2019-03-28 klockan 08:50 -0700 skrev Baptiste Coudurier:
> ---
>  libavformat/mxf.h|   1 +
>  libavformat/mxfenc.c | 194 ---
>  2 files changed, 145 insertions(+), 50 deletions(-)
> 
> diff --git a/libavformat/mxf.h b/libavformat/mxf.h
> index 4394450dea..f32124f772 100644
> --- a/libavformat/mxf.h
> +++ b/libavformat/mxf.h
> @@ -1317,6 +1330,13 @@ static int64_t mxf_write_cdci_common(AVFormatContext 
> *s, AVStream *st, const UID
>  avio_w8(pb, sc->field_dominance);
>  }
>  
> +if (st->codecpar->codec_id == AV_CODEC_ID_H264 && !sc->avc_intra) {
> +// write avc sub descriptor ref
> +mxf_write_local_tag(pb, 8 + 16, 0x8100);
> +mxf_write_refs_count(pb, 1);
> +mxf_write_uuid(pb, AVCSubDescriptor, 0);
> +}

Should this always be written for long gop AVC? Not just XAVC? Same
goes for mxf_write_avc_subdesc() I think, unless I'm reading this incorrectly..

>  static void mxf_write_s436m_anc_desc(AVFormatContext *s, AVStream *st)
> @@ -2136,30 +2196,30 @@ static const struct {
>  int frame_size;
>  int profile;
>  uint8_t interlaced;
> -int long_gop; // 1 or 0 when there are separate UIDs for Long GOP and 
> Intra, -1 when Intra/LGOP detection can be ignored
> +int intra_only; // 1 or 0 when there are separate UIDs for Long GOP and 
> Intra, -1 when Intra/LGOP detection can be ignored

Any particular reason for inverting this logic? Leaving it as is would
make the patch smaller..

/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 v9 1/2] lavc/svt_hevc: add libsvt hevc encoder wrapper

2019-03-29 Thread Sun, Jing A
On Thursday, March 28, 2019 5:20 AM, Mark Thompson wrote:

>Looking at what the highDynamicRangeInput field actually does 
>,
> I don't think it makes sense for this external "hdr" option at exist at all.

>From the point of view of a user looking at the external options, they might 
>expect that on setting this option some conversion takes place to actually 
>create an HDR output.  In fact, that's not what it does - it just marks the 
>output with some very specific colour properties, and any stream which doesn't 
>actually have exactly those properties will then have incorrect metadata for 
>display (possibly conflicting with container metadata, if the container has 
>better support for colour properties than this encoder).

>Perhaps to avoid confusion about what is actually happening the option could 
>be removed and this check replaced with something like:

>if (avctx->colorspace == AVCOL_SPC_BT2020_NCL &&
>avctx->color_primaries == AVCOL_PRI_BT2020 &&
>avctx->color_trc == AVCOL_TRC_SMPTE2084 &&
>avctx->color_range == AVCOL_RANGE_MPEG &&
>avctx->chroma_sample_location == AVCHROMA_LOC_TOPLEFT) {
>param->highDynamicRangeInput = 1;
>} else {
>param->highDynamicRangeInput = 0;
>// Maybe also a warning here in some cases?
>}

>- Mark

Since SVT-HEVC's HDR is not ready, I just removed the interface and I will add 
it back when it's fully supported with color properties preserving. Please 
review v10 and thanks a lot.

- Jing

___
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 v10 1/2] lavc/svt_hevc: add libsvt hevc encoder wrapper

2019-03-29 Thread Jing Sun
Signed-off-by: Zhengxu Huang 
Signed-off-by: Hassene Tmar 
Signed-off-by: Jun Zhao 
Signed-off-by: Jing Sun 
---
 configure|   4 +
 libavcodec/Makefile  |   1 +
 libavcodec/allcodecs.c   |   1 +
 libavcodec/libsvt_hevc.c | 482 +++
 4 files changed, 488 insertions(+)
 create mode 100644 libavcodec/libsvt_hevc.c

diff --git a/configure b/configure
index 938ff10..2aabac4 100755
--- a/configure
+++ b/configure
@@ -264,6 +264,7 @@ External library support:
   --enable-libspeexenable Speex de/encoding via libspeex [no]
   --enable-libsrt  enable Haivision SRT protocol via libsrt [no]
   --enable-libssh  enable SFTP protocol via libssh [no]
+  --enable-libsvthevc  enable HEVC encoding via svt [no]
   --enable-libtensorflow   enable TensorFlow as a DNN module backend
for DNN based filters like sr [no]
   --enable-libtesseractenable Tesseract, needed for ocr filter [no]
@@ -1784,6 +1785,7 @@ EXTERNAL_LIBRARY_LIST="
 libspeex
 libsrt
 libssh
+libsvthevc
 libtensorflow
 libtesseract
 libtheora
@@ -3173,6 +3175,7 @@ libshine_encoder_select="audio_frame_queue"
 libspeex_decoder_deps="libspeex"
 libspeex_encoder_deps="libspeex"
 libspeex_encoder_select="audio_frame_queue"
+libsvt_hevc_encoder_deps="libsvthevc"
 libtheora_encoder_deps="libtheora"
 libtwolame_encoder_deps="libtwolame"
 libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
@@ -6209,6 +6212,7 @@ enabled libsoxr   && require libsoxr soxr.h 
soxr_create -lsoxr
 enabled libssh&& require_pkg_config libssh libssh libssh/sftp.h 
sftp_init
 enabled libspeex  && require_pkg_config libspeex speex speex/speex.h 
speex_decoder_init
 enabled libsrt&& require_pkg_config libsrt "srt >= 1.3.0" 
srt/srt.h srt_socket
+enabled libsvthevc&& require_pkg_config libsvthevc SvtHevcEnc EbApi.h 
EbInitHandle
 enabled libtensorflow && require libtensorflow tensorflow/c/c_api.h 
TF_Version -ltensorflow
 enabled libtesseract  && require_pkg_config libtesseract tesseract 
tesseract/capi.h TessBaseAPICreate
 enabled libtheora && require libtheora theora/theoraenc.h th_info_init 
-ltheoraenc -ltheoradec -logg
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 15c43a8..c93e545 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -987,6 +987,7 @@ OBJS-$(CONFIG_LIBOPUS_ENCODER)+= libopusenc.o 
libopus.o \
 OBJS-$(CONFIG_LIBSHINE_ENCODER)   += libshine.o
 OBJS-$(CONFIG_LIBSPEEX_DECODER)   += libspeexdec.o
 OBJS-$(CONFIG_LIBSPEEX_ENCODER)   += libspeexenc.o
+OBJS-$(CONFIG_LIBSVT_HEVC_ENCODER)+= libsvt_hevc.o
 OBJS-$(CONFIG_LIBTHEORA_ENCODER)  += libtheoraenc.o
 OBJS-$(CONFIG_LIBTWOLAME_ENCODER) += libtwolame.o
 OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) += libvo-amrwbenc.o
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index b26aeca..e93f66f 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -703,6 +703,7 @@ extern AVCodec ff_librsvg_decoder;
 extern AVCodec ff_libshine_encoder;
 extern AVCodec ff_libspeex_encoder;
 extern AVCodec ff_libspeex_decoder;
+extern AVCodec ff_libsvt_hevc_encoder;
 extern AVCodec ff_libtheora_encoder;
 extern AVCodec ff_libtwolame_encoder;
 extern AVCodec ff_libvo_amrwbenc_encoder;
diff --git a/libavcodec/libsvt_hevc.c b/libavcodec/libsvt_hevc.c
new file mode 100644
index 000..59c6758
--- /dev/null
+++ b/libavcodec/libsvt_hevc.c
@@ -0,0 +1,482 @@
+/*
+* Scalable Video Technology for HEVC encoder library plugin
+*
+* Copyright (c) 2018 Intel Corporation
+*
+* This file is part of FFmpeg.
+*
+* FFmpeg is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* FFmpeg is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include "EbErrorCodes.h"
+#include "EbTime.h"
+#include "EbApi.h"
+
+#include "libavutil/common.h"
+#include "libavutil/frame.h"
+#include "libavutil/opt.h"
+
+#include "internal.h"
+#include "avcodec.h"
+
+typedef enum eos_status {
+EOS_NOT_REACHED = 0,
+EOS_REACHED,
+EOS_TOTRIGGER
+}EOS_STATUS;
+
+typedef struct SvtContext {
+AVClass *class;
+
+EB_H265_ENC_CONFIGURATION enc_params;
+EB_COMPONENTTYPE *svt_handle;
+EB_BUFFERHEADERTYPE in_buf;
+EOS_STATUS eos_flag;
+
+// User options.
+int 

[FFmpeg-devel] [PATCH v10 2/2] doc: Add libsvt_hevc encoder docs

2019-03-29 Thread Jing Sun
Add docs for libsvt_hevc encoder in encoders.texi and general.texi

Signed-off-by: Jun Zhao 
Signed-off-by: Zhengxu Huang 
Signed-off-by: Hassene Tmar 
Signed-off-by: Jing Sun 
---
 doc/encoders.texi | 141 ++
 doc/general.texi  |   8 
 2 files changed, 149 insertions(+)

diff --git a/doc/encoders.texi b/doc/encoders.texi
index 94337d0..7dfb2a0 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -1569,6 +1569,147 @@ Set maximum NAL size in bytes.
 Allow skipping frames to hit the target bitrate if set to 1.
 @end table
 
+@section libsvt_hevc
+
+Scalable Video Technology for HEVC (SVT-HEVC) encoder wrapper.
+
+This encoder requires the presence of the headers and
+library during configuration. You need to explicitly configure the
+build with @code{--enable-libsvthevc}. The library is detected using
+@command{pkg-config}.
+
+For more information about the library see
+@url{https://github.com/intel/SVT-HEVC.git}.
+
+@subsection Options
+
+The following FFmpeg global options affect the configurations of the
+libsvt_hevc encoder:
+
+@table @option
+@item b  (@emph{bitrate})
+Set the bitrate (as a number of bits per second). Default is 7M.
+
+@item g  / @option{gop_size}
+Set the GOP size. Default is -2 (unspecified).
+
+@item flags +cgop
+Enable closed GOP.
+
+@item qmin (@emph{min-q})
+Default is 10
+
+@item qmax (@emph{max-q})
+Default is 48
+
+Set minimum/maximum quantisation values.  Valid range is from 0 to 51
+(Only used when bit rate control mode @option{rc} is set to 1(vbr) mode.
+It is required that qmax >= qmin).
+
+@item profile (@emph{profile})
+Set profile restrictions. Can assume one of the following possible values:
+
+@table @samp
+@item main
+main profile
+@item main10
+main10 profile
+@end table
+
+Default is 2 (main10).
+
+@item level (@emph{level})
+
+@option{level} sets the value of @emph{level}.
+Set level (level_idc). Default is 0 (to be determined by the encoder).
+
+@end table
+
+The encoder also has its own specific options:
+
+@table @option
+@item aud (@emph{aud})
+Enable use of access unit delimiters when set to 1. Default is 0 (Off).
+
+@item hielevel
+Set hierarchical levels. Can assume one of the following possible values:
+
+@table @samp
+@item flat
+none hierarchy level
+@item 2level
+2-level hierarchy
+@item 3level
+3-level hierarchy
+@item 4level
+4-level hierarchy
+@end table
+
+Default is 3.
+
+@item la_depth
+Set look-ahead depth, depending on @option{rc}: for @var{vbr}, it's recommended
+to unset it and use the default value (the intra period); for @var{cqp}, better
+specify the look-ahead depth.
+
+The range is @var{-1-256}. Default is -1 (unset and the default value to be 
used).
+
+@item preset
+Set the quality vs density tradeoff point at which the encoding is to be 
performed.
+Higher perset value, higher density and lower quality.
+
+The range is @var{0-12}. Default is 9.
+
+@item tier
+Set @emph{general_tier_flag}.  This may affect the level chosen for the stream
+if it is not explicitly specified. Can assume one of the following possible 
values:
+
+@table @samp
+@item main
+main tier
+@item high
+high tier
+@end table
+
+Default is 1 (main).
+
+@item rc
+Set bit rate control mode. Can assume one of the following possible values:
+
+@table @samp
+@item cqp
+Constant QP (CQP) mode
+@item vbr
+Variable Bit Rate (VBR) mode
+@end table
+
+Default is 0 (cqp).
+
+@item qp
+Initial quantization parameter for the intra pictures used when
+@option{rc} is cqp mode. The range is from @var{0-51}. Default is 32.
+
+@item sc_detection
+Enables or disables the scene change detection algorithm. Default is 0 
(disabled).
+
+@item tune
+Set quality tuning mode. Can assume one of the following possible values:
+
+@table @samp
+@item sq
+Visually optimized mode
+@item oq
+PSNR / SSIM optimized mode
+@item vmaf
+VMAF optimized mode
+@end table
+
+Default is 1 (oq).
+
+@item bl_mode
+Enables or disables Random Access Prediction. Default is 0 (disabled).
+@end table
+
 @section libtheora
 
 libtheora Theora encoder wrapper.
diff --git a/doc/general.texi b/doc/general.texi
index fe94c40..f90e188 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -234,6 +234,14 @@ FFmpeg can use the OpenJPEG libraries for 
decoding/encoding J2K videos.  Go to
 instructions.  To enable using OpenJPEG in FFmpeg, pass 
@code{--enable-libopenjpeg} to
 @file{./configure}.
 
+@section Scalable Video Technology for HEVC
+
+FFmpeg can make use of the SVT-HEVC library for HEVC encoding.
+
+Go to @url{https://github.com/intel/SVT-HEVC.git} and follow the instructions
+for installing the library. Pass @code{--enable-libsvthevc} to configure to
+enable it.
+
 @section TwoLAME
 
 FFmpeg can make use of the TwoLAME library for MP2 encoding.
-- 
1.8.3.1

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

To unsubscribe, visit link above, or email

Re: [FFmpeg-devel] [PATCH 2/2] avcodec/tiff: Multi-page support

2019-03-29 Thread Nick Renieris
Στις Παρ, 29 Μαρ 2019 στις 11:05 π.μ., ο/η Paul B Mahol
 έγραψε:
> You should also check max number of available pages.
> And issue warning if user requested more than available and than provide some
> page.

Yeah, I _would_ have done that, but the images I've seen don't
actually contain the max number of pages in PageNumber[1].
Instead, they seem to contain PageNumber[0] + 1.
Here's an example from the file I sent (generated with IrfanView):
https://i.imgur.com/CEWADrD.png
The PageNumber tag from the last IFD couldn't fit in the screenshot,
it's PageNumber[0] = 2 and PageNumber[1] = 3.
___
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] avcodec/tiff: Multi-page support

2019-03-29 Thread Paul B Mahol
On 3/29/19, Nick Renieris  wrote:
> Huh? No I fixed that, it's AV_OPT_TYPE_INT now.
> See the second email in this list (first was the initial patch, then
> the corrected patch).
>

You should also check max number of available pages.
And issue warning if user requested more than available and than provide some
page.

> Στις Παρ, 29 Μαρ 2019 στις 12:51 π.μ., ο/η Paul B Mahol
>  έγραψε:
>>
>> On 3/28/19, Nick Renieris  wrote:
>> > Ok, here's a multipage tif with 3 pages, the two first are blue and
>> > the last one red:
>> > https://0x0.st/zKdB.tif
>> >
>>
>> Patch contains UINT16 opt and as is can not be applied.
>> Please fix that.
>>
>> > Στις Πέμ, 28 Μαρ 2019 στις 4:35 μ.μ., ο/η Paul B Mahol
>> >  έγραψε:
>> >>
>> >> On 3/28/19, Nick Renieris  wrote:
>> >> > When I made the patch I did ask you on IRC whether I should upload
>> >> > something and got no answer.
>> >> >
>> >>
>> >> Please upload it, somewhere like https://0x0.st/
>> >>
>> >> > Στις Πέμ, 28 Μαρ 2019 στις 2:58 μ.μ., ο/η Nick Renieris
>> >> >  έγραψε:
>> >> >>
>> >> >> I haven't, is there a specific place that it's preferred I upload it
>> >> >> to?
>> >> >>
>> >> >> Στις Πέμ, 28 Μαρ 2019 στις 1:12 μ.μ., ο/η Paul B Mahol
>> >> >>  έγραψε:
>> >> >> >
>> >> >> > On 3/28/19, Nick Renieris  wrote:
>> >> >> > > Any news on this? Is there something I should do?
>> >> >> >
>> >> >> > Have you uploaded small tiff so this patch can be tested?
>> >> >> >
>> >> >> > >
>> >> >> > > Στις Σάβ, 23 Μαρ 2019 στις 2:54 μ.μ., ο/η Carl Eugen Hoyos
>> >> >> > >  έγραψε:
>> >> >> > >>
>> >> >> > >> 2019-03-23 13:34 GMT+01:00, Paul B Mahol :
>> >> >> > >> > On 3/23/19, Carl Eugen Hoyos  wrote:
>> >> >> > >> >> 2019-03-23 9:11 GMT+01:00, Paul B Mahol :
>> >> >> > >> >>> On 3/22/19, Carl Eugen Hoyos  wrote:
>> >> >> > >>  2019-03-22 15:50 GMT+01:00, velocit...@gmail.com
>> >> >> > >>  :
>> >> >> > >> > From: Nick Renieris 
>> >> >> > >> >
>> >> >> > >> > Option "-page N" (page index N starts from 1) can now
>> >> >> > >> > be used to specify which TIFF page/subfile to decode.
>> >> >> > >> 
>> >> >> > >>  What is the current behaviour?
>> >> >> > >>  Shouldn't the decoder output all pages as for a video
>> >> >> > >>  file?
>> >> >> > >> >>>
>> >> >> > >> >>> How?
>> >> >> > >> >>
>> >> >> > >> >> I would have suggested decoder flush.
>> >> >> > >>
>> >> >> > >> The word is probably "drain".
>> >> >> > >>
>> >> >> > >> > What? Can you elaborate what you think?
>> >> >> > >>
>> >> >> > >> Isn't there a return value that leads to subsequent calls of
>> >> >> > >> AVCodec->decode()?
>> >> >> > >>
>> >> >> > >> 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".
>> >> > ___
>> >> > 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".
>> ___
>> 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 

Re: [FFmpeg-devel] [PATCH] lavc/vaapi_decode: add va_profile format map support for HEVC_REXT

2019-03-29 Thread Fu, Linjie
> -Original Message-
> From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf
> Of Mark Thompson
> Sent: Friday, March 29, 2019 07:34
> To: ffmpeg-devel@ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH] lavc/vaapi_decode: add va_profile
> format map support for HEVC_REXT
> 
> On 28/03/2019 04:03, Linjie Fu wrote:
> > HEVC_REXT will be map to {VAProfileHEVCMain422_10,
> VAProfileHEVCMain444,
> > VAProfileHEVCMain444_10} in vaapi_profile_map[], since need to be
> distinguished
> > to select the exact va_profile.
> >
> > Add va_profile -> AV_PIX_FMT map for FF_PROFILE_HEVC_REXT to match
> the
> > exact va_profile.
> >
> > Signed-off-by: Linjie Fu 
> > ---
> >  libavcodec/vaapi_decode.c | 29 +
> >  1 file changed, 25 insertions(+), 4 deletions(-)
> >
> > diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c
> > index 015154b879..1cb8683b7c 100644
> > --- a/libavcodec/vaapi_decode.c
> > +++ b/libavcodec/vaapi_decode.c
> > @@ -414,6 +414,18 @@ static const struct {
> >  #undef MAP
> >  };
> >
> > +static const struct {
> > +VAProfile va_profile;
> > +enum AVPixelFormat pix_fmt;
> > +} rext_format_map[] = {
> > +#define MAP(vp, av) { VAProfileHEVCMain ## vp, AV_PIX_FMT_ ## av }
> > +MAP(422_10,  YUYV422),
> > +MAP(422_10,  YUV422P10LE),
> > +MAP(444, YUV444P),
> > +MAP(444_10,  YUV444P10LE),
> 
> This doesn't work - you can't guess the rext profile from the chroma format
> and bit depth information, because the profiles are all overlapping (see table
> A.1).
> 
> You need to use the profile constraint flags to determine it - this lookup is
> implemented by ff_h265_get_profile(), but you'll need to extract all the flags
> to put into it.
> 
Thanks for the advice Mark, and I think these constraint flags should be parsed 
firstly in decode_profile_tier_level():
https://github.com/FFmpeg/FFmpeg/blob/9dece050ef01c70df1ac74a04da3548b3c0d79a9/libavcodec/hevc_ps.c#L265

Currently, they are skipped when parsing the sps:
skip_bits(gb, 16); // XXX_reserved_zero_44bits[0..15]
skip_bits(gb, 16); // XXX_reserved_zero_44bits[16..31]
skip_bits(gb, 12); // XXX_reserved_zero_44bits[32..43]
Will it be acceptable to add these flags in common hevc parser function for the 
usage in VAAPI decode? 

> > +#undef MAP
> > +};
> > +
> >  /*
> >   * Set *va_config and the frames_ref fields from the current codec
> parameters
> >   * in avctx.
> > @@ -426,7 +438,7 @@ static int
> vaapi_decode_make_config(AVCodecContext *avctx,
> >  AVVAAPIHWConfig   *hwconfig= NULL;
> >  AVHWFramesConstraints *constraints = NULL;
> >  VAStatus vas;
> > -int err, i, j;
> > +int err, i, j, k;
> >  const AVCodecDescriptor *codec_desc;
> >  VAProfile *profile_list = NULL, matched_va_profile;
> >  int profile_count, exact_match, matched_ff_profile;
> > @@ -467,13 +479,22 @@ static int
> vaapi_decode_make_config(AVCodecContext *avctx,
> >  if (avctx->profile == vaapi_profile_map[i].codec_profile ||
> >  vaapi_profile_map[i].codec_profile == FF_PROFILE_UNKNOWN)
> >  profile_match = 1;
> > -for (j = 0; j < profile_count; j++) {
> > -if (vaapi_profile_map[i].va_profile == profile_list[j]) {
> > +if (avctx->profile == FF_PROFILE_HEVC_REXT) {
> > +/* find the exact va_profile for HEVC_REXT */
> > +for (j = 0; j < FF_ARRAY_ELEMS(rext_format_map); j++) {
> > +if (avctx->pix_fmt == rext_format_map[j].pix_fmt)
> > +   break;
> > +}
> > +if (vaapi_profile_map[i].va_profile !=
> rext_format_map[j].va_profile)
> > +continue;
> > +}
> 
> Codec-specific stuff probably shouldn't be hidden in the middle of the
> generic code like this.

Got your point and I add this to avoid redundant map query, for other codecs, 
codec_id and codec_profile are enough to determine the exact va_profile.
Any advice for coping with this situation?
(Did you mean finding some other methods to modify in vaapi_hevc.c, because all
 vaapi decoders are sharing same init funcion)

> > +for (k = 0; k < profile_count; k++) {
> > +if (vaapi_profile_map[i].va_profile == profile_list[k]) {
> >  exact_match = profile_match;
> >  break;
> >  }
> >  }
> > -if (j < profile_count) {
> > +if (k < profile_count) {
> >  matched_va_profile = vaapi_profile_map[i].va_profile;
> >  matched_ff_profile = vaapi_profile_map[i].codec_profile;
> >  if (exact_match)
> >
> 
> When will it be possible to get hardware which supports these profiles?
> 

Honestly, I don't know when the hardware (ICL) will be available, either.

Thanks very much.
linjie
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, 

[FFmpeg-devel] [PATCH] avcodec/aacdec_fixed: Fix undefined shift in noise_scale()

2019-03-29 Thread Michael Niedermayer
Fixes: 
13655/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AAC_FIXED_fuzzer-5120559430500352

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

diff --git a/libavcodec/aacdec_fixed.c b/libavcodec/aacdec_fixed.c
index 2c594c6792..b051e75709 100644
--- a/libavcodec/aacdec_fixed.c
+++ b/libavcodec/aacdec_fixed.c
@@ -221,7 +221,7 @@ static void noise_scale(int *coefs, int scale, int 
band_energy, int len)
 }
 else {
 s = s + 32;
-round = 1 << (s-1);
+round = s ? 1 << (s-1) : 0;
 for (i=0; i> s);
 coefs[i] = out * ssign;
-- 
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 v10 1/2] lavc/svt_hevc: add libsvt hevc encoder wrapper

2019-03-29 Thread Jing Sun
Signed-off-by: Zhengxu Huang 
Signed-off-by: Hassene Tmar 
Signed-off-by: Jun Zhao 
Signed-off-by: Jing Sun 
---
 configure|   4 +
 libavcodec/Makefile  |   1 +
 libavcodec/allcodecs.c   |   1 +
 libavcodec/libsvt_hevc.c | 500 +++
 4 files changed, 506 insertions(+)
 create mode 100644 libavcodec/libsvt_hevc.c

diff --git a/configure b/configure
index 938ff10..2aabac4 100755
--- a/configure
+++ b/configure
@@ -264,6 +264,7 @@ External library support:
   --enable-libspeexenable Speex de/encoding via libspeex [no]
   --enable-libsrt  enable Haivision SRT protocol via libsrt [no]
   --enable-libssh  enable SFTP protocol via libssh [no]
+  --enable-libsvthevc  enable HEVC encoding via svt [no]
   --enable-libtensorflow   enable TensorFlow as a DNN module backend
for DNN based filters like sr [no]
   --enable-libtesseractenable Tesseract, needed for ocr filter [no]
@@ -1784,6 +1785,7 @@ EXTERNAL_LIBRARY_LIST="
 libspeex
 libsrt
 libssh
+libsvthevc
 libtensorflow
 libtesseract
 libtheora
@@ -3173,6 +3175,7 @@ libshine_encoder_select="audio_frame_queue"
 libspeex_decoder_deps="libspeex"
 libspeex_encoder_deps="libspeex"
 libspeex_encoder_select="audio_frame_queue"
+libsvt_hevc_encoder_deps="libsvthevc"
 libtheora_encoder_deps="libtheora"
 libtwolame_encoder_deps="libtwolame"
 libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
@@ -6209,6 +6212,7 @@ enabled libsoxr   && require libsoxr soxr.h 
soxr_create -lsoxr
 enabled libssh&& require_pkg_config libssh libssh libssh/sftp.h 
sftp_init
 enabled libspeex  && require_pkg_config libspeex speex speex/speex.h 
speex_decoder_init
 enabled libsrt&& require_pkg_config libsrt "srt >= 1.3.0" 
srt/srt.h srt_socket
+enabled libsvthevc&& require_pkg_config libsvthevc SvtHevcEnc EbApi.h 
EbInitHandle
 enabled libtensorflow && require libtensorflow tensorflow/c/c_api.h 
TF_Version -ltensorflow
 enabled libtesseract  && require_pkg_config libtesseract tesseract 
tesseract/capi.h TessBaseAPICreate
 enabled libtheora && require libtheora theora/theoraenc.h th_info_init 
-ltheoraenc -ltheoradec -logg
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 15c43a8..c93e545 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -987,6 +987,7 @@ OBJS-$(CONFIG_LIBOPUS_ENCODER)+= libopusenc.o 
libopus.o \
 OBJS-$(CONFIG_LIBSHINE_ENCODER)   += libshine.o
 OBJS-$(CONFIG_LIBSPEEX_DECODER)   += libspeexdec.o
 OBJS-$(CONFIG_LIBSPEEX_ENCODER)   += libspeexenc.o
+OBJS-$(CONFIG_LIBSVT_HEVC_ENCODER)+= libsvt_hevc.o
 OBJS-$(CONFIG_LIBTHEORA_ENCODER)  += libtheoraenc.o
 OBJS-$(CONFIG_LIBTWOLAME_ENCODER) += libtwolame.o
 OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) += libvo-amrwbenc.o
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index b26aeca..e93f66f 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -703,6 +703,7 @@ extern AVCodec ff_librsvg_decoder;
 extern AVCodec ff_libshine_encoder;
 extern AVCodec ff_libspeex_encoder;
 extern AVCodec ff_libspeex_decoder;
+extern AVCodec ff_libsvt_hevc_encoder;
 extern AVCodec ff_libtheora_encoder;
 extern AVCodec ff_libtwolame_encoder;
 extern AVCodec ff_libvo_amrwbenc_encoder;
diff --git a/libavcodec/libsvt_hevc.c b/libavcodec/libsvt_hevc.c
new file mode 100644
index 000..4ef06a8
--- /dev/null
+++ b/libavcodec/libsvt_hevc.c
@@ -0,0 +1,500 @@
+/*
+* Scalable Video Technology for HEVC encoder library plugin
+*
+* Copyright (c) 2018 Intel Corporation
+*
+* This file is part of FFmpeg.
+*
+* FFmpeg is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* FFmpeg is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include "EbErrorCodes.h"
+#include "EbTime.h"
+#include "EbApi.h"
+
+#include "libavutil/common.h"
+#include "libavutil/frame.h"
+#include "libavutil/opt.h"
+
+#include "internal.h"
+#include "avcodec.h"
+
+typedef enum eos_status {
+EOS_NOT_REACHED = 0,
+EOS_REACHED,
+EOS_TOTRIGGER
+}EOS_STATUS;
+
+typedef struct SvtContext {
+AVClass *class;
+
+EB_H265_ENC_CONFIGURATION enc_params;
+EB_COMPONENTTYPE *svt_handle;
+EB_BUFFERHEADERTYPE in_buf;
+EOS_STATUS eos_flag;
+
+// User options.
+int vui_info;
+   

Re: [FFmpeg-devel] [PATCH 2/2] avcodec/tiff: Multi-page support

2019-03-29 Thread Nick Renieris
Huh? No I fixed that, it's AV_OPT_TYPE_INT now.
See the second email in this list (first was the initial patch, then
the corrected patch).

Στις Παρ, 29 Μαρ 2019 στις 12:51 π.μ., ο/η Paul B Mahol
 έγραψε:
>
> On 3/28/19, Nick Renieris  wrote:
> > Ok, here's a multipage tif with 3 pages, the two first are blue and
> > the last one red:
> > https://0x0.st/zKdB.tif
> >
>
> Patch contains UINT16 opt and as is can not be applied.
> Please fix that.
>
> > Στις Πέμ, 28 Μαρ 2019 στις 4:35 μ.μ., ο/η Paul B Mahol
> >  έγραψε:
> >>
> >> On 3/28/19, Nick Renieris  wrote:
> >> > When I made the patch I did ask you on IRC whether I should upload
> >> > something and got no answer.
> >> >
> >>
> >> Please upload it, somewhere like https://0x0.st/
> >>
> >> > Στις Πέμ, 28 Μαρ 2019 στις 2:58 μ.μ., ο/η Nick Renieris
> >> >  έγραψε:
> >> >>
> >> >> I haven't, is there a specific place that it's preferred I upload it
> >> >> to?
> >> >>
> >> >> Στις Πέμ, 28 Μαρ 2019 στις 1:12 μ.μ., ο/η Paul B Mahol
> >> >>  έγραψε:
> >> >> >
> >> >> > On 3/28/19, Nick Renieris  wrote:
> >> >> > > Any news on this? Is there something I should do?
> >> >> >
> >> >> > Have you uploaded small tiff so this patch can be tested?
> >> >> >
> >> >> > >
> >> >> > > Στις Σάβ, 23 Μαρ 2019 στις 2:54 μ.μ., ο/η Carl Eugen Hoyos
> >> >> > >  έγραψε:
> >> >> > >>
> >> >> > >> 2019-03-23 13:34 GMT+01:00, Paul B Mahol :
> >> >> > >> > On 3/23/19, Carl Eugen Hoyos  wrote:
> >> >> > >> >> 2019-03-23 9:11 GMT+01:00, Paul B Mahol :
> >> >> > >> >>> On 3/22/19, Carl Eugen Hoyos  wrote:
> >> >> > >>  2019-03-22 15:50 GMT+01:00, velocit...@gmail.com
> >> >> > >>  :
> >> >> > >> > From: Nick Renieris 
> >> >> > >> >
> >> >> > >> > Option "-page N" (page index N starts from 1) can now
> >> >> > >> > be used to specify which TIFF page/subfile to decode.
> >> >> > >> 
> >> >> > >>  What is the current behaviour?
> >> >> > >>  Shouldn't the decoder output all pages as for a video file?
> >> >> > >> >>>
> >> >> > >> >>> How?
> >> >> > >> >>
> >> >> > >> >> I would have suggested decoder flush.
> >> >> > >>
> >> >> > >> The word is probably "drain".
> >> >> > >>
> >> >> > >> > What? Can you elaborate what you think?
> >> >> > >>
> >> >> > >> Isn't there a return value that leads to subsequent calls of
> >> >> > >> AVCodec->decode()?
> >> >> > >>
> >> >> > >> 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".
> >> > ___
> >> > 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".
> ___
> 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".