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

Michael Niedermayer michael at niedermayer.cc
Sat Feb 10 02:51:00 EET 2018


On Fri, Feb 09, 2018 at 10:21:04PM +0700, 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).
> 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.
> 

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

iam not sure i understand correctly. But does this mean that 
tools/target_dec_"codec"_fuzzer will now include everything and not just
the "codec" ?
If so this will possibly prevent FFmpeg from being tested in googles ossfuzz
framework. As their diskspace was already rather tight.

i do see on my disk that the more recently build fuzzers have gottem MUCH
larger:
-rwxr-x--- 1 michael michael  17588987 Feb  3 18:53 tools/target_dec_scpr_fuzzer*
-rwxr-x--- 1 michael michael  17476326 Feb  4 02:16 tools/target_dec_paf_video_fuzzer*
-rwxr-x--- 1 michael michael 143210465 Feb  9 13:53 tools/target_dec_h264_fuzzer*
-rwxr-x--- 1 michael michael 143210465 Feb  9 13:56 tools/target_dec_vp3_fuzzer*

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

He who knows, does not speak. He who speaks, does not know. -- Lao Tsu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180210/590342fd/attachment.sig>


More information about the ffmpeg-devel mailing list