Toshaan Bharvani
3 years ago
2 changed files with 195 additions and 0 deletions
@ -0,0 +1,195 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
# Process a gst-plugins-bad tarball to remove |
||||||
|
# unwanted GStreamer plugins. |
||||||
|
# |
||||||
|
# See https://bugzilla.redhat.com/show_bug.cgi?id=532470 |
||||||
|
# for details |
||||||
|
# |
||||||
|
# Bastien Nocera <bnocera@redhat.com> - 2010 |
||||||
|
# |
||||||
|
|
||||||
|
SOURCE="$1" |
||||||
|
NEW_SOURCE=`echo $SOURCE | sed 's/bad-/bad-free-/'` |
||||||
|
DIRECTORY=`echo $SOURCE | sed 's/\.tar\.xz//'` |
||||||
|
|
||||||
|
ALLOWED=" |
||||||
|
aacparse |
||||||
|
accurip |
||||||
|
adpcmdec |
||||||
|
adpcmenc |
||||||
|
aiff |
||||||
|
aiffparse |
||||||
|
amrparse |
||||||
|
asfmux |
||||||
|
audiobuffersplit |
||||||
|
audiofxbad |
||||||
|
audiolatency |
||||||
|
audiomixer |
||||||
|
audiomixmatrix |
||||||
|
audioparsers |
||||||
|
audiovisualizers |
||||||
|
autoconvert |
||||||
|
bayer |
||||||
|
camerabin |
||||||
|
camerabin2 |
||||||
|
cdxaparse |
||||||
|
coloreffects |
||||||
|
colorspace |
||||||
|
compositor |
||||||
|
dataurisrc |
||||||
|
dccp |
||||||
|
debugutils |
||||||
|
dtmf |
||||||
|
dvbsubenc |
||||||
|
faceoverlay |
||||||
|
festival |
||||||
|
fieldanalysis |
||||||
|
freeverb |
||||||
|
freeze |
||||||
|
frei0r |
||||||
|
gaudieffects |
||||||
|
gdp |
||||||
|
geometrictransform |
||||||
|
h264parse |
||||||
|
hdvparse |
||||||
|
hls |
||||||
|
id3tag |
||||||
|
inter |
||||||
|
interlace |
||||||
|
invtelecine |
||||||
|
ivfparse |
||||||
|
ivtc |
||||||
|
jpegformat |
||||||
|
jp2kdecimator |
||||||
|
legacyresample |
||||||
|
librfb |
||||||
|
liveadder |
||||||
|
midi |
||||||
|
mve |
||||||
|
mpegdemux |
||||||
|
mpeg4videoparse |
||||||
|
mpegpsmux |
||||||
|
mpegtsdemux |
||||||
|
mpegtsmux |
||||||
|
mpegvideoparse |
||||||
|
mxf |
||||||
|
netsim |
||||||
|
nsf |
||||||
|
nuvdemux |
||||||
|
onvif |
||||||
|
patchdetect |
||||||
|
pcapparse |
||||||
|
pnm |
||||||
|
proxy |
||||||
|
qtmux |
||||||
|
rawparse |
||||||
|
removesilence |
||||||
|
rist |
||||||
|
rtmp2 |
||||||
|
rtp |
||||||
|
rtpmux |
||||||
|
rtpvp8 |
||||||
|
scaletempo |
||||||
|
sdi |
||||||
|
sdp |
||||||
|
segmentclip |
||||||
|
selector |
||||||
|
smooth |
||||||
|
speed |
||||||
|
stereo |
||||||
|
subenc |
||||||
|
switchbin |
||||||
|
timecode |
||||||
|
transcode |
||||||
|
tta |
||||||
|
valve |
||||||
|
videofilters |
||||||
|
videoframe_audiolevel |
||||||
|
videomaxrate |
||||||
|
videomeasure |
||||||
|
videoparsers |
||||||
|
videosignal |
||||||
|
vmnc |
||||||
|
yadif |
||||||
|
y4m |
||||||
|
" |
||||||
|
|
||||||
|
NOT_ALLOWED=" |
||||||
|
dvbsuboverlay |
||||||
|
dvdspu |
||||||
|
real |
||||||
|
siren |
||||||
|
" |
||||||
|
|
||||||
|
error() |
||||||
|
{ |
||||||
|
MESSAGE=$1 |
||||||
|
echo $MESSAGE |
||||||
|
exit 1 |
||||||
|
} |
||||||
|
|
||||||
|
check_allowed() |
||||||
|
{ |
||||||
|
MODULE=$1 |
||||||
|
for i in $ALLOWED ; do |
||||||
|
if test x$MODULE = x$i ; then |
||||||
|
return 0; |
||||||
|
fi |
||||||
|
done |
||||||
|
# Ignore errors coming from ext/ directory |
||||||
|
# they require external libraries so are ineffective anyway |
||||||
|
return 1; |
||||||
|
} |
||||||
|
|
||||||
|
check_not_allowed() |
||||||
|
{ |
||||||
|
MODULE=$1 |
||||||
|
for i in $NOT_ALLOWED ; do |
||||||
|
if test x$MODULE = x$i ; then |
||||||
|
return 0; |
||||||
|
fi |
||||||
|
done |
||||||
|
return 1; |
||||||
|
} |
||||||
|
|
||||||
|
rm -rf $DIRECTORY |
||||||
|
tar xJf $SOURCE || error "Cannot unpack $SOURCE" |
||||||
|
pushd $DIRECTORY > /dev/null || error "Cannot open directory \"$DIRECTORY\"" |
||||||
|
|
||||||
|
unknown="" |
||||||
|
for subdir in gst ext sys; do |
||||||
|
for dir in $subdir/* ; do |
||||||
|
# Don't touch non-directories |
||||||
|
if ! [ -d $dir ] ; then |
||||||
|
continue; |
||||||
|
fi |
||||||
|
MODULE=`basename $dir` |
||||||
|
if ( check_not_allowed $MODULE ) ; then |
||||||
|
echo "**** Removing $MODULE ****" |
||||||
|
echo "Removing directory $dir" |
||||||
|
rm -r $dir || error "Cannot remove $dir" |
||||||
|
echo |
||||||
|
elif test $subdir = ext || test $subdir = sys; then |
||||||
|
# Ignore library or system non-blacklisted plugins |
||||||
|
continue; |
||||||
|
elif ! ( check_allowed $MODULE ) ; then |
||||||
|
echo "Unknown module in $dir" |
||||||
|
unknown="$unknown $dir" |
||||||
|
fi |
||||||
|
done |
||||||
|
done |
||||||
|
|
||||||
|
echo |
||||||
|
|
||||||
|
if test "x$unknown" != "x"; then |
||||||
|
echo -n "Aborting due to unkown modules: " |
||||||
|
echo "$unknown" | sed "s/ /\n /g" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
popd > /dev/null |
||||||
|
|
||||||
|
tar cJf $NEW_SOURCE $DIRECTORY |
||||||
|
echo "$NEW_SOURCE is ready to use" |
||||||
|
|
Binary file not shown.
Loading…
Reference in new issue