ijkPlayer編譯

一.編譯ijkplayer

1.1環境

VMware+Ubuntu16.04
jdk1.8.0_151,android-ndk-r10e(注意此處有大坑),android-sdk

1.2環境變量配置

Ubuntu下搭建android開發環境

1.3編譯步驟

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.8.4

./init-android.sh

cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

cd ..
./compile-ijk.sh all

運行中可能會出現一些權限問題,通過手動chmod 777 file 或su root等逐個賦權限處理解決;
然後執行:

./compile-ffmpeg.sh all

有可能會出現一種情況,如下圖所示:

configurate ffmpeg完就停了,output文件夾也確實創建了,但是裏面是空的,不上不下的,日誌裏也不報錯誤,搞了好久,後來我覺得可能是ndk問題,把ndk-r13 ,r15,r16全試了一遍,結果都這樣,結果換了個r10e,解決,下面是其中一個cpu版本的編譯日誌:

--------------------
[*] create files for shared ffmpeg
--------------------
====================
[*] check env x86_64
====================
FF_ARCH=x86_64
FF_BUILD_OPT=

--------------------
[*] make NDK standalone toolchain
--------------------
build on Linux x86_64
ANDROID_NDK=/home/lcp/Aislli/Dev/android-ndk-r10e
NDKr10e-rc4(64-bit) detected
WARNING: The shell running this script isn't bash.  Although we try to avoid bashism in scripts, things can happen.
Auto-truncate: --toolchain=x86_64-4.9
Copying prebuilt binaries...
Copying sysroot headers and libraries...
Copying c++ runtime headers and libraries...
Copying files to: /home/lcp/Aislli/source/ijkplayer/ijkplayer-android/android/contrib/build/ffmpeg-x86_64/toolchain
Cleaning up...
Done.

--------------------
[*] check ffmpeg env
--------------------

--------------------
[*] configurate ffmpeg
--------------------
/home/lcp/Aislli/source/ijkplayer/ijkplayer-android/android/contrib/build/ffmpeg-x86_64/toolchain/bin//x86_64-linux-android-gcc
install prefix            /home/lcp/Aislli/source/ijkplayer/ijkplayer-android/android/contrib/build/ffmpeg-x86_64/output
source path               .
C compiler                x86_64-linux-android-gcc
C library                 bionic
host C compiler           gcc
host C library            glibc
ARCH                      x86 (generic)
big-endian                no
runtime cpu detection     yes
yasm                      yes
MMX enabled               yes
MMXEXT enabled            yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
AESNI enabled             yes
AVX enabled               yes
XOP enabled               yes
FMA3 enabled              yes
FMA4 enabled              yes
i686 features enabled     yes
CMOV is fast              yes
EBX available             yes
EBP available             yes
debug symbols             yes
strip symbols             yes
optimize for size         yes
optimizations             yes
static                    yes
shared                    no
postprocessing support    no
network support           yes
threading support         pthreads
safe bitstream reader     yes
texi2html enabled         no
perl enabled              yes
pod2man enabled           yes
makeinfo enabled          no
makeinfo supports HTML    no

External libraries:
xlib               zlib

External libraries providing hardware acceleration:
cuda               cuvid              nvenc

Libraries:
avcodec            avformat           swresample
avfilter           avutil             swscale

Programs:

Enabled decoders:
aac            aura               ffv1
aac_fixed          aura2              ffvhuff
aac_latm           avrn               ffwavesynth
aasc               avrp               fic
ac3            avs                flac
ac3_fixed          avui               flashsv
adpcm_4xm          ayuv               flashsv2
adpcm_adx          bethsoftvid            flic
adpcm_afc          bfi                flv
adpcm_aica         bink               fmvc
adpcm_ct           binkaudio_dct          fourxm
adpcm_dtk          binkaudio_rdft         fraps
adpcm_ea           bintext            frwu
adpcm_ea_maxis_xa      bmp                g2m
adpcm_ea_r1        bmv_audio              g723_1
adpcm_ea_r2        bmv_video              g729
adpcm_ea_r3        brender_pix            gif
adpcm_ea_xas           c93                gsm
adpcm_g722         cavs               gsm_ms
adpcm_g726         ccaption           h261
adpcm_g726le           cdgraphics             h263
adpcm_ima_amv          cdxl               h263i
adpcm_ima_apc          cfhd               h263p
adpcm_ima_dat4         cinepak            h264
adpcm_ima_dk3          clearvideo             h264_cuvid
adpcm_ima_dk4          cljr               hap
adpcm_ima_ea_eacs      cllc               hevc
adpcm_ima_ea_sead      comfortnoise           hevc_cuvid
adpcm_ima_iss          cook               hnm4_video
adpcm_ima_oki          cpia               hq_hqa
adpcm_ima_qt           cscd               hqx
adpcm_ima_rad          cyuv               huffyuv
adpcm_ima_smjpeg       dca                iac
adpcm_ima_wav          dds                idcin
adpcm_ima_ws           dfa                idf
adpcm_ms           dirac              iff_ilbm
adpcm_mtaf         dnxhd              imc
adpcm_psx          dpx                indeo2
adpcm_sbpro_2          dsd_lsbf           indeo3
adpcm_sbpro_3          dsd_lsbf_planar        indeo4
adpcm_sbpro_4          dsd_msbf           indeo5
adpcm_swf          dsd_msbf_planar        interplay_acm
adpcm_thp          dsicinaudio            interplay_dpcm
adpcm_thp_le           dsicinvideo            interplay_video
adpcm_vima         dss_sp             jacosub
adpcm_xa           dst                jpeg2000
adpcm_yamaha           dvaudio            jpegls
aic            dvbsub             jv
alac               dvdsub             kgv1
alias_pix          dvvideo            kmvc
als            dxa                lagarith
amrnb              dxtory             loco
amrwb              dxv                m101
amv            eac3               mace3
anm            eacmv              mace6
ansi               eamad              magicyuv
ape            eatgq              mdec
apng               eatgv              metasound
ass            eatqi              microdvd
asv1               eightbps           mimic
asv2               eightsvx_exp           mjpeg
atrac1             eightsvx_fib           mjpeg_cuvid
atrac3             escape124              mjpegb
atrac3al           escape130              mlp
atrac3p            evrc               mmvideo
atrac3pal          exr                motionpixels
movtext            pcm_s8             ssa
mp1            pcm_s8_planar          stl
mp1float           pcm_u16be              subrip
mp2            pcm_u16le              subviewer
mp2float           pcm_u24be              subviewer1
mp3            pcm_u24le              sunrast
mp3adu             pcm_u32be              svq1
mp3adufloat        pcm_u32le              svq3
mp3float           pcm_u8             tak
mp3on4             pcm_zork           targa
mp3on4float        pcx                targa_y216
mpc7               pgm                tdsc
mpc8               pgmyuv             text
mpeg1_cuvid        pgssub             theora
mpeg1video         pictor             thp
mpeg2_cuvid        pixlet             tiertexseqvideo
mpeg2video         pjs                tiff
mpeg4              png                tmv
mpeg4_cuvid        ppm                truehd
mpegvideo          prores             truemotion1
mpl2               prores_lgpl            truemotion2
msa1               psd                truemotion2rt
msmpeg4v1          ptx                truespeech
msmpeg4v2          qcelp              tscc
msmpeg4v3          qdm2               tscc2
msrle              qdmc               tta
mss1               qdraw              twinvq
mss2               qpeg               txd
msvideo1           qtrle              ulti
mszh               r10k               utvideo
mts2               r210               v210
mvc1               ra_144             v210x
mvc2               ra_288             v308
mxpeg              ralf               v408
nellymoser         rawvideo           v410
nuv            realtext           vb
on2avc             rl2                vble
opus               roq                vc1
paf_audio          roq_dpcm           vc1_cuvid
paf_video          rpza               vc1image
pam            rscc               vcr1
pbm            rv10               vmdaudio
pcm_alaw           rv20               vmdvideo
pcm_bluray         rv30               vmnc
pcm_dvd            rv40               vorbis
pcm_f16le          s302m              vp3
pcm_f24le          sami               vp5
pcm_f32be          sanm               vp6
pcm_f32le          scpr               vp6a
pcm_f64be          screenpresso           vp6f
pcm_f64le          sdx2_dpcm              vp7
pcm_lxf            sgi                vp8
pcm_mulaw          sgirle             vp8_cuvid
pcm_s16be          sheervideo             vp9
pcm_s16be_planar       shorten            vp9_cuvid
pcm_s16le          sipr               vplayer
pcm_s16le_planar       smackaud           vqa
pcm_s24be          smacker            wavpack
pcm_s24daud        smc                webp
pcm_s24le          smvjpeg            webvtt
pcm_s24le_planar       snow               wmalossless
pcm_s32be          sol_dpcm           wmapro
pcm_s32le          sonic              wmav1
pcm_s32le_planar       sp5x               wmav2
pcm_s64be          speedhq            wmavoice
pcm_s64le          srt                wmv1
wmv2               xbm                y41p
wmv3               xface              ylc
wmv3image          xl                 yop
wnv1               xma1               yuv4
ws_snd1            xma2               zero12v
xan_dpcm           xpm                zerocodec
xan_wc3            xsub               zlib
xan_wc4            xwd                zmbv
xbin

Enabled encoders:

Enabled hwaccels:

Enabled parsers:
aac            dvdsub             opus
aac_latm           flac               png
ac3            g729               pnm
adx            gsm                rv30
bmp            h261               rv40
cavsvideo          h263               sipr
cook               h264               tak
dca            hevc               vc1
dirac              mjpeg              vorbis
dnxhd              mlp                vp3
dpx            mpeg4video             vp8
dvaudio            mpegaudio              vp9
dvbsub             mpegvideo              xma
dvd_nav

Enabled demuxers:
aa             flic               mgsts
aac            flv                microdvd
ac3            fourxm             mjpeg
acm            frm                mjpeg_2000
act            fsb                mlp
adf            g722               mlv
adp            g723_1             mm
ads            g729               mmf
adx            genh               mov
aea            gif                mp3
afc            gsm                mpc
aiff               gxf                mpc8
aix            h261               mpegps
amr            h263               mpegts
anm            h264               mpegtsraw
apc            hevc               mpegvideo
ape            hls                mpjpeg
apng               hnm                mpl2
aqtitle            ico                mpsub
asf            idcin              msf
asf_o              idf                msnwc_tcp
ass            iff                mtaf
ast            ilbc               mtv
au             image2             musx
avi            image2_alias_pix       mv
avr            image2_brender_pix         mvi
avs            image2pipe             mxf
bethsoftvid        image_bmp_pipe         mxg
bfi            image_dds_pipe         nc
bfstm              image_dpx_pipe         nistsphere
bink               image_exr_pipe         nsv
bintext            image_j2k_pipe         nut
bit            image_jpeg_pipe        nuv
bmv            image_jpegls_pipe          ogg
boa            image_pam_pipe         oma
brstm              image_pbm_pipe         paf
c93            image_pcx_pipe         pcm_alaw
caf            image_pgm_pipe         pcm_f32be
cavsvideo          image_pgmyuv_pipe          pcm_f32le
cdg            image_pictor_pipe          pcm_f64be
cdxl               image_png_pipe         pcm_f64le
cine               image_ppm_pipe         pcm_mulaw
concat             image_psd_pipe         pcm_s16be
data               image_qdraw_pipe       pcm_s16le
daud               image_sgi_pipe         pcm_s24be
dcstr              image_sunrast_pipe         pcm_s24le
dfa            image_tiff_pipe        pcm_s32be
dirac              image_webp_pipe        pcm_s32le
dnxhd              image_xpm_pipe         pcm_s8
dsf            ingenient              pcm_u16be
dsicin             ipmovie            pcm_u16le
dss            ircam              pcm_u24be
dts            iss                pcm_u24le
dtshd              iv8                pcm_u32be
dv             ivf                pcm_u32le
dvbsub             ivr                pcm_u8
dvbtxt             jacosub            pjs
dxa            jv                 pmp
ea             live_flv           pva
ea_cdata           lmlm4              pvf
eac3               loas               qcp
epaf               lrc                r3d
ffm            lvf                rawvideo
ffmetadata         lxf                realtext
filmstrip          m4v                redspark
flac               matroska           rl2
rm             srt                vmd
roq            stl                vobsub
rpl            str                voc
rsd            subviewer              vpk
rso            subviewer1             vplayer
rtp            sup                vqf
rtsp               svag               w64
sami               swf                wav
sap            tak                wc3
sbg            tedcaptions            webm_dash_manifest
scc            thp                webvtt
sdp            threedostr             wsaud
sdr2               tiertexseq             wsd
sds            tmv                wsvqa
sdx            truehd             wtv
segafilm           tta                wv
shorten            tty                wve
siff               txd                xa
sln            v210               xbin
smacker            v210x              xmv
smjpeg             vag                xvag
smush              vc1                xwma
sol            vc1t               yop
sox            vivo               yuv4mpegpipe
spdif

Enabled muxers:

Enabled protocols:
async              icecast            prompeg
cache              ijkhttphook            rtmp
concat             ijkio              rtmpt
crypto             ijklongurl             rtp
data               ijkmediadatasource         srtp
ffrtmphttp         ijksegment             subfile
file               ijktcphook             tcp
ftp            md5                tee
gopher             mmsh               udp
hls            mmst               udplite
http               pipe               unix
httpproxy

Enabled filters:
abench             bwdif              hqx
abitscope          cellauto           hstack
acompressor        channelmap             hue
acrossfade         channelsplit           hwdownload
acrusher           chorus             hwmap
adelay             chromakey              hwupload
adrawgraph         ciescope           hwupload_cuda
aecho              codecview              hysteresis
aemphasis          color              idet
aeval              colorbalance           il
aevalsrc           colorchannelmixer          inflate
afade              colorkey           interleave
afftfilt           colorlevels            join
aformat            colorspace             lenscorrection
agate              compand            life
ahistogram         compensationdelay          loop
ainterleave        concat             loudnorm
alimiter           convolution            lowpass
allpass            copy               lut
allrgb             crop               lut2
allyuv             crystalizer            lut3d
aloop              curves             lutrgb
alphaextract           datascope              lutyuv
alphamerge         dcshift            mandelbrot
amerge             dctdnoiz           maskedclamp
ametadata          deband             maskedmerge
amix               decimate           mergeplanes
amovie             deflate            mestimate
anequalizer        dejudder           metadata
anoisesrc          deshake            midequalizer
anull              detelecine             minterpolate
anullsink          dilation           movie
anullsrc           displace           negate
apad               drawbox            nlmeans
aperms             drawgraph              noformat
aphasemeter        drawgrid           noise
aphaser            dynaudnorm             null
apulsator          earwax             nullsink
arealtime          ebur128            nullsrc
aresample          edgedetect             overlay
areverse           elbg               pad
aselect            equalizer              palettegen
asendcmd           erosion            paletteuse
asetnsamples           extractplanes          pan
asetpts            extrastereo            perms
asetrate           fade               pixdesctest
asettb             fftfilt            premultiply
ashowinfo          field              prewitt
asidedata          fieldhint              psnr
asplit             fieldmatch             qp
astats             fieldorder             random
astreamselect          firequalizer           readeia608
atadenoise         flanger            readvitc
atempo             format             realtime
atrim              fps                remap
avectorscope           framepack              removegrain
avgblur            framerate              removelogo
bandpass           framestep              replaygain
bandreject         gblur              reverse
bass               gradfun            rgbtestsrc
bbox               haldclut           rotate
bench              haldclutsrc            scale
biquad             hdcd               scale2ref
bitplanenoise          hflip              select
blackdetect        highpass           selectivecolor
blend              histogram              sendcmd
separatefields         silencedetect          tile
setdar             silenceremove          transpose
setfield           sine               treble
setpts             smptebars              tremolo
setsar             smptehdbars            trim
settb              sobel              unsharp
showcqt            spectrumsynth          vectorscope
showfreqs          split              vflip
showinfo           ssim               vibrato
showpalette        stereotools            vignette
showspectrum           stereowiden            volume
showspectrumpic        streamselect           volumedetect
showvolume         swaprect           vstack
showwaves          swapuv             w3fdif
showwavespic           tblend             waveform
shuffleframes          telecine           weave
shuffleplanes          testsrc            xbr
sidechaincompress      testsrc2           yadif
sidechaingate          threshold              yuvtestsrc
sidedata           thumbnail              zoompan
signalstats

Enabled bsfs:
aac_adtstoasc          hevc_mp4toannexb       mpeg4_unpack_bframes
chomp              imx_dump_header        noise
dca_core           mjpeg2jpeg             remove_extradata
dump_extradata         mjpega_dump_header         text2movsub
extract_extradata      mov2textsub            vp9_superframe
h264_mp4toannexb       mp3_header_decompress

Enabled indevs:

Enabled outdevs:

License: LGPL version 2.1 or later
Creating configuration files ...

WARNING: x86_64-linux-android-pkg-config not found, library detection may fail.

--------------------
[*] compile ffmpeg
--------------------
libavfilter/avfiltergraph.c: In function 'avfilter_graph_free':
libavfilter/avfiltergraph.c:132:5: warning: 'resample_lavr_opts' is deprecated (declared at libavfilter/avfilter.h:847) [-Wdeprecated-declarations]
     av_freep(&(*graph)->resample_lavr_opts);
     ^
libavfilter/lavfutils.c: In function 'ff_load_image':
libavfilter/lavfutils.c:53:5: warning: 'codec' is deprecated (declared at ./libavformat/avformat.h:898) [-Wdeprecated-declarations]
     codec_ctx = format_ctx->streams[0]->codec;
     ^
libavfilter/lavfutils.c:79:5: warning: 'avcodec_decode_video2' is deprecated (declared at ./libavcodec/avcodec.h:4892) [-Wdeprecated-declarations]
     ret = avcodec_decode_video2(codec_ctx, frame, &frame_decoded, &pkt);
     ^
libavfilter/src_movie.c: In function 'movie_push_frame':
libavfilter/src_movie.c:524:9: warning: 'avcodec_decode_video2' is deprecated (declared at ./libavcodec/avcodec.h:4892) [-Wdeprecated-declarations]
         ret = avcodec_decode_video2(st->codec_ctx, frame, &got_frame, pkt);
         ^
libavfilter/src_movie.c:527:9: warning: 'avcodec_decode_audio4' is deprecated (declared at ./libavcodec/avcodec.h:4843) [-Wdeprecated-declarations]
         ret = avcodec_decode_audio4(st->codec_ctx, frame, &got_frame, pkt);
         ^
libavfilter/vf_colorspace.c: In function 'fill_rgb2xyz_table':
libavfilter/vf_colorspace.c:383:5: warning: passing argument 1 of 'invert_matrix3x3' from incompatible pointer type
     invert_matrix3x3(rgb2xyz, i);
     ^
libavfilter/vf_colorspace.c:300:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void invert_matrix3x3(const double in[3][3], double out[3][3])
             ^
libavfilter/vf_colorspace.c: In function 'fill_whitepoint_conv_table':
libavfilter/vf_colorspace.c:447:5: warning: passing argument 3 of 'mul3x3' from incompatible pointer type
     mul3x3(tmp, ma, fac);
     ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavfilter/vf_colorspace.c:448:5: warning: passing argument 2 of 'mul3x3' from incompatible pointer type
     mul3x3(out, tmp, mai);
     ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavfilter/vf_colorspace.c:448:5: warning: passing argument 3 of 'mul3x3' from incompatible pointer type
     mul3x3(out, tmp, mai);
     ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavfilter/vf_colorspace.c: In function 'convert':
libavfilter/vf_colorspace.c:502:9: warning: passing argument 7 of 's->yuv2yuv' from incompatible pointer type
         s->yuv2yuv(out_data, td->out_linesize, in_data, td->in_linesize, w, h,
         ^
libavfilter/vf_colorspace.c:502:9: note: expected 'const int16_t (*)[3][8]' but argument is of type 'int16_t (*)[3][8]'
libavfilter/vf_colorspace.c:502:9: warning: passing argument 8 of 's->yuv2yuv' from incompatible pointer type
libavfilter/vf_colorspace.c:502:9: note: expected 'const int16_t (*)[8]' but argument is of type 'int16_t (*)[8]'
libavfilter/vf_colorspace.c:524:9: warning: passing argument 7 of 's->yuv2rgb' from incompatible pointer type
         s->yuv2rgb(rgb, s->rgb_stride, in_data, td->in_linesize, w, h,
         ^
libavfilter/vf_colorspace.c:524:9: note: expected 'const int16_t (*)[3][8]' but argument is of type 'int16_t (*)[3][8]'
libavfilter/vf_colorspace.c:529:17: warning: passing argument 5 of 's->dsp.multiply3x3' from incompatible pointer type
                 s->dsp.multiply3x3(rgb, s->rgb_stride, w, h, s->lrgb2lrgb_coeffs);
                 ^
libavfilter/vf_colorspace.c:529:17: note: expected 'const int16_t (*)[3][8]' but argument is of type 'int16_t (*)[3][8]'
libavfilter/vf_colorspace.c:533:13: warning: passing argument 7 of 's->rgb2yuv_fsb' from incompatible pointer type
             s->rgb2yuv_fsb(out_data, td->out_linesize, rgb, s->rgb_stride, w, h,
             ^
libavfilter/vf_colorspace.c:533:13: note: expected 'const int16_t (*)[3][8]' but argument is of type 'int16_t (*)[3][8]'
libavfilter/vf_colorspace.c:536:13: warning: passing argument 7 of 's->rgb2yuv' from incompatible pointer type
             s->rgb2yuv(out_data, td->out_linesize, rgb, s->rgb_stride, w, h,
             ^
libavfilter/vf_colorspace.c:536:13: note: expected 'const int16_t (*)[3][8]' but argument is of type 'int16_t (*)[3][8]'
libavfilter/vf_colorspace.c: In function 'create_filtergraph':
libavfilter/vf_colorspace.c:651:13: warning: passing argument 1 of 'invert_matrix3x3' from incompatible pointer type
             invert_matrix3x3(rgb2xyz, xyz2rgb);
             ^
libavfilter/vf_colorspace.c:300:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void invert_matrix3x3(const double in[3][3], double out[3][3])
             ^
libavfilter/vf_colorspace.c:659:17: warning: passing argument 2 of 'mul3x3' from incompatible pointer type
                 mul3x3(tmp, rgb2xyz, wpconv);
                 ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavfilter/vf_colorspace.c:659:17: warning: passing argument 3 of 'mul3x3' from incompatible pointer type
                 mul3x3(tmp, rgb2xyz, wpconv);
                 ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavfilter/vf_colorspace.c:660:17: warning: passing argument 2 of 'mul3x3' from incompatible pointer type
                 mul3x3(rgb2rgb, tmp, xyz2rgb);
                 ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavfilter/vf_colorspace.c:660:17: warning: passing argument 3 of 'mul3x3' from incompatible pointer type
                 mul3x3(rgb2rgb, tmp, xyz2rgb);
                 ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavfilter/vf_colorspace.c:662:17: warning: passing argument 2 of 'mul3x3' from incompatible pointer type
                 mul3x3(rgb2rgb, rgb2xyz, xyz2rgb);
                 ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavfilter/vf_colorspace.c:662:17: warning: passing argument 3 of 'mul3x3' from incompatible pointer type
                 mul3x3(rgb2rgb, rgb2xyz, xyz2rgb);
                 ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavfilter/vf_colorspace.c:787:13: warning: passing argument 1 of 'invert_matrix3x3' from incompatible pointer type
             invert_matrix3x3(rgb2yuv, yuv2rgb);
             ^
libavfilter/vf_colorspace.c:300:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void invert_matrix3x3(const double in[3][3], double out[3][3])
             ^
libavfilter/vf_colorspace.c:843:13: warning: passing argument 2 of 'mul3x3' from incompatible pointer type
             mul3x3(yuv2yuv, yuv2rgb, rgb2yuv);
             ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavfilter/vf_colorspace.c:843:13: warning: passing argument 3 of 'mul3x3' from incompatible pointer type
             mul3x3(yuv2yuv, yuv2rgb, rgb2yuv);
             ^
libavfilter/vf_colorspace.c:399:13: note: expected 'const double (*)[3]' but argument is of type 'double (*)[3]'
 static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3])
             ^
libavformat/concatdec.c: In function 'detect_stream_specific':
libavformat/concatdec.c:208:9: warning: 'av_bitstream_filter_init' is deprecated (declared at ./libavcodec/avcodec.h:5929) [-Wdeprecated-declarations]
         if (!(bsf = av_bitstream_filter_init("h264_mp4toannexb"))) {
         ^
libavformat/concatdec.c: In function 'concat_read_close':
libavformat/concatdec.c:400:17: warning: 'av_bitstream_filter_close' is deprecated (declared at ./libavcodec/avcodec.h:5973) [-Wdeprecated-declarations]
                 av_bitstream_filter_close(cat->files[i].streams[j].bsf);
                 ^
libavformat/concatdec.c: In function 'filter_packet':
libavformat/concatdec.c:564:9: warning: 'av_bitstream_filter_filter' is deprecated (declared at ./libavcodec/avcodec.h:5961) [-Wdeprecated-declarations]
         ret = av_bitstream_filter_filter(bsf, cs->avctx, NULL,
         ^
libavformat/dump.c: In function 'dump_stream_format':
libavformat/dump.c:462:5: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
     avctx->properties = st->codec->properties;
     ^
libavformat/dump.c:463:5: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
     avctx->codec      = st->codec->codec;
     ^
libavformat/dump.c:464:5: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
     avctx->qmin       = st->codec->qmin;
     ^
libavformat/dump.c:465:5: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
     avctx->qmax       = st->codec->qmax;
     ^
libavformat/dump.c:466:5: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
     avctx->coded_width  = st->codec->coded_width;
     ^
libavformat/dump.c:467:5: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
     avctx->coded_height = st->codec->coded_height;
     ^
libavformat/dump.c:502:9: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
         int tbc = st->codec->time_base.den && st->codec->time_base.num;
         ^
libavformat/dump.c:502:9: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
libavformat/dump.c:514:13: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
             print_fps(1 / av_q2d(st->codec->time_base), "tbc");
             ^
libavformat/tcp.c: In function 'tcp_getaddrinfo_request_free_buffer':
libavformat/tcp.c:127:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     TCPAddrinfoRequest *req = (TCPAddrinfoRequest *)opaque;
     ^
libavformat/utils.c: In function 'avformat_transfer_internal_stream_timing_info':
libavformat/utils.c:5429:5: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
     const AVCodecContext *dec_ctx = ist->codec;
     ^
libavformat/utils.c:5430:5: warning: 'codec' is deprecated (declared at libavformat/avformat.h:898) [-Wdeprecated-declarations]
     AVCodecContext       *enc_ctx = ost->codec;
     ^
libavcodec/avrndec.c: In function 'decode_frame':
libavcodec/avrndec.c:110:9: warning: 'avcodec_decode_video2' is deprecated (declared at libavcodec/avcodec.h:4892) [-Wdeprecated-declarations]
         ret = avcodec_decode_video2(a->mjpeg_avctx, data, got_frame, avpkt);
         ^
libavcodec/bitstream_filter.c: In function 'av_bitstream_filter_next':
libavcodec/bitstream_filter.c:39:5: warning: return discards 'const' qualifier from pointer target type
     return av_bsf_next(&opaque);
     ^
libavcodec/bitstream_filter.c: In function 'av_bitstream_filter_filter':
libavcodec/bitstream_filter.c:132:14: warning: assignment discards 'const' qualifier from pointer target type
     pkt.data = buf;
              ^
In file included from libavcodec/fft_fixed.c:21:0:
libavcodec/fft_template.c:467:6: warning: 'pass_big' defined but not used [-Wunused-function]
 PASS(pass_big)
      ^
libavcodec/fft_template.c:444:13: note: in definition of macro 'PASS'
 static void name(FFTComplex *z, const FFTSample *wre, unsigned int n)\
             ^
In file included from libavcodec/fft_float.c:21:0:
libavcodec/fft_template.c:467:6: warning: 'pass_big' defined but not used [-Wunused-function]
 PASS(pass_big)
      ^
libavcodec/fft_template.c:444:13: note: in definition of macro 'PASS'
 static void name(FFTComplex *z, const FFTSample *wre, unsigned int n)\
             ^
libavcodec/pcm.c:35:20: warning: 'pcm_encode_init' defined but not used [-Wunused-function]
 static av_cold int pcm_encode_init(AVCodecContext *avctx)
                    ^
libavcodec/pcm.c:84:12: warning: 'pcm_encode_frame' defined but not used [-Wunused-function]
 static int pcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
            ^
libavcodec/smvjpegdec.c: In function 'smvjpeg_decode_frame':
libavcodec/smvjpegdec.c:162:9: warning: 'avcodec_decode_video2' is deprecated (declared at libavcodec/avcodec.h:4892) [-Wdeprecated-declarations]
         ret = avcodec_decode_video2(s->avctx, mjpeg_data, &s->mjpeg_data_size, avpkt);
         ^
libavcodec/tscc.c: In function 'decode_frame':
libavcodec/tscc.c:81:26: warning: assignment discards 'const' qualifier from pointer target type
     c->zstream.next_in   = buf;
                          ^
libavcodec/utils.c: In function 'avcodec_encode_audio2':
libavcodec/utils.c:1930:13: warning: 'av_dup_packet' is deprecated (declared at libavcodec/avcodec.h:4526) [-Wdeprecated-declarations]
             if (av_dup_packet(avpkt) < 0) {
             ^
libavcodec/utils.c: In function 'avcodec_encode_video2':
libavcodec/utils.c:2026:13: warning: 'av_dup_packet' is deprecated (declared at libavcodec/avcodec.h:4526) [-Wdeprecated-declarations]
             if (av_dup_packet(avpkt) < 0) {
             ^
libavcodec/utils.c: In function 'do_decode':
libavcodec/utils.c:2822:9: warning: 'avcodec_decode_video2' is deprecated (declared at libavcodec/utils.c:2227) [-Wdeprecated-declarations]
         ret = avcodec_decode_video2(avctx, avctx->internal->buffer_frame,
         ^
libavcodec/utils.c:2827:9: warning: 'avcodec_decode_audio4' is deprecated (declared at libavcodec/utils.c:2336) [-Wdeprecated-declarations]
         ret = avcodec_decode_audio4(avctx, avctx->internal->buffer_frame,
         ^
libavcodec/utils.c: In function 'do_encode':
libavcodec/utils.c:2979:9: warning: 'avcodec_encode_video2' is deprecated (declared at libavcodec/utils.c:1968) [-Wdeprecated-declarations]
         ret = avcodec_encode_video2(avctx, avctx->internal->buffer_pkt,
         ^
libavcodec/utils.c:2982:9: warning: 'avcodec_encode_audio2' is deprecated (declared at libavcodec/utils.c:1822) [-Wdeprecated-declarations]
         ret = avcodec_encode_audio2(avctx, avctx->internal->buffer_pkt,
         ^
libswscale/output.c:1273:21: warning: 'yuv2rgba64be_X_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, rgba64be, AV_PIX_FMT_RGBA64BE, 1, 1)
                     ^
libswscale/output.c:1224:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _X_c(SwsContext *c, const int16_t *lumFilter, \
             ^
libswscale/output.c:1273:21: warning: 'yuv2rgba64be_2_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, rgba64be, AV_PIX_FMT_RGBA64BE, 1, 1)
                     ^
libswscale/output.c:1241:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _2_c(SwsContext *c, const int16_t *_buf[2], \
             ^
libswscale/output.c:1273:21: warning: 'yuv2rgba64be_1_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, rgba64be, AV_PIX_FMT_RGBA64BE, 1, 1)
                     ^
libswscale/output.c:1255:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _1_c(SwsContext *c, const int16_t *_buf0, \
             ^
libswscale/output.c:1274:21: warning: 'yuv2rgba64le_X_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, rgba64le, AV_PIX_FMT_RGBA64LE, 1, 1)
                     ^
libswscale/output.c:1224:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _X_c(SwsContext *c, const int16_t *lumFilter, \
             ^
libswscale/output.c:1274:21: warning: 'yuv2rgba64le_2_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, rgba64le, AV_PIX_FMT_RGBA64LE, 1, 1)
                     ^
libswscale/output.c:1241:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _2_c(SwsContext *c, const int16_t *_buf[2], \
             ^
libswscale/output.c:1274:21: warning: 'yuv2rgba64le_1_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, rgba64le, AV_PIX_FMT_RGBA64LE, 1, 1)
                     ^
libswscale/output.c:1255:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _1_c(SwsContext *c, const int16_t *_buf0, \
             ^
libswscale/output.c:1277:21: warning: 'yuv2bgra64be_X_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, bgra64be, AV_PIX_FMT_BGRA64BE, 1, 1)
                     ^
libswscale/output.c:1224:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _X_c(SwsContext *c, const int16_t *lumFilter, \
             ^
libswscale/output.c:1277:21: warning: 'yuv2bgra64be_2_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, bgra64be, AV_PIX_FMT_BGRA64BE, 1, 1)
                     ^
libswscale/output.c:1241:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _2_c(SwsContext *c, const int16_t *_buf[2], \
             ^
libswscale/output.c:1277:21: warning: 'yuv2bgra64be_1_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, bgra64be, AV_PIX_FMT_BGRA64BE, 1, 1)
                     ^
libswscale/output.c:1255:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _1_c(SwsContext *c, const int16_t *_buf0, \
             ^
libswscale/output.c:1278:21: warning: 'yuv2bgra64le_X_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, bgra64le, AV_PIX_FMT_BGRA64LE, 1, 1)
                     ^
libswscale/output.c:1224:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _X_c(SwsContext *c, const int16_t *lumFilter, \
             ^
libswscale/output.c:1278:21: warning: 'yuv2bgra64le_2_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, bgra64le, AV_PIX_FMT_BGRA64LE, 1, 1)
                     ^
libswscale/output.c:1241:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _2_c(SwsContext *c, const int16_t *_buf[2], \
             ^
libswscale/output.c:1278:21: warning: 'yuv2bgra64le_1_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64, bgra64le, AV_PIX_FMT_BGRA64LE, 1, 1)
                     ^
libswscale/output.c:1255:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _1_c(SwsContext *c, const int16_t *_buf0, \
             ^
libswscale/output.c:1286:21: warning: 'yuv2rgba64be_full_X_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, rgba64be_full, AV_PIX_FMT_RGBA64BE, 1, 1)
                     ^
libswscale/output.c:1224:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _X_c(SwsContext *c, const int16_t *lumFilter, \
             ^
libswscale/output.c:1286:21: warning: 'yuv2rgba64be_full_2_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, rgba64be_full, AV_PIX_FMT_RGBA64BE, 1, 1)
                     ^
libswscale/output.c:1241:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _2_c(SwsContext *c, const int16_t *_buf[2], \
             ^
libswscale/output.c:1286:21: warning: 'yuv2rgba64be_full_1_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, rgba64be_full, AV_PIX_FMT_RGBA64BE, 1, 1)
                     ^
libswscale/output.c:1255:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _1_c(SwsContext *c, const int16_t *_buf0, \
             ^
libswscale/output.c:1287:21: warning: 'yuv2rgba64le_full_X_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, rgba64le_full, AV_PIX_FMT_RGBA64LE, 1, 1)
                     ^
libswscale/output.c:1224:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _X_c(SwsContext *c, const int16_t *lumFilter, \
             ^
libswscale/output.c:1287:21: warning: 'yuv2rgba64le_full_2_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, rgba64le_full, AV_PIX_FMT_RGBA64LE, 1, 1)
                     ^
libswscale/output.c:1241:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _2_c(SwsContext *c, const int16_t *_buf[2], \
             ^
libswscale/output.c:1287:21: warning: 'yuv2rgba64le_full_1_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, rgba64le_full, AV_PIX_FMT_RGBA64LE, 1, 1)
                     ^
libswscale/output.c:1255:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _1_c(SwsContext *c, const int16_t *_buf0, \
             ^
libswscale/output.c:1290:21: warning: 'yuv2bgra64be_full_X_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, bgra64be_full, AV_PIX_FMT_BGRA64BE, 1, 1)
                     ^
libswscale/output.c:1224:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _X_c(SwsContext *c, const int16_t *lumFilter, \
             ^
libswscale/output.c:1290:21: warning: 'yuv2bgra64be_full_2_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, bgra64be_full, AV_PIX_FMT_BGRA64BE, 1, 1)
                     ^
libswscale/output.c:1241:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _2_c(SwsContext *c, const int16_t *_buf[2], \
             ^
libswscale/output.c:1290:21: warning: 'yuv2bgra64be_full_1_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, bgra64be_full, AV_PIX_FMT_BGRA64BE, 1, 1)
                     ^
libswscale/output.c:1255:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _1_c(SwsContext *c, const int16_t *_buf0, \
             ^
libswscale/output.c:1291:21: warning: 'yuv2bgra64le_full_X_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, bgra64le_full, AV_PIX_FMT_BGRA64LE, 1, 1)
                     ^
libswscale/output.c:1224:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _X_c(SwsContext *c, const int16_t *lumFilter, \
             ^
libswscale/output.c:1291:21: warning: 'yuv2bgra64le_full_2_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, bgra64le_full, AV_PIX_FMT_BGRA64LE, 1, 1)
                     ^
libswscale/output.c:1241:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _2_c(SwsContext *c, const int16_t *_buf[2], \
             ^
libswscale/output.c:1291:21: warning: 'yuv2bgra64le_full_1_c' defined but not used [-Wunused-function]
 YUV2PACKED16WRAPPER(yuv2, rgba64_full, bgra64le_full, AV_PIX_FMT_BGRA64LE, 1, 1)
                     ^
libswscale/output.c:1255:13: note: in definition of macro 'YUV2PACKED16WRAPPER'
 static void name ## ext ## _1_c(SwsContext *c, const int16_t *_buf0, \
             ^
libavutil/../compat/strtod.c: In function 'avpriv_strtod':
libavutil/../compat/strtod.c:55:13: warning: assignment discards 'const' qualifier from pointer target type
         end = nptr + 8;
             ^
libavutil/../compat/strtod.c:58:13: warning: assignment discards 'const' qualifier from pointer target type
         end = nptr + 3;
             ^
libavutil/../compat/strtod.c:61:13: warning: assignment discards 'const' qualifier from pointer target type
         end = nptr + 9;
             ^
libavutil/../compat/strtod.c:64:13: warning: assignment discards 'const' qualifier from pointer target type
         end = nptr + 4;
             ^
libavutil/../compat/strtod.c:67:13: warning: assignment discards 'const' qualifier from pointer target type
         end = nptr + 9;
             ^
libavutil/../compat/strtod.c:70:13: warning: assignment discards 'const' qualifier from pointer target type
         end = nptr + 4;
             ^
libavutil/../compat/strtod.c:73:15: warning: passing argument 1 of 'check_nan_suffix' discards 'const' qualifier from pointer target type
         end = check_nan_suffix(nptr + 3);
               ^
libavutil/../compat/strtod.c:28:14: note: expected 'char *' but argument is of type 'const char *'
 static char *check_nan_suffix(char *s)
              ^
libavutil/../compat/strtod.c:77:15: warning: passing argument 1 of 'check_nan_suffix' discards 'const' qualifier from pointer target type
         end = check_nan_suffix(nptr + 4);
               ^
libavutil/../compat/strtod.c:28:14: note: expected 'char *' but argument is of type 'const char *'
 static char *check_nan_suffix(char *s)
              ^
INSTALL libavfilter/libavfilter.a
INSTALL libavformat/libavformat.a
INSTALL libavcodec/libavcodec.a
INSTALL libswresample/libswresample.a
INSTALL libswscale/libswscale.a
INSTALL libavutil/libavutil.a
INSTALL libavfilter/avfilter.h
INSTALL libavfilter/avfiltergraph.h
INSTALL libavfilter/buffersink.h
INSTALL libavfilter/buffersrc.h
INSTALL libavfilter/version.h
INSTALL libavfilter/libavfilter.pc
INSTALL libavformat/avformat.h
INSTALL libavformat/avio.h
INSTALL libavformat/version.h
INSTALL libavformat/avc.h
INSTALL libavformat/url.h
INSTALL libavformat/internal.h
INSTALL libavformat/libavformat.pc
INSTALL libavcodec/avcodec.h
INSTALL libavcodec/avdct.h
INSTALL libavcodec/avfft.h
INSTALL libavcodec/d3d11va.h
INSTALL libavcodec/dirac.h
INSTALL libavcodec/dv_profile.h
INSTALL libavcodec/dxva2.h
INSTALL libavcodec/jni.h
INSTALL libavcodec/mediacodec.h
INSTALL libavcodec/qsv.h
INSTALL libavcodec/vaapi.h
INSTALL libavcodec/vda.h
INSTALL libavcodec/vdpau.h
INSTALL libavcodec/version.h
INSTALL libavcodec/videotoolbox.h
INSTALL libavcodec/vorbis_parser.h
INSTALL libavcodec/xvmc.h
INSTALL libavcodec/libavcodec.pc
INSTALL libswresample/swresample.h
INSTALL libswresample/version.h
INSTALL libswresample/libswresample.pc
INSTALL libswscale/swscale.h
INSTALL libswscale/version.h
INSTALL libswscale/libswscale.pc
INSTALL libavutil/adler32.h
INSTALL libavutil/aes.h
INSTALL libavutil/aes_ctr.h
INSTALL libavutil/application.h
INSTALL libavutil/attributes.h
INSTALL libavutil/audio_fifo.h
INSTALL libavutil/avassert.h
INSTALL libavutil/avstring.h
INSTALL libavutil/avutil.h
INSTALL libavutil/base64.h
INSTALL libavutil/blowfish.h
INSTALL libavutil/bprint.h
INSTALL libavutil/bswap.h
INSTALL libavutil/buffer.h
INSTALL libavutil/cast5.h
INSTALL libavutil/camellia.h
INSTALL libavutil/channel_layout.h
INSTALL libavutil/common.h
INSTALL libavutil/cpu.h
INSTALL libavutil/crc.h
INSTALL libavutil/des.h
INSTALL libavutil/dict.h
INSTALL libavutil/display.h
INSTALL libavutil/downmix_info.h
INSTALL libavutil/dns_cache.h
INSTALL libavutil/error.h
INSTALL libavutil/eval.h
INSTALL libavutil/fifo.h
INSTALL libavutil/file.h
INSTALL libavutil/frame.h
INSTALL libavutil/hash.h
INSTALL libavutil/hmac.h
INSTALL libavutil/hwcontext.h
INSTALL libavutil/hwcontext_cuda.h
INSTALL libavutil/hwcontext_dxva2.h
INSTALL libavutil/hwcontext_qsv.h
INSTALL libavutil/hwcontext_vaapi.h
INSTALL libavutil/hwcontext_vdpau.h
INSTALL libavutil/imgutils.h
INSTALL libavutil/intfloat.h
INSTALL libavutil/intreadwrite.h
INSTALL libavutil/lfg.h
INSTALL libavutil/log.h
INSTALL libavutil/macros.h
INSTALL libavutil/mathematics.h
INSTALL libavutil/mastering_display_metadata.h
INSTALL libavutil/md5.h
INSTALL libavutil/mem.h
INSTALL libavutil/motion_vector.h
INSTALL libavutil/murmur3.h
INSTALL libavutil/opt.h
INSTALL libavutil/parseutils.h
INSTALL libavutil/pixdesc.h
INSTALL libavutil/pixelutils.h
INSTALL libavutil/pixfmt.h
INSTALL libavutil/random_seed.h
INSTALL libavutil/rc4.h
INSTALL libavutil/rational.h
INSTALL libavutil/replaygain.h
INSTALL libavutil/ripemd.h
INSTALL libavutil/samplefmt.h
INSTALL libavutil/sha.h
INSTALL libavutil/sha512.h
INSTALL libavutil/spherical.h
INSTALL libavutil/stereo3d.h
INSTALL libavutil/threadmessage.h
INSTALL libavutil/time.h
INSTALL libavutil/timecode.h
INSTALL libavutil/timestamp.h
INSTALL libavutil/tree.h
INSTALL libavutil/twofish.h
INSTALL libavutil/version.h
INSTALL libavutil/xtea.h
INSTALL libavutil/tea.h
INSTALL libavutil/thread.h
INSTALL libavutil/lzo.h
INSTALL libavutil/avconfig.h
INSTALL libavutil/ffversion.h
INSTALL libavutil/libavutil.pc

--------------------
[*] link ffmpeg
--------------------

link compat/*.o
link libavcodec/*.o
link libavcodec/x86/*.o
link libavfilter/*.o
link libavfilter/x86/*.o
link libavformat/*.o
link libavutil/*.o
link libavutil/x86/*.o
link libswresample/*.o
link libswresample/x86/*.o
link libswscale/*.o
link libswscale/x86/*.o

--------------------
[*] create files for shared ffmpeg
--------------------

--------------------
[*] Finished
--------------------
# to continue to build ijkplayer, run script below,
sh compile-ijk.sh

再執行編譯:

cd ..
./compile-ijk.sh all

下面是部分日誌:

/home/lcp/Aislli/Dev/android-ndk-r10e/sources/android/cpufeatures/cpu-features.c:319:1: warning: 'parse_hexadecimal' defined but not used [-Wunused-function]
 parse_hexadecimal(const char* input, const char* limit, int* result)
 ^
[x86_64] StaticLibrary  : libcpufeatures.a
[x86_64] Compile++      : yuv_static <= compare.cc
[x86_64] Compile++      : yuv_static <= compare_common.cc
[x86_64] Compile++      : yuv_static <= compare_posix.cc
[x86_64] Compile++      : yuv_static <= convert.cc
[x86_64] Compile++      : yuv_static <= convert_argb.cc
[x86_64] Compile++      : yuv_static <= convert_from.cc
[x86_64] Compile++      : yuv_static <= convert_from_argb.cc
[x86_64] Compile++      : yuv_static <= convert_to_argb.cc
[x86_64] Compile++      : yuv_static <= convert_to_i420.cc
[x86_64] Compile++      : yuv_static <= cpu_id.cc
[x86_64] Compile++      : yuv_static <= format_conversion.cc
[x86_64] Compile++      : yuv_static <= planar_functions.cc
[x86_64] Compile++      : yuv_static <= rotate.cc
[x86_64] Compile++      : yuv_static <= rotate_argb.cc
[x86_64] Compile++      : yuv_static <= rotate_mips.cc
[x86_64] Compile++      : yuv_static <= row_any.cc
[x86_64] Compile++      : yuv_static <= row_common.cc
[x86_64] Compile++      : yuv_static <= row_mips.cc
[x86_64] Compile++      : yuv_static <= row_posix.cc
[x86_64] Compile++      : yuv_static <= scale.cc
[x86_64] Compile++      : yuv_static <= scale_argb.cc
[x86_64] Compile++      : yuv_static <= scale_common.cc
[x86_64] Compile++      : yuv_static <= scale_mips.cc
[x86_64] Compile++      : yuv_static <= scale_posix.cc
[x86_64] Compile++      : yuv_static <= video_common.cc
[x86_64] StaticLibrary  : libyuv_static.a
[x86_64] Compile        : ijkj4a <= j4a_allclasses.c
[x86_64] Compile        : ijkj4a <= j4a_base.c
[x86_64] Compile        : ijkj4a <= AudioTrack.c
[x86_64] Compile        : ijkj4a <= MediaCodec.c
[x86_64] Compile        : ijkj4a <= MediaFormat.c
[x86_64] Compile        : ijkj4a <= PlaybackParams.c
[x86_64] Compile        : ijkj4a <= Build.c
[x86_64] Compile        : ijkj4a <= Bundle.c
[x86_64] Compile        : ijkj4a <= Buffer.c
[x86_64] Compile        : ijkj4a <= ByteBuffer.c
[x86_64] Compile        : ijkj4a <= ArrayList.c
[x86_64] Compile        : ijkj4a <= IMediaDataSource.c
[x86_64] Compile        : ijkj4a <= IAndroidIO.c
[x86_64] Compile        : ijkj4a <= IjkMediaPlayer.c
[x86_64] Compile        : ijkj4a <= AudioTrack.util.c
[x86_64] Compile        : ijkj4a <= ByteBuffer.util.c
[x86_64] StaticLibrary  : libijkj4a.a
[x86_64] SharedLibrary  : libijksdl.so
[x86_64] Compile        : android-ndk-profiler <= prof.c
[x86_64] StaticLibrary  : libandroid-ndk-profiler.a
[x86_64] Compile++      : ijksoundtouch <= AAFilter.cpp
[x86_64] Compile++      : ijksoundtouch <= FIFOSampleBuffer.cpp
[x86_64] Compile++      : ijksoundtouch <= FIRFilter.cpp
[x86_64] Compile++      : ijksoundtouch <= cpu_detect_x86.cpp
[x86_64] Compile++      : ijksoundtouch <= sse_optimized.cpp
[x86_64] Compile++      : ijksoundtouch <= RateTransposer.cpp
[x86_64] Compile++      : ijksoundtouch <= InterpolateCubic.cpp
[x86_64] Compile++      : ijksoundtouch <= InterpolateLinear.cpp
[x86_64] Compile++      : ijksoundtouch <= InterpolateShannon.cpp
[x86_64] Compile++      : ijksoundtouch <= TDStretch.cpp
[x86_64] Compile++      : ijksoundtouch <= BPMDetect.cpp
[x86_64] Compile++      : ijksoundtouch <= PeakFinder.cpp
[x86_64] Compile++      : ijksoundtouch <= SoundTouch.cpp
[x86_64] Compile++      : ijksoundtouch <= mmx_optimized.cpp
[x86_64] Compile++      : ijksoundtouch <= ijksoundtouch_wrap.cpp
[x86_64] StaticLibrary  : libijksoundtouch.a
[x86_64] SharedLibrary  : libijkplayer.so
[x86_64] Install        : libijkplayer.so => libs/x86_64/libijkplayer.so
[x86_64] Install        : libijksdl.so => libs/x86_64/libijksdl.so
/home/lcp/Aislli/source/ijkplayer/ijkplayer-android/android

到此,需要的.so文件就生成了。
編譯好後的項目,各cpu的代碼都是分開的,官方代碼裏是把所有的cpu library關聯上,爲了方便測試 ,我把armv7a,arm64等這些library裏編譯好的.so文件都放到了ijkplayer-java下,主項目只需要關聯這一個library。
ijkPlayerDemo

發佈了48 篇原創文章 · 獲贊 53 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章