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

James Almer jamrial at gmail.com
Fri Feb 9 13:53:28 EET 2018


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.

That said, was this really a regression generated by this commit? It
looks unrelated.


More information about the ffmpeg-devel mailing list