|
180 | 180 | <h1>funscript_editor.data namespace<a class="headerlink" href="#funscript-editor-data-namespace" title="Permalink to this headline">¶</a></h1> |
181 | 181 | <div class="section" id="submodules"> |
182 | 182 | <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> |
| 183 | +</div> |
| 184 | +<div class="section" id="module-funscript_editor.data.equirectangularvideostream"> |
| 185 | +<span id="funscript-editor-data-equirectangularvideostream-module"></span><h2>funscript_editor.data.equirectangularvideostream module<a class="headerlink" href="#module-funscript_editor.data.equirectangularvideostream" title="Permalink to this headline">¶</a></h2> |
| 186 | +<p>Methods to get equirectangular panorama video stream in normal perspective view.</p> |
| 187 | +<dl class="py class"> |
| 188 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream"> |
| 189 | +<em class="property"><span class="pre">class</span> </em><span class="sig-prename descclassname"><span class="pre">funscript_editor.data.equirectangularvideostream.</span></span><span class="sig-name descname"><span class="pre">EquirectangularVideoStream</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">video_path</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">FOV</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">THETA</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">PHI</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">height</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start_frame</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">queue_size</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">256</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream" title="Permalink to this definition">¶</a></dt> |
| 190 | +<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> |
| 191 | +<p>Python Class to read equirectangular panorama video stream in normal perspective view.</p> |
| 192 | +<dl class="simple"> |
| 193 | +<dt>NOTE:</dt><dd><p>We use the same api as the FileVideoStream to allow replacement</p> |
| 194 | +</dd> |
| 195 | +<dt>Args:</dt><dd><p>video_path (str): path to video file |
| 196 | +FOV (int): perspective FOV |
| 197 | +THETA (int): left/right angle in degree (right direction is positive, left direction is negative) |
| 198 | +PHI (int) up/down angle in degree (up direction positive, down direction negative) |
| 199 | +height (int): output image height |
| 200 | +width (int): output image width |
| 201 | +start_frame (int): start frame number |
| 202 | +queue_size (int): size of frame buffer</p> |
| 203 | +</dd> |
| 204 | +</dl> |
| 205 | +<dl class="py property"> |
| 206 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.current_frame_pos"> |
| 207 | +<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">current_frame_pos</span></span><em class="property"><span class="pre">:</span> <span class="pre">int</span></em><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.current_frame_pos" title="Permalink to this definition">¶</a></dt> |
| 208 | +<dd><p>Get current frame position</p> |
| 209 | +<dl class="simple"> |
| 210 | +<dt>Returns:</dt><dd><p>int: current frame</p> |
| 211 | +</dd> |
| 212 | +</dl> |
| 213 | +</dd></dl> |
| 214 | + |
| 215 | +<dl class="py property"> |
| 216 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.frame_height"> |
| 217 | +<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">frame_height</span></span><em class="property"><span class="pre">:</span> <span class="pre">int</span></em><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.frame_height" title="Permalink to this definition">¶</a></dt> |
| 218 | +<dd><p>Get Video Frame Height</p> |
| 219 | +<dl class="simple"> |
| 220 | +<dt>Returns:</dt><dd><p>int: video frame height</p> |
| 221 | +</dd> |
| 222 | +</dl> |
| 223 | +</dd></dl> |
| 224 | + |
| 225 | +<dl class="py method"> |
| 226 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.frame_to_millisec"> |
| 227 | +<span class="sig-name descname"><span class="pre">frame_to_millisec</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">frame</span></span></em><span class="sig-paren">)</span> → <span class="pre">int</span><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.frame_to_millisec" title="Permalink to this definition">¶</a></dt> |
| 228 | +<dd><p>Get timestamp for given frame number</p> |
| 229 | +<dl class="simple"> |
| 230 | +<dt>Args:</dt><dd><p>frame (int): frame number</p> |
| 231 | +</dd> |
| 232 | +<dt>Returns:</dt><dd><p>int: timestamp in video</p> |
| 233 | +</dd> |
| 234 | +</dl> |
| 235 | +</dd></dl> |
| 236 | + |
| 237 | +<dl class="py property"> |
| 238 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.frame_width"> |
| 239 | +<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">frame_width</span></span><em class="property"><span class="pre">:</span> <span class="pre">int</span></em><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.frame_width" title="Permalink to this definition">¶</a></dt> |
| 240 | +<dd><p>Get Video Frame Width</p> |
| 241 | +<dl class="simple"> |
| 242 | +<dt>Returns:</dt><dd><p>int: video frame width</p> |
| 243 | +</dd> |
| 244 | +</dl> |
| 245 | +</dd></dl> |
| 246 | + |
| 247 | +<dl class="py property"> |
| 248 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.get_fps"> |
| 249 | +<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">get_fps</span></span><em class="property"><span class="pre">:</span> <span class="pre">float</span></em><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.get_fps" title="Permalink to this definition">¶</a></dt> |
| 250 | +<dd><p>Get FPS of given video</p> |
| 251 | +<dl class="simple"> |
| 252 | +<dt>Returns:</dt><dd><p>float: fps</p> |
| 253 | +</dd> |
| 254 | +</dl> |
| 255 | +</dd></dl> |
| 256 | + |
| 257 | +<dl class="py method"> |
| 258 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.get_perspective"> |
| 259 | +<em class="property"><span class="pre">static</span> </em><span class="sig-name descname"><span class="pre">get_perspective</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">img</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">numpy.ndarray</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">FOV</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">THETA</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">PHI</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">height</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">RADIUS</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">128</span></span></em><span class="sig-paren">)</span> → <span class="pre">numpy.ndarray</span><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.get_perspective" title="Permalink to this definition">¶</a></dt> |
| 260 | +<dd><p>Get a normal perspective view from a panorama view.</p> |
| 261 | +<dl class="simple"> |
| 262 | +<dt>Args:</dt><dd><p>img (str, or opencv image object): path to image or opencv image data |
| 263 | +FOV (int): perspective FOV |
| 264 | +THETA (int): left/right angle in degree (right direction is positive, left direction is negative) |
| 265 | +PHI (int) up/down angle in degree (up direction positive, down direction negative) |
| 266 | +height (int): output image height |
| 267 | +width (int): output image width |
| 268 | +RADIUS (int, optional): sphere radius</p> |
| 269 | +</dd> |
| 270 | +<dt>Returns:</dt><dd><p>array: opencv image data</p> |
| 271 | +</dd> |
| 272 | +</dl> |
| 273 | +</dd></dl> |
| 274 | + |
| 275 | +<dl class="py method"> |
| 276 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.get_resolution"> |
| 277 | +<span class="sig-name descname"><span class="pre">get_resolution</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> → <span class="pre">tuple</span><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.get_resolution" title="Permalink to this definition">¶</a></dt> |
| 278 | +<dd><p>Get Resolution of given video</p> |
| 279 | +<dl class="simple"> |
| 280 | +<dt>Returns:</dt><dd><p>tuple: (width, height)</p> |
| 281 | +</dd> |
| 282 | +</dl> |
| 283 | +</dd></dl> |
| 284 | + |
| 285 | +<dl class="py method"> |
| 286 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.isOpen"> |
| 287 | +<span class="sig-name descname"><span class="pre">isOpen</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> → <span class="pre">bool</span><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.isOpen" title="Permalink to this definition">¶</a></dt> |
| 288 | +<dd><p>Check if equirectangular stream is open or a frame is still available in the buffer</p> |
| 289 | +<dl class="simple"> |
| 290 | +<dt>Returns:</dt><dd><p>bool: True if equirectangular strem is open or a frame is still available in the buffer else False</p> |
| 291 | +</dd> |
| 292 | +</dl> |
| 293 | +</dd></dl> |
| 294 | + |
| 295 | +<dl class="py method"> |
| 296 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.millisec_to_timestamp"> |
| 297 | +<span class="sig-name descname"><span class="pre">millisec_to_timestamp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">millis</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> → <span class="pre">str</span><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.millisec_to_timestamp" title="Permalink to this definition">¶</a></dt> |
| 298 | +<dd><p>Convert milliseconds to timestamp</p> |
| 299 | +<dl class="simple"> |
| 300 | +<dt>Args:</dt><dd><p>millis (int): position in video in milliseconds</p> |
| 301 | +</dd> |
| 302 | +<dt>Returns:</dt><dd><p>str: position in video as timestamp with H:M:S.XXX</p> |
| 303 | +</dd> |
| 304 | +</dl> |
| 305 | +</dd></dl> |
| 306 | + |
| 307 | +<dl class="py property"> |
| 308 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.number_of_frames"> |
| 309 | +<em class="property"><span class="pre">property</span> </em><span class="sig-name descname"><span class="pre">number_of_frames</span></span><em class="property"><span class="pre">:</span> <span class="pre">int</span></em><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.number_of_frames" title="Permalink to this definition">¶</a></dt> |
| 310 | +<dd><p>Get number of frames in video</p> |
| 311 | +<dl class="simple"> |
| 312 | +<dt>Returns:</dt><dd><p>int: number of frames in video</p> |
| 313 | +</dd> |
| 314 | +</dl> |
| 315 | +</dd></dl> |
| 316 | + |
| 317 | +<dl class="py method"> |
| 318 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.read"> |
| 319 | +<span class="sig-name descname"><span class="pre">read</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> → <span class="pre">numpy.ndarray</span><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.read" title="Permalink to this definition">¶</a></dt> |
| 320 | +<dd><p>Get next frame from equirectangular stream</p> |
| 321 | +<dl class="simple"> |
| 322 | +<dt>Returns:</dt><dd><p>np.ndarray: opencv image data</p> |
| 323 | +</dd> |
| 324 | +</dl> |
| 325 | +</dd></dl> |
| 326 | + |
| 327 | +<dl class="py method"> |
| 328 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.run"> |
| 329 | +<span class="sig-name descname"><span class="pre">run</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> → <span class="pre">None</span><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.run" title="Permalink to this definition">¶</a></dt> |
| 330 | +<dd><p>Function to read transformed frames from ffmpeg video stream into a queue</p> |
| 331 | +</dd></dl> |
| 332 | + |
| 333 | +<dl class="py method"> |
| 334 | +<dt class="sig sig-object py" id="funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.stop"> |
| 335 | +<span class="sig-name descname"><span class="pre">stop</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> → <span class="pre">None</span><a class="headerlink" href="#funscript_editor.data.equirectangularvideostream.EquirectangularVideoStream.stop" title="Permalink to this definition">¶</a></dt> |
| 336 | +<dd><p>Stop equirectangular stream</p> |
| 337 | +</dd></dl> |
| 338 | + |
| 339 | +</dd></dl> |
| 340 | + |
183 | 341 | </div> |
184 | 342 | <div class="section" id="module-funscript_editor.data.filevideostream"> |
185 | 343 | <span id="funscript-editor-data-filevideostream-module"></span><h2>funscript_editor.data.filevideostream module<a class="headerlink" href="#module-funscript_editor.data.filevideostream" title="Permalink to this headline">¶</a></h2> |
|
0 commit comments