Auto locate transcoder binary

Signed-off-by: Andrew DeMaria <lostonamountain@gmail.com>
master
Andrew DeMaria 8 years ago
parent 7a8c0465c3
commit cadc1022f1
No known key found for this signature in database
GPG Key ID: 0A3F5E91F8364EDF
  1. 18
      libresonic-main/src/main/java/org/libresonic/player/service/TranscodingService.java

@ -329,8 +329,8 @@ public class TranscodingService {
title = "Unknown Artist";
}
List<String> result = new LinkedList<String>(Arrays.asList(StringUtil.split(command)));
result.set(0, getTranscodeDirectory().getPath() + File.separatorChar + result.get(0));
List<String> result = new LinkedList<>(Arrays.asList(StringUtil.split(command)));
result.set(0, getExecutableName(result));
File tmpFile = null;
@ -381,6 +381,20 @@ public class TranscodingService {
return new TranscodeInputStream(new ProcessBuilder(result), in, tmpFile);
}
private String getExecutableName(List<String> transcodeTokens) {
String executableName = transcodeTokens.get(0);
String transcodeDirectoryPath = getTranscodeDirectory().getPath() + File.separatorChar + executableName;
File file = new File(transcodeDirectoryPath);
if(file.exists()) {
if(!file.canExecute()) {
throw new RuntimeException("Transcoder is not executable at " + transcodeDirectoryPath);
}
return transcodeDirectoryPath;
} else {
return executableName;
}
}
/**
* Returns an applicable transcoding for the given file and player, or <code>null</code> if no
* transcoding should be done.

Loading…
Cancel
Save