summaryrefslogtreecommitdiffstats
path: root/abs/extra/dpgconv
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/dpgconv')
-rw-r--r--abs/extra/dpgconv/PKGBUILD22
-rw-r--r--abs/extra/dpgconv/dpgconv-panscan.patch83
2 files changed, 105 insertions, 0 deletions
diff --git a/abs/extra/dpgconv/PKGBUILD b/abs/extra/dpgconv/PKGBUILD
new file mode 100644
index 0000000..82fe117
--- /dev/null
+++ b/abs/extra/dpgconv/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Nick B <Shirakawasuna at gmail _dot_com>
+pkgname=dpgconv
+pkgver=9
+pkgrel=1
+pkgdesc="This is a converter to produce DPG movies for Moonshell software for Nintendo DS."
+arch=('i686' 'x86_64')
+url="http://theli.is-a-geek.org/blog/static/dpgconv"
+license=('GPL2')
+depends=('mpeg_stat' 'mplayer')
+source=(http://theli.is-a-geek.org/files/dpgconv/dpgconv-$pkgver.py.bz2
+ dpgconv-panscan.patch)
+
+build() {
+
+cd $startdir/src
+patch < dpgconv-panscan.patch
+install -m755 -D $startdir/src/dpgconv-$pkgver.py $startdir/pkg/usr/bin/dpgconv-$pkgver.py
+cd $startdir/pkg/usr/bin
+ln -s dpgconv-$pkgver.py dpgconv.py
+}
+md5sums=('fa61ceb4ebb241e98fc005aed86406e5')
+
diff --git a/abs/extra/dpgconv/dpgconv-panscan.patch b/abs/extra/dpgconv/dpgconv-panscan.patch
new file mode 100644
index 0000000..471d518
--- /dev/null
+++ b/abs/extra/dpgconv/dpgconv-panscan.patch
@@ -0,0 +1,83 @@
+--- dpgconv-9.py.old 2009-10-28 19:33:46.000000000 +1030
++++ dpgconv-9.py 2009-10-28 19:28:01.000000000 +1030
+@@ -49,9 +49,12 @@
+ --width xxx
+ destination video width (default: 256)
+ --keep-aspect
+- try to keep aspect ratio
++ try to keep aspect ratio by letterboxing
++ --keep-aspect-panscan
++ try to keep aspect ratio by cropping original
+
+ NOTE: width/height have no effect when --keep-aspect is set
++ --keep-aspect-panscan overrides --keep-aspect
+
+ --mv
+ additional parameters for mencoder for video
+@@ -150,8 +153,38 @@
+ v_pf = "format=rgb24,"
+ options.pf = 3
+
+- if options.aspect:
+- aspect = commands.getoutput( MPLAYER + " -frames 1 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID_VIDEO_ASPECT\"")
++ crop=""
++ if options.panscan:
++ options.width=256
++ options.height=192
++
++ aspect = commands.getoutput( MPLAYER + " -frames 1 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID_VIDEO_ASPECT\" | tail -1")
++ p1 = re.compile ("ID_VIDEO_ASPECT=(.*)")
++ m1 = p1.search( aspect )
++ width = commands.getoutput( MPLAYER + " -frames 1 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID_VIDEO_WIDTH\" | tail -1")
++ p2 = re.compile ("ID_VIDEO_WIDTH=(.*)")
++ m2 = p2.search( width )
++ height = commands.getoutput( MPLAYER + " -frames 1 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID_VIDEO_HEIGHT\" | tail -1")
++ p3 = re.compile ("ID_VIDEO_HEIGHT=(.*)")
++ m3 = p3.search( height )
++ if m1 and m2 and m3:
++ print "Input Aspect %s" % m1.group(1)
++ print "Input Width %s" % m2.group(1)
++ print "Input Height %s" % m3.group(1)
++ ar = float (m1.group(1))
++ iw = int (m2.group(1))
++ ih = int (m3.group(1))
++ if aspect > 1.333333:
++ cropw=int(round(iw / ar * 4 / 3, 0))
++ croph=ih
++ else:
++ cropw=iw
++ croph=int(round(ih * ar * 3 / 4, 0))
++ crop="crop="+`cropw`+":"+`croph`+","
++ print crop
++
++ elif options.aspect:
++ aspect = commands.getoutput( MPLAYER + " -frames 1 -vo null -ao null -identify \"" + file + "\" | grep -E \"^ID_VIDEO_ASPECT\" | tail -1")
+ p = re.compile ("ID_VIDEO_ASPECT=(.*)")
+ m = p.search( aspect )
+ if m:
+@@ -169,13 +202,13 @@
+ if options.fps < 24:
+ print "mencoder won't work with double pass and fps < 24, forcing fps = 24"
+ options.fps = 24
+- v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` +":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:vmax_b_frames=2:cmp=6:subcmp=6:precmp=6:dia=4:predia=4:bidir_refine=4:mv0_threshold=0:last_pred=3:vbitrate=" + `options.vbps` )
++ v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + crop + "scale=" + `options.width` + ":" + `options.height` +":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:vmax_b_frames=2:cmp=6:subcmp=6:precmp=6:dia=4:predia=4:bidir_refine=4:mv0_threshold=0:last_pred=3:vbitrate=" + `options.vbps` )
+ elif options.hq:
+- v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` +":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:cmp=6:subcmp=6:precmp=6:dia=3:predia=3:last_pred=3:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo" )
++ v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + crop + "scale=" + `options.width` + ":" + `options.height` +":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:cmp=6:subcmp=6:precmp=6:dia=3:predia=3:last_pred=3:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo" )
+ elif options.lq:
+- v_cmd = ( " \"" + file + "\" -v -ofps " + `options.fps` + " -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` + ",harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo" )
++ v_cmd = ( " \"" + file + "\" -v -ofps " + `options.fps` + " -vf " + v_pf + crop + "scale=" + `options.width` + ":" + `options.height` + ",harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo" )
+ else :
+- v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + "scale=" + `options.width` + ":" + `options.height` + ":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:cmp=2:subcmp=2:precmp=2:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo")
++ v_cmd = ( " \""+ file +"\" -v -ofps " + `options.fps` + " -sws 9 -vf " + v_pf + crop + "scale=" + `options.width` + ":" + `options.height` + ":::3,harddup -nosound -ovc lavc -lavcopts vcodec=mpeg1video:vstrict=-2:mbd=2:trell:cbp:mv0:cmp=2:subcmp=2:precmp=2:vbitrate=" + `options.vbps` + " -o " + MPGTMP + " -of rawvideo")
+
+ if options.nosub:
+ if options.sub != None:
+@@ -459,6 +492,7 @@
+ parser.add_option("-a","--abps", type="int", dest="abps", default=128)
+ parser.add_option("--volnorm", action="store_true", dest="volnorm", default=False)
+ parser.add_option("--keep-aspect", action="store_true", dest="aspect", default=False)
++parser.add_option("--keep-aspect-panscan", action="store_true", dest="panscan", default=False)
+ parser.add_option("--height", type="int", dest="height", default=192)
+ parser.add_option("--width", type="int", dest="width", default=256)
+ parser.add_option("-z","--hz", type="int", dest="hz", default=32000)