2014-12-10 11 views
6

Sto tentando di eseguire la cross-compilazione di GStreamer. La versione è 1.2.3. Il sistema operativo host PC è x86 linux e il sistema operativo di destinazione è MIPSEL linux OS.Qual è il significato di "lista nera" su GStreamer?

Sono riuscito a compilare gstreamer e plug-in per il dispositivo di destinazione. E gst-launch-1.0 potrebbe essere eseguito. Così ho provato ad usare il plugin di base, libgstvideotestsrc. Ma non ha funzionato. Così ho eseguito `` `gst-inspect-1.0 'per ispezionare i plugin, quindi ho trovato il risultato come di seguito.

# gst-inspect-1.0 -b 
Blacklisted files: 
    libgstinterlace.so 
    libgstfbdevsink.so 
    libgstgeometrictransform.so 
    libgstmultifile.so 
    libgstencodebin.so 
    libgstfestival.so 
    libgstlevel.so 
    libgstdvdspu.so 
    libgstauparse.so 
    libgsty4menc.so 
    libgstvideofilter.so 
    libgstvideoscale.so 
    libgstaccurip.so 
    libgstvideoconvert.so 
    libgstaudioparsers.so 
    libgsttcp.so 
    libgstvolume.so 
    libgstcoreelements.so 
    libgstmpegtsdemux.so 
    libgstid3tag.so 
    libgstadpcmdec.so 
    libgstmfc.so 
    libgstrtpmanager.so 
    libgstaudiotestsrc.so 
    libgstdeinterlace.so 
    libgstdebug.so 
    libgstplayback.so 
    libgstspeed.so 
    libgstasfmux.so 
    libgsticydemux.so 
    libgstmpegpsdemux.so 
    libgstalaw.so 
    libgstwavparse.so 
    libgstpnm.so 
    libgstnavigationtest.so 
    libgstcamerabin2.so 
    libgstsdpelem.so 
    libgstisomp4.so 
    libgstliveadder.so 
    libgstmpegtsmux.so 
    libgstautodetect.so 
    libgstmultipart.so 
    libgstvideofiltersbad.so 
    libgstaudioresample.so 
    libgstautoconvert.so 
    libgstdvbsuboverlay.so 
    libgstid3demux.so 
    libgstvideobox.so 
    libgstgio.so 
    libgstdtmf.so 
    libgstremovesilence.so 
    libgstreplaygain.so 
    libgstaudioconvert.so 
    libgstcutter.so 
    libgstgaudieffects.so 
    libgstdvb.so 
    libgstaudiovisualizers.so 
    libgstudp.so 
    libgstimagefreeze.so 
    libgstadder.so 
    libgstpcapparse.so 
    libgstmxf.so 
    libgstshapewipe.so 
    libgstgdp.so 
    libgstwavenc.so 
    libgstshm.so 
    libgstflv.so 
    libgstfreeverb.so 
    libgstoss4audio.so 
    libgstsubenc.so 
    libgstaudiorate.so 
    libgstinter.so 
    libgsttypefindfunctions.so 
    libgstvideorate.so 
    libgstrtp.so 
    libgstcoloreffects.so 
    libgstmpegpsmux.so 
    libgstivtc.so 
    libgstjpegformat.so 
    libgstsmpte.so 
    libgstalphacolor.so 
    libgstsubparse.so 
    libgstaudiofxbad.so 
    libgstvideomixer.so 
    libgstmulaw.so 
    libgstdebugutilsbad.so 
    libgsteffectv.so 
    libgstfieldanalysis.so 
    libgstadpcmenc.so 
    libgstrawparse.so 
    libgstavi.so 
    libgstdataurisrc.so 
    libgstapetag.so 
    libgstinterleave.so 
    libgstmidi.so 
    libgstrtsp.so 
    libgstapp.so 
    libgstalpha.so 
    libgstaudiofx.so 
    libgstvideocrop.so 
    libgstvideotestsrc.so 
    libgstspectrum.so 
    libgstbayer.so 
    libgstaiff.so 
    libgstsegmentclip.so 
    libgstfrei0r.so 

Total count: 106 blacklisted files 

Mi chiedo il significato di "lista nera" e come dovrei affrontare questo problema. Per favore fatemi sapere se avete bisogno di più informazioni per risolvere questo problema.

Ecco la mia configurazione di build per GStreamer.

#PACKAGES: Name + version 
export GST_PLUGIN_BASE="gst-plugins-base-1.2.3" 
export GST_PLUGIN_GOOD="gst-plugins-good-1.2.3" 
export GST_PLUGIN_BAD="gst-plugins-bad-1.2.3" 


#HOST & Build configuration. 
export HOST="mips-linux-gnu" 
export BUILD="i686-pc-linux-gnu" 


#Set path for file system. 
export BUILD_PATH="~~~~~" 
export ROOTFS_PATH="${BUILD_PATH}/rootfs" 
export MIPS_LIB="~~~" 
export INSTALL_PATH="${ROOTFS_PATH}/usr" 
export INSTALL_PATH_LIB="${ROOTFS_PATH}/usr/lib" 

#Compiler options 
export PATH="${PATH}:${INSTALL_PATH}/bin" 
export CFLAGS="-I${ROOTFS_PATH}/usr/include -I${ROOTFS_PATH}/usr/include/glib-2.0 -I${ROOTFS_PATH}/usr/lib/glib-2.0/include -I${ROOTFS_PATH}/usr/include/gstreamer-1.0 -I${ROOTFS_PATH}/usr/include/gio-unix-2.0 -mno-compact-eh -EL" 
export CPPFLAGS="-I${ROOTFS_PATH}/usr/include -I${ROOTFS_PATH}/usr/include/glib-2.0 -I${ROOTFS_PATH}/usr/lib/glib-2.0/include -I${ROOTFS_PATH}/usr/include/gstreamer-1.0 -I${ROOTFS_PATH}/usr/include/gio-unix-2.0 -mno-compact-eh -EL" 
export CXXFLAGS=$CPPFLAGS 
export GST_CHECK_CFLAGS="-I${ROOTFS_PATH}/usr/include -I${ROOTFS_PATH}/usr/include/glib-2.0/include" 
export PKG_CONFIG="/usr/bin/pkg-config" 
export PKG_CONFIG_PATH="${PATH}:${ROOTFS_PATH}/lib/pkgconfig/:${ROOTFS_PATH}/usr/lib/pkgconfig/:${ROOTFS_PATH}/usr/local/lib/pkgconfig/:/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/lib/pkgconfig" 
export LD_LIBRARY_PATH="/lib:/usr/local/lib" 
export CC="~~~mips-linux-gnu-gcc -EL" 
export CXX="~~~mips-linux-gnu-g++ -EL" 



cd ${BUILD_PATH} 


#GStreamer 1.2.3 
#http://greenday96.egloos.com/viewer/4627046 
wget http://gstreamer.freedesktop.org/src/gstreamer/$GSTREAMER.tar.xz 
tar xf $GSTREAMER.tar.xz 
cd $GSTREAMER 
./configure --prefix=$INSTALL_PATH --build=$BUILD --host=$HOST --disable-nls --disable-static 
sudo make 
sudo make install 
cd .. 

#gst-plugin-base 1.2.3 
wget http://gstreamer.freedesktop.org/src/gst-plugins-base/$GST_PLUGIN_BASE.tar.xz 
tar xf $GST_PLUGIN_BASE.tar.xz 
cd $GST_PLUGIN_BASE 
./configure --prefix=$INSTALL_PATH --build=$BUILD --host=$HOST --disable-nls --disable-static --disable-examples --disable-pango 
sudo make 
sudo make install 
cd .. 


# gst-plugin-good-1.2.3 
# http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.2.3.tar.xz 
wget http://gstreamer.freedesktop.org/src/gst-plugins-good/$GST_PLUGIN_GOOD.tar.xz 
tar xf $GST_PLUGIN_GOOD.tar.xz 
cd $GST_PLUGIN_GOOD 
./configure --prefix=$INSTALL_PATH --build=$BUILD --host=$HOST --disable-nls --disable-static --disable-valgrind --disable-equalizer --disable-flx --disable-goom --disable-goom2k1 --disable-matroska --disable-monoscope --disable-oss --disable-cairo --disable-gdk_pixbuf --disable-soup --disable-libpng --disable-gst_v4l2 
sudo make 
sudo make install 
cd .. 


# gst-plugin-bad-1.2.3 
# http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.2.3.tar.xz 
wget http://gstreamer.freedesktop.org/src/gst-plugins-bad/$GST_PLUGIN_BAD.tar.xz 
tar xf $GST_PLUGIN_BAD.tar.xz 
cd $GST_PLUGIN_BAD 
./configure --prefix=$INSTALL_PATH --build=$BUILD --host=$HOST --disable-nls --disable-static --disable-y4m --disable-siren --disable-librfb --disable-yadif --disable-smooth --disable-videoparsers --disable-decklink --disable-valgrind --disable-directfb --disable-examples 
sudo make 
sudo make install 
cd .. 

risposta

4

se si vuole sapere con certezza perché questi plugin sono nella lista nera, è possibile rimuovere "Registry.dat" (RUN individuare per scoprire la sua posizione), quindi eseguire di nuovo GST-ispezionare, i plugin sarà esaminato una volta di nuovo e la ragione per la loro lista nera dovrebbe essere stampata.

Ci possono essere diversi motivi per cui sono nella lista nera, se lo fai dovresti trovarli.

In alternativa, è anche possibile eseguire GST-ispezionare location_of_the_dynamic_library.so

+3

È '' '/ root/.cache/gstreamer-1.0/registry.mips.bin'''. Sto controllando questo file. La ringrazio molto per la risposta. –

+0

In registry.mips.bin, non riesco a trovare alcuna informazione significativa. Mostra solo che un plug-in è elencato in nero. Non riesco a capire perché sia ​​elencato in nero. –

0

ho trovato il motivo. È GLIB, non GStreamer.

Per creare GLIB per mipsel, dovrei impostare glib_cv_uscore=no. Dipende dal dispositivo incorporato. Quindi, controlla le specifiche della CPU dell'hardware di destinazione. Così ho creato lo script di compilazione per GLIB come di seguito.

#Glib 2.42.1 
wget ftp://ftp.gnome.org/pub/gnome/sources/glib/2.42/$GLIB.tar.xz 
tar xf $GLIB.tar.xz 
cd $GLIB 

#Build for MIPS 
echo "ac_cv_func_posix_getgrgid_r=yes" > mips.cache 
echo "ac_cv_func_posix_getpwuid_r=yes" >> mips.cache 
echo "glib_cv_stack_grows=no" >> mips.cache 
echo "glib_cv_uscore=no" >>mips.cache 
./configure --prefix=$INSTALL_PATH --host=$HOST --cache-file=mips.cache --build=$BUILD 
make 
make install 
cd .. 

Ho ottenuto l'indizio da here.