Webport'ları yapılandırdım, ffmpeg; ve mevcut proje için aşağıdaki Makefile'ı oluşturdum. Ancak, ffmpeg kütüphanesiyle bağlantı kurarak bazı problemlerle karşılaştım.PPAPI'de FFMPEG kitaplığını kullanma: FFmpeg ile Naclports
$ TOOLCHAIN=pnacl make
LINK pnacl/Release/client_unstripped.bc
pnacl/Release/src/client.o: error: undefined reference to 'av_register_all'
make: *** [pnacl/Release/client_unstripped.bc] Error 1
sen, ben burada ne yapıyorum yanlış söyleyebilir benim Makefile aşağıda gösterilmiştir:
VALID_TOOLCHAINS:? = Pnacl glibc çınlama-newlib
NACL_SDK_ROOT = $ (abspath $ kazanmak (CurDir) /../ ..)
HEDEF = istemci
OTHERDIR = src
0.123.INC_DIR = inc
FFMPEG_INC_DIR = ../../toolchain/mac_pnacl/le32-nacl/usr/include
= -I $ (INC_DIR) -I $ (FFMPEG_INC_DIR)
DAHİLiçerir $ (NACL_SDK_ROOT)
CHROME_ARGS + = --allow-NaCI-soket aPI = localhost
LIBS = nacl_io ppapi_cpp PPAPI
/tools/common.mkCFLAGS = -Wall -g -O2 $ (dahil) -L ../../ araç zinciri/mac_pnacl/le32-NaCI/usr/lib -lavformat \ -lvpx -lvorbisenc -lvorbis log G -ltheoraenc -ltheoradec log G -lmp3lame -lm -pthread -lavcodec -lvpx -lvorbisenc -lvorbis log G \ -ltheoraenc -ltheoradec log G -lmp3lame -lm -pthread -lswresample -lm -lavutil -lm -lavdevice
KAYNAKLARI = -lavfilter $ (OTHERDIR) /tcp_util.cc $ (OTHERDIR) /tpool.cc $ (OTHERDIR) /net.cc $ (OTHERDIR) /rtsp_response.cc \ $ (OTHERDIR) /rtsp.cc $ (OTHERDIR)/rtsp_common. cc \ $ (OTHERDIR) /rtsp_client.cc $ (OTHERDIR) /udp_util.cc \ $ (OTHERDIR) /client.cc
common.mk gelen makroları tarafından oluşturulan# Yapı kuralları:
$ (foreach src, $ (KAYNAKLARI), $ (eval $ ( COMPILE_RULE, $ (src diyoruz), $ (CFLAGS))))
# PNaCl iş akışı, hem çıkarılmamış hem de sonlandırılmış/soyulmuş bir ikili kullanır. # NaCl'de, yalnızca Sürüm yapılandırmaları için (Debug değil) soyulmuş bir ikili oluşturur. ifneq (, $ (veya $ (findstring pnacl, $ (TOOLCHAIN)), $ (findstring Sürüm, $ (CONFIG)))) $ (eval $ (çağrı LINK_RULE, $ (TARGET) _unstripped, $ (SOURCES), $ (LIBS), $ (DEPS))) $ (eval $ (çağrı STRIP_RULE, $ (TARGET), $ (TARGET) _unstripped)) else $ (eval $ (çağrı LINK_RULE, $ (TARGET), $ (SOURCES)), $ (KÜTÜPHANELERİNİ), $ (DEPS))) endif
$ (eval $ (call NMF_RULE kütüphane olmuştur, nasıl $ (TARGET),))
Ve burada yoludur, sınıf bağlamında kullanılır.topal VPX, vorbis,:
class VideoDecodePack {
public:
VideoDecodePack() {
av_register_all();
}
};
class ClientInstance : public pp::Instance {
public:
explicit ClientInstance(PP_Instance instance) : pp::Instance(instance){
cses = InitRtspClientSession();
_videoDecoder = new VideoDecodePack();
}
...