OSDN Git Service

パディングオプションを削除
[coroid/inqubus.git] / frontend / src / saccubus / properties / MovieSetting.java
1 /* $Id$ */
2 package saccubus.properties;
3
4 import java.io.File;
5 import java.util.Properties;
6 import saccubus.converter.profile.FfmpegOption;
7
8 /**
9  * 動画設定.
10  * @author yuki
11  */
12 public class MovieSetting {
13
14     private static final String PROP_FFMPEG_PATH = "FFnpegPath";
15     private static final String PROP_VHOOK_PATH = "VhookPath";
16     private static final String PROP_OPTION_FILE = "OptionFile";
17     private static final String PROP_CMDLINE_EXT = "CMD_EXT";
18     private static final String PROP_CMDLINE_MAIN = "CMD_MAIN";
19     private static final String PROP_CMDLINE_IN = "CMD_IN";
20     private static final String PROP_CMDLINE_OUT = "CMD_OUT";
21     private static final String PROP_CMDLINE_AVFILTER = "CMD_AVFILTER";
22     private static final String PROP_RESIZE = "CMD_RESIZE";
23     private static final String PROP_RESIZE_WIDTH = "CMD_RESIZE_WIDTH";
24     private static final String PROP_RESIZE_HEIGHT = "CMD_RESIZE_HEIGHT";
25     private static final String PROP_ADJUST_RATIO = "CMD_ADJUST_RATIO";
26     private final File ffmpeg;
27     private final File vhook;
28     private final File optionFile;
29     private final FfmpegOption ffmpegOption;
30
31     public MovieSetting(File ffmpeg, File vhook, File optionFile, FfmpegOption ffmpegOption) {
32         this.ffmpeg = ffmpeg;
33         this.vhook = vhook;
34         this.optionFile = optionFile;
35         this.ffmpegOption = ffmpegOption;
36     }
37
38     public File getFfmpeg() {
39         return ffmpeg;
40     }
41
42     public File getVhook() {
43         return vhook;
44     }
45
46     public File getOptionFile() {
47         return optionFile;
48     }
49
50     public FfmpegOption getFfmpegOption() {
51         return ffmpegOption;
52     }
53
54     public void save(Properties prop) {
55         prop.setProperty(PROP_FFMPEG_PATH, getFfmpeg().getPath());
56         prop.setProperty(PROP_VHOOK_PATH, getVhook().getPath());
57         prop.setProperty(PROP_CMDLINE_EXT, getFfmpegOption().getExtOption());
58         prop.setProperty(PROP_CMDLINE_MAIN, getFfmpegOption().getMainOption());
59         prop.setProperty(PROP_CMDLINE_IN, getFfmpegOption().getInOption());
60         prop.setProperty(PROP_CMDLINE_OUT, getFfmpegOption().getOutOption());
61         prop.setProperty(PROP_CMDLINE_AVFILTER, getFfmpegOption().getAvfilterOption());
62         prop.setProperty(PROP_RESIZE, Boolean.toString(getFfmpegOption().isResize()));
63         prop.setProperty(PROP_RESIZE_WIDTH, Integer.toString(getFfmpegOption().getResizeWidth()));
64         prop.setProperty(PROP_RESIZE_HEIGHT, Integer.toString(getFfmpegOption().getResizeHeight()));
65         prop.setProperty(PROP_ADJUST_RATIO, Boolean.toString(getFfmpegOption().isAdjustRatio()));
66         if (getOptionFile() != null) {
67             prop.setProperty(PROP_OPTION_FILE, getOptionFile().getPath());
68         } else {
69             prop.remove(PROP_OPTION_FILE);
70         }
71     }
72
73     public static MovieSetting load(Properties prop) {
74         String name = prop.getProperty(PROP_OPTION_FILE);
75         File optionFile = null;
76         if (name != null) {
77             optionFile = new File(name);
78         }
79
80         String ffmpeg = prop.getProperty(PROP_FFMPEG_PATH, new File("bin", "ffmpeg.exe").getPath());
81         String vhook = prop.getProperty(PROP_VHOOK_PATH, new File("bin", "nicovideo.dll").getPath());
82         String ext = prop.getProperty(PROP_CMDLINE_EXT, ".m4v");
83         String main = prop.getProperty(PROP_CMDLINE_MAIN, "");
84         String in = prop.getProperty(PROP_CMDLINE_IN, "");
85         String out = prop.getProperty(PROP_CMDLINE_OUT,
86                 "-f ipod -g 150 -qcomp 0.7 -qmin 20 -qmax 30 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.714286");
87         String avfilter = prop.getProperty(PROP_CMDLINE_AVFILTER, "");
88         boolean resize = Boolean.getBoolean(prop.getProperty(PROP_RESIZE, "false"));
89         String width = prop.getProperty(PROP_RESIZE_WIDTH, "512");
90         String height = prop.getProperty(PROP_RESIZE_HEIGHT, "384");
91         boolean adjust = Boolean.getBoolean(prop.getProperty(PROP_ADJUST_RATIO, "false"));
92         FfmpegOption opt = new FfmpegOption(ext, main, in, out, avfilter, resize, width, height, adjust);
93
94         return new MovieSetting(new File(ffmpeg), new File(vhook), optionFile, opt);
95     }
96 }