stupeflixclient 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/fixtures/movie.xml +348 -0
- data/lib/stupeflixclient.rb +31 -0
- data/lib/stupeflixclient/connection.rb +123 -0
- data/lib/stupeflixclient/constants.rb +4 -0
- data/lib/stupeflixclient/settings.rb +4 -0
- data/lib/stupeflixclient/stupeflix_base.rb +273 -0
- data/lib/stupeflixclient/stupeflix_client.rb +354 -0
- data/lib/stupeflixclient/version.rb +3 -0
- data/lib/stupeflixclient/video.rb +8 -0
- data/spec/spec_helper.rb +14 -0
- data/stupeflixclient.gemspec +26 -0
- metadata +131 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZWRhNTQ4ZjE4ZTcyYTA1ZjIzOTg3MGJhNGUzNzBlOTMwYzYzYjJmZg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
Y2FhNDBjMjA0MDM2Yjk3MGEzODFmMjRjMjA2ZTdlZDRjOGY1MWUyNQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NWM3NDMzZDllMTdhMzNhMmE3MjRkMGY4ZGNmZjZlMmMyOGQ3OWVjYjI1ZGE1
|
10
|
+
NjU3ZDk0NzViYjA2NTdlMWU2NjY0Yjk1ZTdkNDFiMzNlMmZmNGZlZTI5MDVh
|
11
|
+
YmY4OWRhNmM1N2M3YWQyYzNiZjMwM2QyZDVkZWVlOTU2OTk0YTU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NzkzZDBjNWFiODkwYjVmNWUyNDQ4YTlhMDVjMWVlZDQzMTBlY2FiNTY2NzRl
|
14
|
+
YzViNmNkZDQ2MGE2NWRhOGM5OTJlMzZlYTQwNTdhZjYxNjczOWYzYjk3Njdi
|
15
|
+
YTYyMGUzMTVhOWI4MGZjOTUzOTU0NGI2ODU3MzRhMmVmNWE4MDA=
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Claus Witt
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# Stupeflixclient
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'stupeflixclient'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install stupeflixclient
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
TODO: Write usage instructions here
|
22
|
+
|
23
|
+
## Contributing
|
24
|
+
|
25
|
+
1. Fork it
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/fixtures/movie.xml
ADDED
@@ -0,0 +1,348 @@
|
|
1
|
+
<movie service="craftsman-1.0">
|
2
|
+
<body>
|
3
|
+
<!-- Top level stack: contains the soundtrack and the video itself-->
|
4
|
+
<stack>
|
5
|
+
<!-- Add a movie wide soundtrack: duration of the soundtrack is dependant on the up node (stack) using duration =".." -->
|
6
|
+
<!-- Silence, L'autre endroit: http://www.jamendo.com/fr/album/830 -->
|
7
|
+
<audio filename="http://assets.stupeflix.com/code/ebusinessvideo/soundtracks/Realite.mp3" volume="0.5" fadeout="4.0" duration=".."/>
|
8
|
+
<!-- Top level sequence -->
|
9
|
+
<sequence>
|
10
|
+
<!-- First part: sequence of two background images with a single text overlay -->
|
11
|
+
<stack duration="6.0">
|
12
|
+
<!-- Sequence of images -->
|
13
|
+
<sequence>
|
14
|
+
<!-- Classical kenburns effect -->
|
15
|
+
<effect type="kenburns" duration="3.5">
|
16
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/file_11.jpg">
|
17
|
+
<!-- Small trick: Add a small white frame with no transparency to the image to reduce it at rendering time => no edit of the image is needed -->
|
18
|
+
<filter type="frame" width="0.1" color="#FFFFFFFF"/>
|
19
|
+
</image>
|
20
|
+
</effect>
|
21
|
+
<!-- Transition between the two background images -->
|
22
|
+
<transition type="move" duration="1.0"/>
|
23
|
+
<!-- Same effect for the second background image -->
|
24
|
+
<effect type="kenburns" duration="3.5">
|
25
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/file_10.jpg">
|
26
|
+
<filter type="frame" width="0.1" color="#FFFFFFFF"/>
|
27
|
+
</image>
|
28
|
+
</effect>
|
29
|
+
</sequence>
|
30
|
+
<!-- Text overlay with shadow: shadow is currently created duplicating the text in black with some blur added-->
|
31
|
+
<!-- NB: newlines are currently ignored at the start and end of text, so this xml is indented to ease the explanations, but you should not add extra newlines in
|
32
|
+
your own xml. -->
|
33
|
+
|
34
|
+
<!-- Text like placement using left, bottom and height. Apply black font color as this is the shadow. -->
|
35
|
+
<text type="zone" left="0.09" bottom="0.13" height="0.18" fontcolor="#000000">
|
36
|
+
EOS 50D:
|
37
|
+
<!-- Animator: grow will slowly increase text size (implemented by moving the text near the camera in 3D)-->
|
38
|
+
<animator type="grow" />
|
39
|
+
<!-- Make the text appear in 1 second, sliding from the left -->
|
40
|
+
<animator type="slide-in" direction="left" duration="1.0"/>
|
41
|
+
<!-- Make the text disappear in 1 second, sliding from the left -->
|
42
|
+
<animator type="slide-out" direction="left" duration="1.0"/>
|
43
|
+
<!-- Make the text slowly move to improve attractiveness -->
|
44
|
+
<animator type="slide" direction="left" duration="6.0"/>
|
45
|
+
<!-- Text will appear in 1.5s from totally transparent, to totally opaque (in addition to the slide-in effect) -->
|
46
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.5"/>
|
47
|
+
<!-- Text will disappear in 1.5s from totally opaque, to totally transparent (in addition to the slide-out effect) -->
|
48
|
+
<!-- Note the margin-end that will fix the effect to the end of text effect. (just like a CSS property, but for time) -->
|
49
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.5"/>
|
50
|
+
<!-- Add a blur effect to soften shadow edges -->
|
51
|
+
<filter type="blur" diameter="2.0"/>
|
52
|
+
</text>
|
53
|
+
<!-- Text itself: same xml, with slight variations on position and color-->
|
54
|
+
<!-- Text color is almost white -->
|
55
|
+
<text type="zone" left="0.1" bottom="0.12" height="0.18" fontcolor="#DDDDDD">
|
56
|
+
EOS 50D:
|
57
|
+
<animator type="grow" duration="6.0"/>
|
58
|
+
<animator type="slide-in" direction="left" duration="1.0"/>
|
59
|
+
<animator type="slide-out" direction="left" duration="1.0"/>
|
60
|
+
<animator type="slide" direction="left" duration="6.0"/>
|
61
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.5"/>
|
62
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.5"/>
|
63
|
+
</text>
|
64
|
+
<!-- Same tricks for the rest of text -->
|
65
|
+
<text type="zone" left="0.09" bottom="0.01" height="0.18" fontcolor="#000000">
|
66
|
+
Explore photography
|
67
|
+
<animator type="grow" duration="6.0"/>
|
68
|
+
<animator type="slide-in" direction="right" duration="1.0"/>
|
69
|
+
<animator type="slide-out" direction="right" duration="1.0"/>
|
70
|
+
<animator type="slide" direction="right" duration="6.0"/>
|
71
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.5"/>
|
72
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.5"/>
|
73
|
+
<filter type="blur" diameter="2.0"/>
|
74
|
+
</text>
|
75
|
+
<text type="zone" left="0.1" bottom="0.0" height="0.18" fontcolor="#DDDDDD">
|
76
|
+
Explore photography
|
77
|
+
<animator type="grow" duration="6.0"/>
|
78
|
+
<animator type="slide-in" direction="right" duration="1.0"/>
|
79
|
+
<animator type="slide-out" direction="right" duration="1.0"/>
|
80
|
+
<animator type="slide" direction="right" duration="6.0"/>
|
81
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.5"/>
|
82
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.5"/>
|
83
|
+
</text>
|
84
|
+
</stack>
|
85
|
+
<!-- Transition -->
|
86
|
+
<transition type="cube" duration="1.0"/>
|
87
|
+
<!-- Second camera image set: basically same set of effects-->
|
88
|
+
<stack duration="6.0">
|
89
|
+
<sequence>
|
90
|
+
<effect type="kenburns" duration="3.5">
|
91
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/file_13.jpg">
|
92
|
+
<filter type="frame" width="0.1" color="#FFFFFFFF"/>
|
93
|
+
</image>
|
94
|
+
</effect>
|
95
|
+
<transition type="under" duration="1.0"/>
|
96
|
+
<effect type="kenburns" duration="3.5">
|
97
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/file_07.jpg">
|
98
|
+
<filter type="frame" width="0.1" color="#FFFFFFFF"/>
|
99
|
+
</image>
|
100
|
+
</effect>
|
101
|
+
</sequence>
|
102
|
+
<text type="zone" left="0.09" bottom="0.13" height="0.18" fontcolor="#000000">
|
103
|
+
15.1 Megapixels,
|
104
|
+
<animator type="grow" duration="6.0"/>
|
105
|
+
<animator type="slide-in" direction="left" duration="1.0"/>
|
106
|
+
<animator type="slide-out" direction="left" duration="1.0"/>
|
107
|
+
<animator type="slide" direction="left" duration="6.0"/>
|
108
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.5"/>
|
109
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.5"/>
|
110
|
+
<filter type="blur" diameter="2.0"/>
|
111
|
+
</text>
|
112
|
+
<text type="zone" left="0.1" bottom="0.12" height="0.18" fontcolor="#DDDDDD">
|
113
|
+
15.1 Megapixels,
|
114
|
+
<animator type="grow" duration="6.0"/>
|
115
|
+
<animator type="slide-in" direction="left" duration="1.0"/>
|
116
|
+
<animator type="slide-out" direction="left" duration="1.0"/>
|
117
|
+
<animator type="slide" direction="left" duration="6.0"/>
|
118
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.5"/>
|
119
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.5"/>
|
120
|
+
</text>
|
121
|
+
<text type="zone" left="0.09" bottom="0.01" height="0.18" fontcolor="#000000">
|
122
|
+
Bright 3" LCD
|
123
|
+
<animator type="grow" duration="6.0"/>
|
124
|
+
<animator type="slide-in" direction="right" duration="1.0"/>
|
125
|
+
<animator type="slide-out" direction="right" duration="1.0"/>
|
126
|
+
<animator type="slide" direction="right" duration="6.0"/>
|
127
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.5"/>
|
128
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.5"/>
|
129
|
+
<filter type="blur" diameter="2.0"/>
|
130
|
+
</text>
|
131
|
+
<text type="zone" left="0.1" bottom="0.0" height="0.18" fontcolor="#DDDDDD">
|
132
|
+
Bright 3" LCD
|
133
|
+
<animator type="grow" duration="6.0"/>
|
134
|
+
<animator type="slide-in" direction="right" duration="1.0"/>
|
135
|
+
<animator type="slide-out" direction="right" duration="1.0"/>
|
136
|
+
<animator type="slide" direction="right" duration="6.0"/>
|
137
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.5"/>
|
138
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.5"/>
|
139
|
+
</text>
|
140
|
+
</stack>
|
141
|
+
<transition type="move" duration="1.0"/>
|
142
|
+
<!-- Third Image Set : single image with a set of logo added to the right -->
|
143
|
+
<stack duration="6.0">
|
144
|
+
<stack duration="6.0">
|
145
|
+
<sequence>
|
146
|
+
<effect type="kenburns" duration="6.0">
|
147
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/file_12.jpg">
|
148
|
+
<filter type="frame" width="0.1" color="#FFFFFFFF"/>
|
149
|
+
</image>
|
150
|
+
</effect>
|
151
|
+
</sequence>
|
152
|
+
</stack>
|
153
|
+
<!-- Sets of small feature logo on the right: number of megapixels, lcd size, digic logo etc ...-->
|
154
|
+
<!-- overlay position is CSS like properties, just like for text: top and right margin + height, in fraction of height / width -->
|
155
|
+
<overlay top="0.05" right="0.02" height="0.16">
|
156
|
+
<!-- Base Image -->
|
157
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/megapixels.gif"/>
|
158
|
+
<!-- Apparition animation : slide-in, and time margin -->
|
159
|
+
<animator duration="1.0" type="slide-in" margin-start="0.0"/>
|
160
|
+
<!-- Disparition animation : slide-out, time margin, and direction -->
|
161
|
+
<animator duration="1.0" type="slide-out" margin-end="0.8" direction="right" />
|
162
|
+
</overlay>
|
163
|
+
<overlay top="0.23" right="0.02" height="0.16">
|
164
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/lcd_size.gif"/>
|
165
|
+
<!-- margin-start is increased from an image to the next one, to shift apparition of logos -->
|
166
|
+
<animator duration="1.0" type="slide-in" margin-start="0.5"/>
|
167
|
+
<!-- margin-end is dereased from an image to the next one, to shift disparition of logos -->
|
168
|
+
<animator duration="1.0" type="slide-out" margin-end="0.6" direction="right"/>
|
169
|
+
</overlay>
|
170
|
+
<!-- So on ... -->
|
171
|
+
<overlay top="0.41" right="0.02" height="0.16">
|
172
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/digic4.gif"/>
|
173
|
+
<animator duration="1.0" type="slide-in" margin-start="1.0"/>
|
174
|
+
<animator duration="1.0" type="slide-out" margin-end="0.4" direction="right"/>
|
175
|
+
</overlay>
|
176
|
+
<overlay top="0.59" right="0.02" height="0.16">
|
177
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/liveview.gif"/>
|
178
|
+
<animator duration="1.0" type="slide-in" margin-start="1.5"/>
|
179
|
+
<animator duration="1.0" type="slide-out" margin-end="0.2" direction="right" />
|
180
|
+
</overlay>
|
181
|
+
<overlay top="0.77" right="0.02" height="0.16">
|
182
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/pictbridge.gif"/>
|
183
|
+
<animator duration="1.0" type="slide-in" margin-start="2.0"/>
|
184
|
+
<animator duration="1.0" type="slide-out" margin-end="0.0" direction="right"/>
|
185
|
+
</overlay>
|
186
|
+
</stack>
|
187
|
+
<transition type="crossfade" duration="0.3"/>
|
188
|
+
<!-- Fourth part: slideshow of photos take with the camera -->
|
189
|
+
<stack duration="12.0">
|
190
|
+
<!-- Multi image effect : several images on the same scene, with rotation between each couple.-->
|
191
|
+
<effect type="rotator" duration="12.0">
|
192
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/2008-10-14_14-09-18.jpg">
|
193
|
+
<filter type="borderBlur" transWidth="0.05" width="0.0"/>
|
194
|
+
</image>
|
195
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/2008-10-10_17-08-27.jpg">
|
196
|
+
<filter type="borderBlur" transWidth="0.05" width="0.0"/>
|
197
|
+
</image>
|
198
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/2008-10-10_15-55-14.jpg">
|
199
|
+
<filter type="borderBlur" transWidth="0.05" width="0.0"/>
|
200
|
+
</image>
|
201
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/2008-10-10_14-03-50.jpg">
|
202
|
+
<filter type="borderBlur" transWidth="0.05" width="0.0"/>
|
203
|
+
</image>
|
204
|
+
</effect>
|
205
|
+
<!-- Same shadow / text effects as previously -->
|
206
|
+
<text type="zone" left="0.09" bottom="0.11" height="0.13" fontcolor="#000000">
|
207
|
+
Improved noise reduction:
|
208
|
+
<animator type="grow" duration="12.0"/>
|
209
|
+
<animator type="slide-in" direction="left" duration="2.0"/>
|
210
|
+
<animator type="slide-out" direction="left" duration="2.0"/>
|
211
|
+
<animator type="slide" direction="left" duration="12.0"/>
|
212
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="3.0"/>
|
213
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="3.0"/>
|
214
|
+
<filter type="blur" diameter="2.0"/>
|
215
|
+
</text>
|
216
|
+
<text type="zone" left="0.1" bottom="0.1" height="0.13" fontcolor="#FFFFFF">
|
217
|
+
Improved noise reduction:
|
218
|
+
<animator type="grow" duration="12.0"/>
|
219
|
+
<animator type="slide-in" direction="left" duration="2.0"/>
|
220
|
+
<animator type="slide-out" direction="left" duration="2.0"/>
|
221
|
+
<animator type="slide" direction="left" duration="12.0"/>
|
222
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="3.0"/>
|
223
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="3.0"/>
|
224
|
+
</text>
|
225
|
+
<text type="zone" left="0.09" bottom="0.03" height="0.13" fontcolor="#000000">
|
226
|
+
exceptional image quality
|
227
|
+
<animator type="grow" duration="12.0"/>
|
228
|
+
<animator type="slide-in" direction="right" duration="2.0"/>
|
229
|
+
<animator type="slide-out" direction="right" duration="2.0"/>
|
230
|
+
<animator type="slide" direction="right" duration="12.0"/>
|
231
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="3.0"/>
|
232
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="3.0"/>
|
233
|
+
<filter type="blur" diameter="2.0"/>
|
234
|
+
</text>
|
235
|
+
<text type="zone" left="0.1" bottom="0.02" height="0.13" fontcolor="#FFFFFF">
|
236
|
+
exceptional image quality
|
237
|
+
<animator type="grow" duration="12.0"/>
|
238
|
+
<animator type="slide-in" direction="right" duration="2.0"/>
|
239
|
+
<animator type="slide-out" direction="right" duration="2.0"/>
|
240
|
+
<animator type="slide" direction="right" duration="12.0"/>
|
241
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="3.0"/>
|
242
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="3.0"/>
|
243
|
+
</text>
|
244
|
+
</stack>
|
245
|
+
<transition type="crossfade" duration="1.0"/>
|
246
|
+
<!-- Fifth part : first journalist comment -->
|
247
|
+
<stack duration="4.0">
|
248
|
+
<text type="zone" left="0.09" bottom="0.53" height="0.18" fontcolor="#000000">
|
249
|
+
"High-speed and perfect quality"
|
250
|
+
<animator type="grow" duration="4.0"/>
|
251
|
+
<animator type="slide-in" direction="left" duration="0.666666666667"/>
|
252
|
+
<animator type="slide-out" direction="left" duration="0.666666666667"/>
|
253
|
+
<animator type="slide" direction="left" duration="4.0"/>
|
254
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.0"/>
|
255
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.0"/>
|
256
|
+
<filter type="blur" diameter="2.0"/>
|
257
|
+
</text>
|
258
|
+
<text type="zone" left="0.1" bottom="0.52" height="0.18" fontcolor="#DDDDDD">
|
259
|
+
"High-speed and perfect quality"
|
260
|
+
<animator type="grow" duration="4.0"/>
|
261
|
+
<animator type="slide-in" direction="left" duration="0.666666666667"/>
|
262
|
+
<animator type="slide-out" direction="left" duration="0.666666666667"/>
|
263
|
+
<animator type="slide" direction="left" duration="4.0"/>
|
264
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.0"/>
|
265
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.0"/>
|
266
|
+
</text>
|
267
|
+
<text type="zone" left="0.09" bottom="0.41" height="0.18" fontcolor="#000000">
|
268
|
+
The Photographer
|
269
|
+
<animator type="grow" duration="4.0"/>
|
270
|
+
<animator type="slide-in" direction="right" duration="0.666666666667"/>
|
271
|
+
<animator type="slide-out" direction="right" duration="0.666666666667"/>
|
272
|
+
<animator type="slide" direction="right" duration="4.0"/>
|
273
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.0"/>
|
274
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.0"/>
|
275
|
+
<filter type="blur" diameter="2.0"/>
|
276
|
+
</text>
|
277
|
+
<text type="zone" left="0.1" bottom="0.4" height="0.18" fontcolor="#DDDDDD">
|
278
|
+
The Photographer
|
279
|
+
<animator type="grow" duration="4.0"/>
|
280
|
+
<animator type="slide-in" direction="right" duration="0.666666666667"/>
|
281
|
+
<animator type="slide-out" direction="right" duration="0.666666666667"/>
|
282
|
+
<animator type="slide" direction="right" duration="4.0"/>
|
283
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.0"/>
|
284
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.0"/>
|
285
|
+
</text>
|
286
|
+
</stack>
|
287
|
+
<transition type="crossfade" duration="1.0"/>
|
288
|
+
<!-- Sixth part : second journalist comment -->
|
289
|
+
<stack duration="4.0">
|
290
|
+
<text type="zone" left="0.09" bottom="0.33" height="0.18" fontcolor="#000000">
|
291
|
+
"Feature-packed and affordable."
|
292
|
+
<animator type="grow" duration="4.0"/>
|
293
|
+
<animator type="slide-in" direction="left" duration="0.666666666667"/>
|
294
|
+
<animator type="slide-out" direction="left" duration="0.666666666667"/>
|
295
|
+
<animator type="slide" direction="left" duration="4.0"/>
|
296
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.0"/>
|
297
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.0"/>
|
298
|
+
<filter type="blur" diameter="2.0"/>
|
299
|
+
</text>
|
300
|
+
<text type="zone" left="0.1" bottom="0.32" height="0.18" fontcolor="#DDDDDD">
|
301
|
+
"Feature-packed and affordable."
|
302
|
+
<animator type="grow" duration="4.0"/>
|
303
|
+
<animator type="slide-in" direction="left" duration="0.666666666667"/>
|
304
|
+
<animator type="slide-out" direction="left" duration="0.666666666667"/>
|
305
|
+
<animator type="slide" direction="left" duration="4.0"/>
|
306
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.0"/>
|
307
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.0"/>
|
308
|
+
</text>
|
309
|
+
<text type="zone" left="0.09" bottom="0.21" height="0.18" fontcolor="#000000">
|
310
|
+
Camera online
|
311
|
+
<animator type="grow" duration="4.0"/>
|
312
|
+
<animator type="slide-in" direction="right" duration="0.666666666667"/>
|
313
|
+
<animator type="slide-out" direction="right" duration="0.666666666667"/>
|
314
|
+
<animator type="slide" direction="right" duration="4.0"/>
|
315
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.0"/>
|
316
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.0"/>
|
317
|
+
<filter type="blur" diameter="2.0"/>
|
318
|
+
</text>
|
319
|
+
<text type="zone" left="0.1" bottom="0.2" height="0.18" fontcolor="#DDDDDD">
|
320
|
+
Camera online
|
321
|
+
<animator type="grow" duration="4.0"/>
|
322
|
+
<animator type="slide-in" direction="right" duration="0.666666666667"/>
|
323
|
+
<animator type="slide-out" direction="right" duration="0.666666666667"/>
|
324
|
+
<animator type="slide" direction="right" duration="4.0"/>
|
325
|
+
<filter type="alpha" alphaStart="0.0" alphaEnd="1.0" duration="1.0"/>
|
326
|
+
<filter type="alpha" margin-end="0.0" alphaStart="1.0" alphaEnd="0.0" duration="1.0"/>
|
327
|
+
</text>
|
328
|
+
</stack>
|
329
|
+
<transition type="crossfade" duration="0.5"/>
|
330
|
+
<!-- Finally the Stupeflix end animation -->
|
331
|
+
<effect duration="1.6" type="none">
|
332
|
+
<!-- A single blank image -->
|
333
|
+
<image color="#FFFFFF"/>
|
334
|
+
</effect>
|
335
|
+
<transition type="move" duration="1" direction="up"/>
|
336
|
+
<!-- First logo, without subtitle-->
|
337
|
+
<effect duration="2.5" type="none">
|
338
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/logo1.jpg"/>
|
339
|
+
</effect>
|
340
|
+
<transition type="circle" duration="1"/>
|
341
|
+
<!-- Identical logo, with subtitile => transition will make it appear -->
|
342
|
+
<effect duration="3" type="none">
|
343
|
+
<image filename="http://assets.stupeflix.com/code/ebusinessvideo/images/logo2.jpg"/>
|
344
|
+
</effect>
|
345
|
+
</sequence>
|
346
|
+
</stack>
|
347
|
+
</body>
|
348
|
+
</movie>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'stupeflixclient/version'
|
2
|
+
require 'stupeflixclient/settings'
|
3
|
+
require 'stupeflixclient/constants'
|
4
|
+
require 'stupeflixclient/settings'
|
5
|
+
require 'stupeflixclient/connection'
|
6
|
+
require 'stupeflixclient/stupeflix_base'
|
7
|
+
require 'stupeflixclient/stupeflix_client'
|
8
|
+
require 'stupeflixclient/video'
|
9
|
+
|
10
|
+
|
11
|
+
module Stupeflixclient
|
12
|
+
def self.default_client
|
13
|
+
StupeflixClient.new(Settings::ACCESS_KEY, Settings::ACCESS_SECRET, Constants::SERVER_NAME)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.generate_videos batch_file
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.generate_video definition
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.test_run client, filename
|
23
|
+
uploads = [StupeflixDefaultUpload.new()]
|
24
|
+
profileArray = [StupeflixProfile.new('iphone', uploads = uploads)]
|
25
|
+
profiles = StupeflixProfileSet.new(profileArray, meta = nil, notify = nil)
|
26
|
+
# First send the movie definition file to the service. (see sample movie.xml in this directory)
|
27
|
+
client.sendDefinition('testuser', 'testresource', filename)
|
28
|
+
# Then launch the generation, using the configuration we have built earlier
|
29
|
+
client.createProfiles('testuser', 'testresource', profiles)
|
30
|
+
end
|
31
|
+
end
|