Re: [Tuxrip-devel] nombre de titre
Brought to you by:
tuxrip
From: Dumoulin N. <nic...@bo...> - 2004-10-20 14:00:24
|
Le mercredi 20 Octobre 2004 15:37, tuxrip a =E9crit=A0: > Bon je pense avoir trouv=E9. Voici une fonction qui extrait le nombre de > titre sur le DVD, avec mplayer ou transcode. > > > =E7a vous parait correct comme code ? > > =E0+ > > > -------------------------------------------------------------------------= =2D- >-------------------------- #!/usr/bin/perl > > print (number_of_title("/dev/dvd","mencoder")); > print (number_of_title("/dev/dvd","transcode")); > > sub number_of_title { > my ($device,$soft) =3D @_; > my $titlemax; > > if ($soft eq "mencoder"){ > for (`mplayer dvd://1 -dvd-device $device -vo null -ao null -frames > 0 -v 2>&1`) { > chomp; > if ($_ =3D~ /There are ([1-9][0-9]*) titles on this DVD./) > {$titlemax =3D $1;} > } > } > elsif ($soft eq "transcode") { > for (`tcprobe -i $device -T 1 2>&1`) { > chomp; > if ($_ =3D~ /DVD title 1\/([1-9][0-9]*)/) {$titlemax =3D $1;} > } > } > return $titlemax; > } > -------------------------------------------------------------------------= =2D- >-------------------------- Arf trop rapide ;-) le mien quand m=EAme : =2D----------------------- $s=3D"(dvd_reader.c) DVD title 1/3: 47 chapter(s), 1 angle(s), title set 1"; print ($s =3D~ /.DVD\ title\ \d\/*([[:digit:]]*).*/ ); print "\n"; =2D---------------------- pas grande diff=E9rence, si ce n'est que j'utilise la classe digit, mais bo= n =E7a=20 me semble =E9quivalent. Tu as une raison pour matcher un nombre qui ne comm= ence=20 pas par un z=E9ro ? juste par curiosit=E9, sinon c'est pas grave. question : qu'est-ce qu'on fait si la regexp ne match pas ? nombre de titre= =20 infini ? Bon faut vraiment que je m'y mette :-P a+ =2D-=20 Nicolas Dumoulin http://bobuse.fr.st |