Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-02 Thread Muhammad Faiz
On Sat, Feb 3, 2018 at 6:34 AM, Hendrik Leppkes  wrote:
> Am 02.02.2018 11:58 nachm. schrieb "Muhammad Faiz" :
>
> On Sat, Feb 3, 2018 at 1:55 AM, Hendrik Leppkes  wrote:
>> On Fri, Feb 2, 2018 at 7:49 PM, Muhammad Faiz  wrote:
>>> On Fri, Feb 2, 2018 at 10:23 PM, Josh de Kock  wrote:

> On 1 Feb 2018, at 18:51, Muhammad Faiz  wrote:
>
>> On Thu, Feb 1, 2018 at 3:25 AM, Josh de Kock  wrote:
>> Also replace linked list with an array.
>> ---
>> configure  |   12 +-
>> doc/APIchanges |4 +
>> libavcodec/.gitignore  |2 +
>> libavcodec/allcodecs.c | 1473 --
> --
>> libavcodec/avcodec.h   |   31 +
>> libavcodec/parser.c|   84 ++-
>> libavcodec/utils.c |  112 
>> libavcodec/version.h   |3 +
>> 8 files changed, 971 insertions(+), 750 deletions(-)
>>
>
> I have a plan to sort codecs based on name and codec_id (which overlap
> with this patch). Is it OK if I overtake this?
> If it is not OK, I will wait until this patchset pushed.
>

 I am unsure why you would need to sort codecs.
>>>
>>> For performance reason.
>>
>> Performance of what?
>
> avcodec_find_decoder/encoder (by using bsearch).
>
>
> Considering you can have multiple of those for any given codec Id and order
> matters, that seems like a risky idea, or a rather complex one at least.
> Perhaps not the first (or second) place to start optimization.

I've thought about it.

Thank's.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-02 Thread Hendrik Leppkes
Am 02.02.2018 11:58 nachm. schrieb "Muhammad Faiz" :

On Sat, Feb 3, 2018 at 1:55 AM, Hendrik Leppkes  wrote:
> On Fri, Feb 2, 2018 at 7:49 PM, Muhammad Faiz  wrote:
>> On Fri, Feb 2, 2018 at 10:23 PM, Josh de Kock  wrote:
>>>
 On 1 Feb 2018, at 18:51, Muhammad Faiz  wrote:

> On Thu, Feb 1, 2018 at 3:25 AM, Josh de Kock  wrote:
> Also replace linked list with an array.
> ---
> configure  |   12 +-
> doc/APIchanges |4 +
> libavcodec/.gitignore  |2 +
> libavcodec/allcodecs.c | 1473 --
--
> libavcodec/avcodec.h   |   31 +
> libavcodec/parser.c|   84 ++-
> libavcodec/utils.c |  112 
> libavcodec/version.h   |3 +
> 8 files changed, 971 insertions(+), 750 deletions(-)
>

 I have a plan to sort codecs based on name and codec_id (which overlap
 with this patch). Is it OK if I overtake this?
 If it is not OK, I will wait until this patchset pushed.

>>>
>>> I am unsure why you would need to sort codecs.
>>
>> For performance reason.
>
> Performance of what?

avcodec_find_decoder/encoder (by using bsearch).


Considering you can have multiple of those for any given codec Id and order
matters, that seems like a risky idea, or a rather complex one at least.
Perhaps not the first (or second) place to start optimization.

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


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-02 Thread Muhammad Faiz
On Sat, Feb 3, 2018 at 1:55 AM, Hendrik Leppkes  wrote:
> On Fri, Feb 2, 2018 at 7:49 PM, Muhammad Faiz  wrote:
>> On Fri, Feb 2, 2018 at 10:23 PM, Josh de Kock  wrote:
>>>
 On 1 Feb 2018, at 18:51, Muhammad Faiz  wrote:

> On Thu, Feb 1, 2018 at 3:25 AM, Josh de Kock  wrote:
> Also replace linked list with an array.
> ---
> configure  |   12 +-
> doc/APIchanges |4 +
> libavcodec/.gitignore  |2 +
> libavcodec/allcodecs.c | 1473 
> 
> libavcodec/avcodec.h   |   31 +
> libavcodec/parser.c|   84 ++-
> libavcodec/utils.c |  112 
> libavcodec/version.h   |3 +
> 8 files changed, 971 insertions(+), 750 deletions(-)
>

 I have a plan to sort codecs based on name and codec_id (which overlap
 with this patch). Is it OK if I overtake this?
 If it is not OK, I will wait until this patchset pushed.

>>>
>>> I am unsure why you would need to sort codecs.
>>
>> For performance reason.
>
> Performance of what?

avcodec_find_decoder/encoder (by using bsearch).
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-02 Thread Hendrik Leppkes
On Fri, Feb 2, 2018 at 7:49 PM, Muhammad Faiz  wrote:
> On Fri, Feb 2, 2018 at 10:23 PM, Josh de Kock  wrote:
>>
>>> On 1 Feb 2018, at 18:51, Muhammad Faiz  wrote:
>>>
 On Thu, Feb 1, 2018 at 3:25 AM, Josh de Kock  wrote:
 Also replace linked list with an array.
 ---
 configure  |   12 +-
 doc/APIchanges |4 +
 libavcodec/.gitignore  |2 +
 libavcodec/allcodecs.c | 1473 
 
 libavcodec/avcodec.h   |   31 +
 libavcodec/parser.c|   84 ++-
 libavcodec/utils.c |  112 
 libavcodec/version.h   |3 +
 8 files changed, 971 insertions(+), 750 deletions(-)

>>>
>>> I have a plan to sort codecs based on name and codec_id (which overlap
>>> with this patch). Is it OK if I overtake this?
>>> If it is not OK, I will wait until this patchset pushed.
>>>
>>
>> I am unsure why you would need to sort codecs.
>
> For performance reason.

Performance of what?

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


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-02 Thread Josh de Kock
On Fri, Feb 2, 2018, at 6:53 PM, James Almer wrote:
> On 2/2/2018 12:23 PM, Josh de Kock wrote:
> > 
> >> On 1 Feb 2018, at 18:51, Muhammad Faiz  wrote:
> >>
> >>> On Thu, Feb 1, 2018 at 3:25 AM, Josh de Kock  wrote:
> >>> Also replace linked list with an array.
> >>> ---
> >>> configure  |   12 +-
> >>> doc/APIchanges |4 +
> >>> libavcodec/.gitignore  |2 +
> >>> libavcodec/allcodecs.c | 1473 
> >>> 
> >>> libavcodec/avcodec.h   |   31 +
> >>> libavcodec/parser.c|   84 ++-
> >>> libavcodec/utils.c |  112 
> >>> libavcodec/version.h   |3 +
> >>> 8 files changed, 971 insertions(+), 750 deletions(-)
> >>>
> >>
> >> I have a plan to sort codecs based on name and codec_id (which overlap
> >> with this patch). Is it OK if I overtake this?
> >> If it is not OK, I will wait until this patchset pushed.
> >>
> > 
> > I am unsure why you would need to sort codecs. The point of my patches is 
> > to bring the rest of ffmpeg up to the bsf iteration api (which abstracts 
> > internals away from the user).
> 
> Doesn't bsf use next() and not iterate()?

It does but it doesn't really make sense to use _next when all the other _next 
functions dont work like bsf. I was contemplating whether I should rename the 
bsf api to use _iterate as well (i.e. deprecate current name, rename current 
functions, and have a function with the old names calling the new names).

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


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-02 Thread James Almer
On 2/2/2018 12:23 PM, Josh de Kock wrote:
> 
>> On 1 Feb 2018, at 18:51, Muhammad Faiz  wrote:
>>
>>> On Thu, Feb 1, 2018 at 3:25 AM, Josh de Kock  wrote:
>>> Also replace linked list with an array.
>>> ---
>>> configure  |   12 +-
>>> doc/APIchanges |4 +
>>> libavcodec/.gitignore  |2 +
>>> libavcodec/allcodecs.c | 1473 
>>> 
>>> libavcodec/avcodec.h   |   31 +
>>> libavcodec/parser.c|   84 ++-
>>> libavcodec/utils.c |  112 
>>> libavcodec/version.h   |3 +
>>> 8 files changed, 971 insertions(+), 750 deletions(-)
>>>
>>
>> I have a plan to sort codecs based on name and codec_id (which overlap
>> with this patch). Is it OK if I overtake this?
>> If it is not OK, I will wait until this patchset pushed.
>>
> 
> I am unsure why you would need to sort codecs. The point of my patches is to 
> bring the rest of ffmpeg up to the bsf iteration api (which abstracts 
> internals away from the user).

Doesn't bsf use next() and not iterate()?
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-02 Thread Muhammad Faiz
On Fri, Feb 2, 2018 at 10:23 PM, Josh de Kock  wrote:
>
>> On 1 Feb 2018, at 18:51, Muhammad Faiz  wrote:
>>
>>> On Thu, Feb 1, 2018 at 3:25 AM, Josh de Kock  wrote:
>>> Also replace linked list with an array.
>>> ---
>>> configure  |   12 +-
>>> doc/APIchanges |4 +
>>> libavcodec/.gitignore  |2 +
>>> libavcodec/allcodecs.c | 1473 
>>> 
>>> libavcodec/avcodec.h   |   31 +
>>> libavcodec/parser.c|   84 ++-
>>> libavcodec/utils.c |  112 
>>> libavcodec/version.h   |3 +
>>> 8 files changed, 971 insertions(+), 750 deletions(-)
>>>
>>
>> I have a plan to sort codecs based on name and codec_id (which overlap
>> with this patch). Is it OK if I overtake this?
>> If it is not OK, I will wait until this patchset pushed.
>>
>
> I am unsure why you would need to sort codecs.

For performance reason.

>The point of my patches is to bring 
> the rest of ffmpeg up to the bsf iteration api (which abstracts internals 
> away from the user). I planned on doing lavfi as well, but how the build 
> system worked with filter names made it awkward. Hence me submitting these 
> patches without a lavfi counterpart (I stills haven’t worked out the best way 
> to do it yet). The way you’ve done your static initialisation of lavfi seems 
> like a backwards way to do it, and would make overalls consistency difficult 
> (something quite desirable, which my patches work towards).

Imho, av*iterate things are less elegant than av*next. But, the change
actually is not based on elegance, but based on performance (av*next
requires initialization of next pointer).

Thank's.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-02 Thread Josh de Kock
> On 2 Feb 2018, at 15:41, Rostislav Pehlivanov  wrote:
> 
>> On 31 January 2018 at 20:25, Josh de Kock  wrote:
>> 
>> Also replace linked list with an array.
>> ---
>> configure  |   12 +-
>> doc/APIchanges |4 +
>> libavcodec/.gitignore  |2 +
>> libavcodec/allcodecs.c | 1473 --
>> --
>> libavcodec/avcodec.h   |   31 +
>> libavcodec/parser.c|   84 ++-
>> libavcodec/utils.c |  112 
>> libavcodec/version.h   |3 +
>> 8 files changed, 971 insertions(+), 750 deletions(-)
> 
> 
> I'd appreciate some credit, I did write most of the patch :)

I rewrote the lavc patch from scratch since I couldn’t getting yours to work, 
but I can credit your for the idea/original version or something. Just ping me 
on irc

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


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-02 Thread Rostislav Pehlivanov
On 31 January 2018 at 20:25, Josh de Kock  wrote:

> Also replace linked list with an array.
> ---
>  configure  |   12 +-
>  doc/APIchanges |4 +
>  libavcodec/.gitignore  |2 +
>  libavcodec/allcodecs.c | 1473 --
> --
>  libavcodec/avcodec.h   |   31 +
>  libavcodec/parser.c|   84 ++-
>  libavcodec/utils.c |  112 
>  libavcodec/version.h   |3 +
>  8 files changed, 971 insertions(+), 750 deletions(-)


I'd appreciate some credit, I did write most of the patch :)
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-02 Thread Josh de Kock

> On 1 Feb 2018, at 18:51, Muhammad Faiz  wrote:
> 
>> On Thu, Feb 1, 2018 at 3:25 AM, Josh de Kock  wrote:
>> Also replace linked list with an array.
>> ---
>> configure  |   12 +-
>> doc/APIchanges |4 +
>> libavcodec/.gitignore  |2 +
>> libavcodec/allcodecs.c | 1473 
>> 
>> libavcodec/avcodec.h   |   31 +
>> libavcodec/parser.c|   84 ++-
>> libavcodec/utils.c |  112 
>> libavcodec/version.h   |3 +
>> 8 files changed, 971 insertions(+), 750 deletions(-)
>> 
> 
> I have a plan to sort codecs based on name and codec_id (which overlap
> with this patch). Is it OK if I overtake this?
> If it is not OK, I will wait until this patchset pushed.
> 

I am unsure why you would need to sort codecs. The point of my patches is to 
bring the rest of ffmpeg up to the bsf iteration api (which abstracts internals 
away from the user). I planned on doing lavfi as well, but how the build system 
worked with filter names made it awkward. Hence me submitting these patches 
without a lavfi counterpart (I stills haven’t worked out the best way to do it 
yet). The way you’ve done your static initialisation of lavfi seems like a 
backwards way to do it, and would make overalls consistency difficult 
(something quite desirable, which my patches work towards).

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


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-01 Thread Michael Niedermayer
On Thu, Feb 01, 2018 at 08:57:40AM +, Josh de Kock wrote:
> 
> > On 1 Feb 2018, at 03:03, Michael Niedermayer  wrote:
> > 
> >> On Wed, Jan 31, 2018 at 08:25:50PM +, Josh de Kock wrote:
> >> Also replace linked list with an array.
> >> ---
> >> configure  |   12 +-
> >> doc/APIchanges |4 +
> >> libavcodec/.gitignore  |2 +
> >> libavcodec/allcodecs.c | 1473 
> >> 
> >> libavcodec/avcodec.h   |   31 +
> >> libavcodec/parser.c|   84 ++-
> >> libavcodec/utils.c |  112 
> >> libavcodec/version.h   |3 +
> >> 8 files changed, 971 insertions(+), 750 deletions(-)
> > 
> > breaks build
> > simple example:
> > cd buildhere && ../configure && make -j12
> > LDffmpeg_g
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0xd8): undefined reference to 
> > `ff_hap_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4b8): undefined reference 
> > to `ff_libfdk_aac_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4c0): undefined reference 
> > to `ff_libgsm_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4c8): undefined reference 
> > to `ff_libgsm_ms_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4d0): undefined reference 
> > to `ff_libilbc_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4d8): undefined reference 
> > to `ff_libmp3lame_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4e0): undefined reference 
> > to `ff_libopencore_amrnb_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4e8): undefined reference 
> > to `ff_libopenjpeg_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4f0): undefined reference 
> > to `ff_libopus_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4f8): undefined reference 
> > to `ff_libspeex_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x500): undefined reference 
> > to `ff_libtheora_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x508): undefined reference 
> > to `ff_libtwolame_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x510): undefined reference 
> > to `ff_libvo_amrwbenc_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x518): undefined reference 
> > to `ff_libvorbis_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x520): undefined reference 
> > to `ff_libvpx_vp8_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x528): undefined reference 
> > to `ff_libvpx_vp9_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x530): undefined reference 
> > to `ff_libwebp_anim_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x538): undefined reference 
> > to `ff_libwebp_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x540): undefined reference 
> > to `ff_libx264_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x548): undefined reference 
> > to `ff_libx264rgb_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x550): undefined reference 
> > to `ff_libx265_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x558): undefined reference 
> > to `ff_libxavs_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x560): undefined reference 
> > to `ff_libxvid_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x568): undefined reference 
> > to `ff_libopenh264_encoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x12e8): undefined reference 
> > to `ff_libfdk_aac_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x12f0): undefined reference 
> > to `ff_libgsm_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x12f8): undefined reference 
> > to `ff_libgsm_ms_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1300): undefined reference 
> > to `ff_libilbc_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1308): undefined reference 
> > to `ff_libopencore_amrnb_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1310): undefined reference 
> > to `ff_libopencore_amrwb_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1318): undefined reference 
> > to `ff_libopenjpeg_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1320): undefined reference 
> > to `ff_libopus_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1328): undefined reference 
> > to `ff_libspeex_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1330): undefined reference 
> > to `ff_libvorbis_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1338): undefined reference 
> > to `ff_libvpx_vp8_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1340): undefined reference 
> > to `ff_libvpx_vp9_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1348): undefined reference 
> > to `ff_libzvbi_teletext_decoder'
> > libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1368): undefined reference 
> > to `ff_libopenh264_decoder'
> > 
> > [...]
> > -- 
> > 

Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-01 Thread Muhammad Faiz
On Thu, Feb 1, 2018 at 3:25 AM, Josh de Kock  wrote:
> Also replace linked list with an array.
> ---
>  configure  |   12 +-
>  doc/APIchanges |4 +
>  libavcodec/.gitignore  |2 +
>  libavcodec/allcodecs.c | 1473 
> 
>  libavcodec/avcodec.h   |   31 +
>  libavcodec/parser.c|   84 ++-
>  libavcodec/utils.c |  112 
>  libavcodec/version.h   |3 +
>  8 files changed, 971 insertions(+), 750 deletions(-)
>

I have a plan to sort codecs based on name and codec_id (which overlap
with this patch). Is it OK if I overtake this?
If it is not OK, I will wait until this patchset pushed.

Thank's.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-02-01 Thread Josh de Kock

> On 1 Feb 2018, at 03:03, Michael Niedermayer  wrote:
> 
>> On Wed, Jan 31, 2018 at 08:25:50PM +, Josh de Kock wrote:
>> Also replace linked list with an array.
>> ---
>> configure  |   12 +-
>> doc/APIchanges |4 +
>> libavcodec/.gitignore  |2 +
>> libavcodec/allcodecs.c | 1473 
>> 
>> libavcodec/avcodec.h   |   31 +
>> libavcodec/parser.c|   84 ++-
>> libavcodec/utils.c |  112 
>> libavcodec/version.h   |3 +
>> 8 files changed, 971 insertions(+), 750 deletions(-)
> 
> breaks build
> simple example:
> cd buildhere && ../configure && make -j12
> LDffmpeg_g
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0xd8): undefined reference to 
> `ff_hap_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4b8): undefined reference to 
> `ff_libfdk_aac_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4c0): undefined reference to 
> `ff_libgsm_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4c8): undefined reference to 
> `ff_libgsm_ms_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4d0): undefined reference to 
> `ff_libilbc_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4d8): undefined reference to 
> `ff_libmp3lame_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4e0): undefined reference to 
> `ff_libopencore_amrnb_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4e8): undefined reference to 
> `ff_libopenjpeg_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4f0): undefined reference to 
> `ff_libopus_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4f8): undefined reference to 
> `ff_libspeex_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x500): undefined reference to 
> `ff_libtheora_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x508): undefined reference to 
> `ff_libtwolame_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x510): undefined reference to 
> `ff_libvo_amrwbenc_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x518): undefined reference to 
> `ff_libvorbis_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x520): undefined reference to 
> `ff_libvpx_vp8_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x528): undefined reference to 
> `ff_libvpx_vp9_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x530): undefined reference to 
> `ff_libwebp_anim_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x538): undefined reference to 
> `ff_libwebp_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x540): undefined reference to 
> `ff_libx264_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x548): undefined reference to 
> `ff_libx264rgb_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x550): undefined reference to 
> `ff_libx265_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x558): undefined reference to 
> `ff_libxavs_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x560): undefined reference to 
> `ff_libxvid_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x568): undefined reference to 
> `ff_libopenh264_encoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x12e8): undefined reference to 
> `ff_libfdk_aac_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x12f0): undefined reference to 
> `ff_libgsm_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x12f8): undefined reference to 
> `ff_libgsm_ms_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1300): undefined reference to 
> `ff_libilbc_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1308): undefined reference to 
> `ff_libopencore_amrnb_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1310): undefined reference to 
> `ff_libopencore_amrwb_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1318): undefined reference to 
> `ff_libopenjpeg_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1320): undefined reference to 
> `ff_libopus_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1328): undefined reference to 
> `ff_libspeex_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1330): undefined reference to 
> `ff_libvorbis_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1338): undefined reference to 
> `ff_libvpx_vp8_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1340): undefined reference to 
> `ff_libvpx_vp9_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1348): undefined reference to 
> `ff_libzvbi_teletext_decoder'
> libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1368): undefined reference to 
> `ff_libopenh264_decoder'
> 
> [...]
> -- 
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I can’t reproduce this at all, I’m going to need more info.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org

Re: [FFmpeg-devel] [PATCH v3 1/6] lavc: add new API for iterating codecs and codec parsers

2018-01-31 Thread Michael Niedermayer
On Wed, Jan 31, 2018 at 08:25:50PM +, Josh de Kock wrote:
> Also replace linked list with an array.
> ---
>  configure  |   12 +-
>  doc/APIchanges |4 +
>  libavcodec/.gitignore  |2 +
>  libavcodec/allcodecs.c | 1473 
> 
>  libavcodec/avcodec.h   |   31 +
>  libavcodec/parser.c|   84 ++-
>  libavcodec/utils.c |  112 
>  libavcodec/version.h   |3 +
>  8 files changed, 971 insertions(+), 750 deletions(-)

breaks build
simple example:
cd buildhere && ../configure && make -j12
LD  ffmpeg_g
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0xd8): undefined reference to 
`ff_hap_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4b8): undefined reference to 
`ff_libfdk_aac_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4c0): undefined reference to 
`ff_libgsm_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4c8): undefined reference to 
`ff_libgsm_ms_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4d0): undefined reference to 
`ff_libilbc_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4d8): undefined reference to 
`ff_libmp3lame_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4e0): undefined reference to 
`ff_libopencore_amrnb_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4e8): undefined reference to 
`ff_libopenjpeg_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4f0): undefined reference to 
`ff_libopus_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x4f8): undefined reference to 
`ff_libspeex_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x500): undefined reference to 
`ff_libtheora_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x508): undefined reference to 
`ff_libtwolame_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x510): undefined reference to 
`ff_libvo_amrwbenc_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x518): undefined reference to 
`ff_libvorbis_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x520): undefined reference to 
`ff_libvpx_vp8_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x528): undefined reference to 
`ff_libvpx_vp9_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x530): undefined reference to 
`ff_libwebp_anim_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x538): undefined reference to 
`ff_libwebp_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x540): undefined reference to 
`ff_libx264_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x548): undefined reference to 
`ff_libx264rgb_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x550): undefined reference to 
`ff_libx265_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x558): undefined reference to 
`ff_libxavs_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x560): undefined reference to 
`ff_libxvid_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x568): undefined reference to 
`ff_libopenh264_encoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x12e8): undefined reference to 
`ff_libfdk_aac_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x12f0): undefined reference to 
`ff_libgsm_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x12f8): undefined reference to 
`ff_libgsm_ms_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1300): undefined reference to 
`ff_libilbc_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1308): undefined reference to 
`ff_libopencore_amrnb_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1310): undefined reference to 
`ff_libopencore_amrwb_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1318): undefined reference to 
`ff_libopenjpeg_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1320): undefined reference to 
`ff_libopus_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1328): undefined reference to 
`ff_libspeex_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1330): undefined reference to 
`ff_libvorbis_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1338): undefined reference to 
`ff_libvpx_vp8_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1340): undefined reference to 
`ff_libvpx_vp9_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1348): undefined reference to 
`ff_libzvbi_teletext_decoder'
libavcodec/libavcodec.a(allcodecs.o):(.rodata+0x1368): undefined reference to 
`ff_libopenh264_decoder'

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

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


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