001/**
002 *
003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
004 *
005 * This library is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public
007 * License as published by the Free Software Foundation; either 
008 * version 2.1 of the License, or (at your option) any later version.
009 * 
010 * This library is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013 * Lesser General Public License for more details.
014 * 
015 * You should have received a copy of the GNU Lesser General Public 
016 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
017 * 
018 **/
019package lucee.runtime.video;
020
021
022public interface VideoProfile {
023
024        public static final String TYPE_4XM ="4xm";
025        public static final String TYPE_8BPS ="8bps";
026        public static final String TYPE_AAC ="aac";
027        public static final String TYPE_AASC ="aasc";
028        public static final String TYPE_AC3 ="ac3";
029        public static final String TYPE_ADPCM_4XM ="adpcm_4xm";
030        public static final String TYPE_ADPCM_ADX ="adpcm_adx";
031        public static final String TYPE_ADPCM_CT ="adpcm_ct";
032        public static final String TYPE_ADPCM_EA ="adpcm_ea";
033        public static final String TYPE_ADPCM_IMA_DK3 ="adpcm_ima_dk3";
034        public static final String TYPE_ADPCM_IMA_DK4 ="adpcm_ima_dk4";
035        public static final String TYPE_ADPCM_IMA_QT ="adpcm_ima_qt";
036        public static final String TYPE_ADPCM_IMA_SMJPEG ="adpcm_ima_smjpeg";
037        public static final String TYPE_ADPCM_IMA_WAV ="adpcm_ima_wav";
038        public static final String TYPE_ADPCM_IMA_WS ="adpcm_ima_ws";
039        public static final String TYPE_ADPCM_MS ="adpcm_ms";
040        public static final String TYPE_ADPCM_SBPRO_2 ="adpcm_sbpro_2";
041        public static final String TYPE_ADPCM_SBPRO_3 ="adpcm_sbpro_3";
042        public static final String TYPE_ADPCM_SBPRO_4 ="adpcm_sbpro_4";
043        public static final String TYPE_ADPCM_SWF ="adpcm_swf";
044        public static final String TYPE_ADPCM_XA ="adpcm_xa";
045        public static final String TYPE_ADPCM_YAMAHA ="adpcm_yamaha";
046        public static final String TYPE_ALAC ="alac";
047        public static final String TYPE_AMR_NB ="amr_nb";
048        public static final String TYPE_AMR_WB ="amr_wb";
049        public static final String TYPE_ASV1 ="asv1";
050        public static final String TYPE_ASV2 ="asv2";
051        public static final String TYPE_AVS ="avs";
052        public static final String TYPE_BMP ="bmp";
053        public static final String TYPE_CAMSTUDIO ="camstudio";
054        public static final String TYPE_CAMTASIA ="camtasia";
055        public static final String TYPE_CINEPAK ="cinepak";
056        public static final String TYPE_CLJR ="cljr";
057        public static final String TYPE_COOK ="cook";
058        public static final String TYPE_CYUV ="cyuv";
059        public static final String TYPE_DVBSUB ="dvbsub";
060        public static final String TYPE_DVDSUB ="dvdsub";
061        public static final String TYPE_DVVIDEO ="dvvideo";
062        public static final String TYPE_FFV1 ="ffv1";
063        public static final String TYPE_FFVHUFF ="ffvhuff";
064        public static final String TYPE_FLAC ="flac";
065        public static final String TYPE_FLIC ="flic";
066        public static final String TYPE_FLV ="flv";
067        public static final String TYPE_FRAPS ="fraps";
068        public static final String TYPE_G726 ="g726";
069        public static final String TYPE_H261 ="h261";
070        public static final String TYPE_H263 ="h263";
071        public static final String TYPE_H263I ="h263i";
072        public static final String TYPE_H263P ="h263p";
073        public static final String TYPE_H264 ="h264";
074        public static final String TYPE_HUFFYUV ="huffyuv";
075        public static final String TYPE_IDCINVIDEO ="idcinvideo";
076        public static final String TYPE_INDEO2 ="indeo2";
077        public static final String TYPE_INDEO3 ="indeo3";
078        public static final String TYPE_INTERPLAY_DPCM ="interplay_dpcm";
079        public static final String TYPE_INTERPLAYVIDEO ="interplayvideo";
080        public static final String TYPE_JPEGLS ="jpegls";
081        public static final String TYPE_KMVC ="kmvc";
082        public static final String TYPE_LJPEG ="ljpeg";
083        public static final String TYPE_LOCO ="loco";
084        public static final String TYPE_MACE3 ="mace3";
085        public static final String TYPE_MACE6 ="mace6";
086        public static final String TYPE_MDEC ="mdec";
087        public static final String TYPE_MJPEG ="mjpeg";
088        public static final String TYPE_MJPEGB ="mjpegb";
089        public static final String TYPE_MMVIDEO ="mmvideo";
090        public static final String TYPE_MP2 ="mp2";
091        public static final String TYPE_MP3 ="mp3";
092        public static final String TYPE_MP3ADU ="mp3adu";
093        public static final String TYPE_MP3ON4 ="mp3on4";
094        public static final String TYPE_MPEG1VIDEO ="mpeg1video";
095        public static final String TYPE_MPEG2VIDEO ="mpeg2video";
096        public static final String TYPE_MPEG4 ="mpeg4";
097        public static final String TYPE_MPEG4AAC ="mpeg4aac";
098        public static final String TYPE_MPEGVIDEO ="mpegvideo";
099        public static final String TYPE_MSMPEG4 ="msmpeg4";
100        public static final String TYPE_MSMPEG4V1 ="msmpeg4v1";
101        public static final String TYPE_MSMPEG4V2 ="msmpeg4v2";
102        public static final String TYPE_MSRLE ="msrle";
103        public static final String TYPE_MSVIDEO1 ="msvideo1";
104        public static final String TYPE_MSZH ="mszh";
105        public static final String TYPE_NUV ="nuv";
106        public static final String TYPE_PAM ="pam";
107        public static final String TYPE_PBM ="pbm";
108        public static final String TYPE_PCM_ALAW ="pcm_alaw";
109        public static final String TYPE_PCM_MULAW ="pcm_mulaw";
110        public static final String TYPE_PCM_S16BE ="pcm_s16be";
111        public static final String TYPE_PCM_S16LE ="pcm_s16le";
112        public static final String TYPE_PCM_S24BE ="pcm_s24be";
113        public static final String TYPE_PCM_S24DAUD ="pcm_s24daud";
114        public static final String TYPE_PCM_S24LE ="pcm_s24le";
115        public static final String TYPE_PCM_S32BE ="pcm_s32be";
116        public static final String TYPE_PCM_S32LE ="pcm_s32le";
117        public static final String TYPE_PCM_S8 ="pcm_s8";
118        public static final String TYPE_PCM_U16BE ="pcm_u16be";
119        public static final String TYPE_PCM_U16LE ="pcm_u16le";
120        public static final String TYPE_PCM_U24BE ="pcm_u24be";
121        public static final String TYPE_PCM_U24LE ="pcm_u24le";
122        public static final String TYPE_PCM_U32BE ="pcm_u32be";
123        public static final String TYPE_PCM_U32LE ="pcm_u32le";
124        public static final String TYPE_PCM_U8 ="pcm_u8";
125        public static final String TYPE_PGM ="pgm";
126        public static final String TYPE_PGMYUV ="pgmyuv";
127        public static final String TYPE_PNG ="png";
128        public static final String TYPE_PPM ="ppm";
129        public static final String TYPE_QDM2 ="qdm2";
130        public static final String TYPE_QDRAW ="qdraw";
131        public static final String TYPE_QPEG ="qpeg";
132        public static final String TYPE_QTRLE ="qtrle";
133        public static final String TYPE_RAWVIDEO ="rawvideo";
134        public static final String TYPE_REAL_144 ="real_144";
135        public static final String TYPE_REAL_288 ="real_288";
136        public static final String TYPE_ROQ_DPCM ="roq_dpcm";
137        public static final String TYPE_ROQVIDEO ="roqvideo";
138        public static final String TYPE_RPZA ="rpza";
139        public static final String TYPE_RV10 ="rv10";
140        public static final String TYPE_RV20 ="rv20";
141        public static final String TYPE_SHORTEN ="shorten";
142        public static final String TYPE_SMACKAUD ="smackaud";
143        public static final String TYPE_SMACKVID ="smackvid";
144        public static final String TYPE_SMC ="smc";
145        public static final String TYPE_SNOW ="snow";
146        public static final String TYPE_SOL_DPCM ="sol_dpcm";
147        public static final String TYPE_SONIC ="sonic";
148        public static final String TYPE_SONICLS ="sonicls";
149        public static final String TYPE_SP5X ="sp5x";
150        public static final String TYPE_SVQ1 ="svq1";
151        public static final String TYPE_SVQ3 ="svq3";
152        public static final String TYPE_THEORA ="theora";
153        public static final String TYPE_TRUEMOTION1 ="truemotion1";
154        public static final String TYPE_TRUEMOTION2 ="truemotion2";
155        public static final String TYPE_TRUESPEECH ="truespeech";
156        public static final String TYPE_TTA ="tta";
157        public static final String TYPE_ULTIMOTION ="ultimotion";
158        public static final String TYPE_VC9 ="vc9";
159        public static final String TYPE_VCR1 ="vcr1";
160        public static final String TYPE_VMDAUDIO ="vmdaudio";
161        public static final String TYPE_VMDVIDEO ="vmdvideo";
162        public static final String TYPE_VORBIS ="vorbis";
163        public static final String TYPE_VP3 ="vp3";
164        public static final String TYPE_VQAVIDEO ="vqavideo";
165        public static final String TYPE_WMAV1 ="wmav1";
166        public static final String TYPE_WMAV2 ="wmav2";
167        public static final String TYPE_WMV1 ="wmv1";
168        public static final String TYPE_WMV2 ="wmv2";
169        public static final String TYPE_WNV1 ="wnv1";
170        public static final String TYPE_WS_SND1 ="ws_snd1";
171        public static final String TYPE_XAN_DPCM ="xan_dpcm";
172        public static final String TYPE_XAN_WC3 ="xan_wc3";
173        public static final String TYPE_XL ="xl";
174        public static final String TYPE_XVID ="xvid";
175        public static final String TYPE_ZLIB ="zlib";
176        public static final String TYPE_ZMBV ="zmbv";
177
178        public static final int ASPECT_RATIO_16_9 =1;
179        public static final int ASPECT_RATIO_4_3 =2;
180        public static final int ASPECT_RATIO_1_33333 =ASPECT_RATIO_4_3;
181        public static final int ASPECT_RATIO_1_77777 =ASPECT_RATIO_16_9;
182
183        public static final int SCAN_MODE_INTERLACED =1;
184        public static final int SCAN_MODE_PROGRESSIV =2;
185        
186        
187        public VideoProfile duplicate();
188        
189
190        /**
191         * set the type of the output format (see constants "TYPE_xxx" of this class)
192         * @param type 
193         */
194        public void setType(String type);
195
196        /**
197         * @return the type
198         */
199        public String getType();
200
201        /**
202         * @return the dimension
203         */
204        public String getDimension();
205
206        public void setDimension(int width, int height);
207
208        /**
209         * @return the bitrate
210         */
211        public double getVideoBitrate();
212
213        /**
214         * set video bitrate in kbit/s (default 200)
215         * @param bitrate the bitrate to set
216         */
217        public void setVideoBitrate(long bitrate);
218
219        /**
220         * @return the framerate
221         */
222        public double getFramerate() ;
223
224        /**
225         * sets the framerate (default 25)
226         * @param framerate the framerate to set
227         */
228        public void setFramerate(double framerate);
229
230        /**
231         * @return the aspectRatio
232         */
233        public int getAspectRatio() ;
234
235        /**
236         * sets the aspectRatio (VideoOutput.ASPECT_RATIO_xxx)
237         * @param aspectRatio the aspectRatio to set
238         */
239        public void setAspectRatio(int aspectRatio);
240        
241
242        public void setAspectRatio(String strAspectRatio);
243        /**
244         * @return the bitrateMin
245         */
246        public double getVideoBitrateMin() ;
247
248        /**
249         * set min video bitrate tolerance (in kbit/s)
250         * @param bitrateMin the bitrateMin to set
251         */
252        public void setVideoBitrateMin(long bitrateMin);
253
254        /**
255         * @return the bitrateMax
256         */
257        public double getVideoBitrateMax() ;
258
259        /**
260         * set max video bitrate tolerance (in kbit/s)
261         * @param bitrateMax the bitrateMax to set
262         */
263        public void setVideoBitrateMax(long bitrateMax) ;
264
265        /**
266         * @return the bitrateTolerance
267         */
268        public double getVideoBitrateTolerance();
269
270        /**
271         * set video bitrate tolerance (in kbit/s)
272         * @param bitrateTolerance the bitrateTolerance to set
273         */
274        public void setVideoBitrateTolerance(long bitrateTolerance);
275
276        /**
277         * @return the audioBitrate
278         */
279        public double getAudioBitrate();
280
281        /**
282         * @return the scanMode
283         */
284        public int getScanMode();
285        
286        /**
287         * @param scanMode the scanMode to set
288         */
289        public void setScanMode(int scanMode);
290        
291        /**
292         * @param audioBitrate the audioBitrate to set
293         */
294        public void setAudioBitrate(long audioBitrate);
295        
296        public void setAudioCodec(String codec);
297        
298        public void setVideoCodec(String codec) ;
299        
300        /**
301         * @return the videoCodec
302         */
303        public String getVideoCodec();
304        /**
305         * @return the audioCodec
306         */
307        public String getAudioCodec();
308        
309        /**
310         * @return the audioSamplerate
311         */
312        public double getAudioSamplerate();
313        
314        /**
315         * @param audioSamplerate the audioSamplerate to set
316         */
317        public void setAudioSamplerate(double audioSamplerate);
318        
319        /**
320         * @return the bufferSize
321         */
322        public long getBufferSize();
323        
324        /**
325         * @param bufferSize the bufferSize to set
326         */
327        public void setBufferSize(long bufferSize);
328        
329        /**
330         * @return the pass
331         */
332        public int getPass();
333        
334        /**
335         * @param pass the pass to set
336         */
337        public void setPass(int pass);
338}