[FFmpeg-devel] [FFmpeg-cvslog] lavc: add new API for iterating codecs and codec parsers

James Almer jamrial at gmail.com
Fri Feb 9 17:25:47 EET 2018


On 2/9/2018 12:21 PM, Muhammad Faiz wrote:
> On Fri, Feb 9, 2018 at 6:53 PM, James Almer <jamrial at gmail.com> wrote:
>> On 2/9/2018 7:56 AM, Muhammad Faiz wrote:
>>> On Thu, Feb 8, 2018 at 7:04 AM, Michael Niedermayer
>>> <michael at niedermayer.cc> wrote:
>>>> On Wed, Feb 07, 2018 at 01:52:33PM +0100, Nicolas George wrote:
>>>>> Josh de Kock (2018-02-06):
>>>>>> ffmpeg | branch: master | Josh de Kock <josh at itanimul.li> | Fri Dec 22 22:17:00 2017 +0000| [7e8eba2d8755962d9dca5eade57bf8f591a73c0c] | committer: Josh de Kock
>>>>>>
>>>>>> lavc: add new API for iterating codecs and codec parsers
>>>>>>
>>>>>> Based on an unfinished patch by atomnuker.
>>>>
>>>> This commit also breaks
>>>>
>>>> ./configure --enable-libsoxr && make -j12 fate-checkasm
>>>>  make -j12 fate-checkasm
>>>>  ...
>>>> LD      tests/checkasm/checkasm
>>>> libswresample/libswresample.a(soxr_resample.o): In function `get_out_samples':
>>>> ffmpeg/libswresample/soxr_resample.c:118: undefined reference to `soxr_delay'
>>>> libswresample/libswresample.a(soxr_resample.o): In function `get_delay':
>>>> ffmpeg/libswresample/soxr_resample.c:100: undefined reference to `soxr_delay'
>>>> libswresample/libswresample.a(soxr_resample.o): In function `flush':
>>>> ffmpeg/libswresample/soxr_resample.c:70: undefined reference to `soxr_delay'
>>>> ffmpeg/libswresample/soxr_resample.c:72: undefined reference to `soxr_process'
>>>> ffmpeg/libswresample/soxr_resample.c:77: undefined reference to `soxr_process'
>>>> ffmpeg/libswresample/soxr_resample.c:78: undefined reference to `soxr_delay'
>>>> libswresample/libswresample.a(soxr_resample.o): In function `process':
>>>> ffmpeg/libswresample/soxr_resample.c:88: undefined reference to `soxr_set_num_channels'
>>>> ffmpeg/libswresample/soxr_resample.c:88: undefined reference to `soxr_set_error'
>>>> ffmpeg/libswresample/soxr_resample.c:90: undefined reference to `soxr_process'
>>>> libswresample/libswresample.a(soxr_resample.o): In function `destroy':
>>>> ffmpeg/libswresample/soxr_resample.c:65: undefined reference to `soxr_delete'
>>>> libswresample/libswresample.a(soxr_resample.o): In function `create':
>>>> ffmpeg/libswresample/soxr_resample.c:46: undefined reference to `soxr_io_spec'
>>>> ffmpeg/libswresample/soxr_resample.c:48: undefined reference to `soxr_quality_spec'
>>>> ffmpeg/libswresample/soxr_resample.c:56: undefined reference to `soxr_delete'
>>>> ffmpeg/libswresample/soxr_resample.c:57: undefined reference to `soxr_create'
>>>> collect2: error: ld returned 1 exit status
>>>> make: *** [tests/checkasm/checkasm] Error 1
>>>
>>> Fixed in 81d6501be77b273053a66eeced94d78e2021f1d1
>>>
>>> Thank's.
>>
>> This is not a proper solution. swr is pulled by avcodec only if Opus
>> decoder is enabled. There's no reason to hardcode it for checkasm otherwise.
>> The problem here is that the Makefile should pull all the dependencies
>> of its hardcoded dependencies. This is what FFLIBS and FFEXTRALIBS do in
>> common.mak to link the actual libraries.
> 
> Probably, this is not a proper solution, but it is trivial enough.
> (I'm sorry that I pushed it without posting).

It's a trivial change that does the job of fixing the regression, so
it's fine.

> So, please fix it with the proper solution. Probably, by adding
> swresample-extralibs to avcodec-extralibs when avcodec has dependency
> to swresample. I don't know how to do it.

I guess the best way is with Makefile magic, like i mentioned FFLIBS and
FFXEXTRALIBS do for each library.
I'll take a look at it later.

> 
>>
>> That said, was this really a regression generated by this commit? It
>> looks unrelated.
> 
> Actually, it was a bug even before this commit. Just, previously it
> was hidden because linker was smart enough to discard unneeded
> dependency. But now when the list is changed to array, the linker is
> unable to do it.
> 
> Thank's.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 



More information about the ffmpeg-devel mailing list