Skip to content

Commit f8c92f4

Browse files
author
arch
committed
fix first frame method
1 parent 672ba2c commit f8c92f4

17 files changed

+246
-172
lines changed

docs/app/site/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,5 +204,5 @@ <h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
204204

205205
<!--
206206
MkDocs version : 1.1.2
207-
Build Date UTC : 2021-06-27 12:14:47.077222+00:00
207+
Build Date UTC : 2021-06-27 16:10:17.226076+00:00
208208
-->

docs/app/site/sitemap.xml.gz

0 Bytes
Binary file not shown.
2.95 KB
Binary file not shown.
-27.1 KB
Binary file not shown.
47.3 KB
Binary file not shown.
-2 Bytes
Binary file not shown.

docs/code/_build/html/_sources/funscript_editor.algorithms.rst.txt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@ funscript\_editor.algorithms namespace
44
Submodules
55
----------
66

7-
funscript\_editor.algorithms.equirectangular module
8-
---------------------------------------------------
9-
10-
.. automodule:: funscript_editor.algorithms.equirectangular
11-
:members:
12-
:undoc-members:
13-
:show-inheritance:
14-
157
funscript\_editor.algorithms.funscriptgenerator module
168
------------------------------------------------------
179

docs/code/_build/html/_sources/funscript_editor.data.rst.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ funscript\_editor.data namespace
44
Submodules
55
----------
66

7+
funscript\_editor.data.equirectangularvideostream module
8+
--------------------------------------------------------
9+
10+
.. automodule:: funscript_editor.data.equirectangularvideostream
11+
:members:
12+
:undoc-members:
13+
:show-inheritance:
14+
715
funscript\_editor.data.filevideostream module
816
---------------------------------------------
917

docs/code/_build/html/funscript_editor.algorithms.html

Lines changed: 27 additions & 125 deletions
Large diffs are not rendered by default.

docs/code/_build/html/funscript_editor.data.html

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,164 @@
180180
<h1>funscript_editor.data namespace<a class="headerlink" href="#funscript-editor-data-namespace" title="Permalink to this headline"></a></h1>
181181
<div class="section" id="submodules">
182182
<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> &#x2192; <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> &#x2192; <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> &#x2192; <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> &#x2192; <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> &#x2192; <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> &#x2192; <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> &#x2192; <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> &#x2192; <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+
183341
</div>
184342
<div class="section" id="module-funscript_editor.data.filevideostream">
185343
<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

Comments
 (0)