This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository mteleplayer. from 4abe5fe Add audio volume scaler to GUI and volume control support functions. new 41ddac1 Move mediaFileInfo stuff into mteleplayer and make it use the right mplayer(2) on distros like Debian etc. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: serverside/bin/mteleplayer | 45 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/mteleplayer.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository mteleplayer. commit 41ddac11f5e778ab3cf3700df629ca2e18fe4ca7 Author: gznget <opensource@gznianguan.com> Date: Sat Jun 21 12:38:58 2014 +0200 Move mediaFileInfo stuff into mteleplayer and make it use the right mplayer(2) on distros like Debian etc. --- serverside/bin/mteleplayer | 45 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/serverside/bin/mteleplayer b/serverside/bin/mteleplayer index f39406e..afd0e54 100755 --- a/serverside/bin/mteleplayer +++ b/serverside/bin/mteleplayer @@ -46,7 +46,7 @@ use File::Spec; use Glib qw/TRUE FALSE/; use IO::Socket::UNIX qw( SOCK_STREAM ); use Time::HiRes qw( usleep gettimeofday tv_interval clock_gettime clock_getres clock_nanosleep clock stat ); -use X2Go::Telekinesis::Apps::AppCore qw(getTeKiPaths tkappDie appDBugLog cleanUpOldAppSession checkAppSesLOCKnDirs mediaFileINFO initLOCKandDirs getXWinPosNDim showAboutPOP getBasicServersideInfo epicFailPOP); +use X2Go::Telekinesis::Apps::AppCore qw(getTeKiPaths tkappDie appDBugLog cleanUpOldAppSession checkAppSesLOCKnDirs initLOCKandDirs getXWinPosNDim showAboutPOP getBasicServersideInfo epicFailPOP); use X2Go::Telekinesis::CommonCore qw(sanitizer genRandFID checkPID sanitizeFilePath sanitizeDirPath genRandSID clups); use Gtk2; use Gtk2::SimpleMenu; @@ -79,6 +79,10 @@ my %PlayerStatus;$PlayerStatus{'timePos'} = 0;$PlayerStatus{'timeLength'} = 0;$P our ($UserName,$UserHome,$X2GoSID,$X2GoSesHome,$X2GoTKSHome,$TeKiLSockPath) = getBasicServersideInfo(); my $LocalSocket; my $mTPMainMediaEBOX; +my $mPlayerPath = "/usr/bin/mplayer"; +if (-X "/usr/bin/mplayer2") { + $mPlayerPath = "/usr/bin/mplayer2"; +} appDBugLog("-------------------------------------------\nStarting....."); ######################################## # @@ -709,8 +713,8 @@ sub mtpTeKiRemoteFileSetup { my $remoteDir = sanitizeDirPath($_[1]); if ($inMediaLine =~ /^FILE:(.*)$/) { my $AbsoluteMediaFilePath = sanitizeFilePath(File::Spec->rel2abs($1)); - my ($isItMedia,$AorV,%Info) = mediaFileINFO($AbsoluteMediaFilePath); - # since mediaFileInfo will handle the checking of the actuall existance of a file... AGAIN.... we will not doing the -f check yet again... + my ($isItMedia,$AorV,%Info) = getMediaFileINFO($AbsoluteMediaFilePath); + # since getMediaFileINFO will handle the checking of the actuall existance of a file... AGAIN.... we will not doing the -f check yet again... # If its not a media file... its not "a file to us" anyway.... if ($isItMedia eq 1) { # print "Type: $AorV\n",Dumper(%Info),"\n"; @@ -950,6 +954,41 @@ sub theMenuTreeSUB { } +######################################################################################################## +# GET Media FILE Info +# Initially we we're using another perl module for this but it turned out to have some (b) ithchy dependencies on some never distros so... +# "Self made" is not always well made.... but it takes less to rigg this short sub rather than debugging 3rd party crud. +# Plan to expand on the content of the returned %FileInfo but at the moment this is all we need for preliminary validation that the file is actually a playable file. +sub getMediaFileINFO { + my $FilePath = sanitizeFilePath($_[0]); + my %FileInfo; + if (-f $FilePath) { + open(MPINFO,"-|",$mPlayerPath,'-vo','null','-ao','null', '-identify','-frames','0','-nolirc',$FilePath); + my @MPInfo = <MPINFO>; + close(MPINFO); + foreach my $line (@MPInfo) { + $line =~ s/\n//g; + if ($line =~ /^ID\_LENGTH\=([\d\.]*)$/) { + $FileInfo{'length'} = $1; + } elsif ($line =~ /^ID\_VIDEO\_CODEC\=(.*)$/) { + $FileInfo{'vcodec'} = $1; + } elsif ($line =~ /^ID\_AUDIO\_CODEC\=(.*)$/) { + $FileInfo{'acodec'} = $1; + } + } + if ($FileInfo{'length'} > 0) { + if ($FileInfo{'vcodec'}) { + return (1,"V",%FileInfo); + } else { + if ($FileInfo{'acodec'}) { + return (1,"A",%FileInfo); + } else {return 0;} + } + } else {return 0;} + } else { + return 0; + } +} ################################################################################################################################# # This sub, supposedly try to do a clean termination of the application... -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/mteleplayer.git