OSDN Git Service

f92617cbfe58e125ce5ac6875e8f8068e4f4362d
[coroid/inqubus.git] / frontend / src / saccubus / converter / profile / FfmpegOption.java
1 /* $Id$ */
2 package saccubus.converter.profile;
3
4 import java.io.File;
5 import java.io.FileInputStream;
6 import java.io.IOException;
7 import java.util.Properties;
8 import org.apache.commons.lang.StringUtils;
9
10 /**
11  *
12  * @author yuki
13  */
14 public class FfmpegOption {
15
16     private final String extOption;
17     private final String mainOption;
18     private final String inOption;
19     private final String outOption;
20     private final String avfilterOption;
21     private final boolean resize;
22     private final int resizeWidth;
23     private final int resizeHeight;
24     private final boolean adjustRatio;
25     private final boolean padding;
26
27     public static FfmpegOption load(File file) throws IOException {
28         Properties prop = new Properties();
29         prop.loadFromXML(new FileInputStream(file));
30         String ext = prop.getProperty("EXT");
31         String main = prop.getProperty("MAIN", "");
32         String in = prop.getProperty("IN", "");
33         String out = prop.getProperty("OUT", "");
34         String avfilter = prop.getProperty("AVFILTER", "");
35         boolean resize = Boolean.getBoolean(prop.getProperty("RESIZE", "false"));
36         String width = prop.getProperty("WIDTH", "");
37         String height = prop.getProperty("HEIGHT", "");
38         boolean adjust =  Boolean.getBoolean(prop.getProperty("ADJST_RATIO", "true"));
39         boolean pad =  Boolean.getBoolean(prop.getProperty("ADJST_RATIO", "false"));
40
41         if (StringUtils.isBlank(ext)) {
42             throw new IOException("変換オプションファイル書式誤り ext: "
43                     + ext + ", main: " + main + ", in: " + in + ", out: " + out + ", avfilter: " + avfilter);
44         }
45         return new FfmpegOption(ext, main, in, out, avfilter, resize, width, height, adjust, pad);
46     }
47
48     public FfmpegOption(String extOption, String mainOption, String inOption, String outOption, String avfilterOption,
49             boolean resize, String width, String height, boolean adjust, boolean pad) {
50         this.extOption = (extOption.startsWith(".")) ? extOption : "." + extOption;
51         this.mainOption = mainOption;
52         this.inOption = inOption;
53         this.outOption = outOption;
54         this.avfilterOption = avfilterOption;
55         this.resize = resize;
56         this.resizeWidth = (width.isEmpty()) ? 0 : Integer.parseInt(width);
57         this.resizeHeight = (height.isEmpty()) ? 0 : Integer.parseInt(height);
58         this.adjustRatio = adjust;
59         this.padding = pad;
60     }
61
62
63     public String getExtOption() {
64         return extOption;
65     }
66
67     public String getMainOption() {
68         return mainOption;
69     }
70
71     public String getInOption() {
72         return inOption;
73     }
74
75     public String getOutOption() {
76         return outOption;
77     }
78
79     public String getAvfilterOption() {
80         return avfilterOption;
81     }
82
83     public boolean isResize() {
84         return resize;
85     }
86
87     public int getResizeWidth() {
88         return resizeWidth;
89     }
90
91     public int getResizeHeight() {
92         return resizeHeight;
93     }
94
95     public boolean isAdjustRatio() {
96         return adjustRatio;
97     }
98
99     public boolean isPadding() {
100         return padding;
101     }
102
103 }