<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>play video in loop</title>
		<link>http://www.allegro.cc/forums/view/617212</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 28 Jan 2018 02:26:18 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi,<br />How can i play video in loop?<br />I tried to put al_seek_video(video,0) after some frames in ex_video.c example, <br />but not work. (event ALLEGRO_EVENT_VIDEO_FINISHED still occurs)</p><p>Thanks,
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Xpicolo)</author>
		<pubDate>Tue, 09 Jan 2018 12:24:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why not rewind the video with al_seek_video(video,0) when you get the ALLEGRO_EVENT_VIDEO_FINISHED event?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (beoran)</author>
		<pubDate>Tue, 09 Jan 2018 17:56:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I tried this, not work.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Xpicolo)</author>
		<pubDate>Tue, 09 Jan 2018 18:28:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="http://liballeg.org/a5docs/trunk/video.html#al_seek_video">http://liballeg.org/a5docs/trunk/video.html#al_seek_video</a></p><p>According to the docs, rewinding is not supported for all video formats and decoders. What format is the video? And what video driver for Allegro5 are you using?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (beoran)</author>
		<pubDate>Thu, 11 Jan 2018 05:01:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I use .ogv file and OpenGL.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Xpicolo)</author>
		<pubDate>Thu, 11 Jan 2018 15:30:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>.ogv file is just a container. We need to know the codec. VLC Media Player can give you all the info you need. Play the .ogv video with VLC, and then press CTRL + J to view the codec info.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 11 Jan 2018 20:02:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>To elaborate further: Some file formats only have one codec. But other file are actually &quot;container&quot; file formats. mkv, for example. That means they can have many different types of actual video and audio in the same file. Think of it like a zip, but dedicated to audio and video.</p><p>So you may have 100 mkv files that work fine, and 1 that doesn&#39;t. The reason is, that one (assuming it isn&#39;t corrupted) is using a different (unsupported) codec than the other 100.</p><p>So if it&#39;s not working, you need to find (and tell us) the <b>codec</b> that&#39;s missing or failing to load the file--not the <b>container.</b>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Fri, 12 Jan 2018 02:19:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Codec: Xiph.org&#39;s Theora Video (theo)<br />Decodec format: Planar 4:2:0 YUV<br />ENCODER: ffmpeg2theora-0.26
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Xpicolo)</author>
		<pubDate>Fri, 12 Jan 2018 15:18:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just for now, you can always play / stream the video again when you get the VIDEO_FINISHED event.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 12 Jan 2018 22:16:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>But that means to close, re-open and re-start video stream ?<br />So there will be a delay.</p><p>I&#39;m wrong?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Xpicolo)</author>
		<pubDate>Mon, 15 Jan 2018 18:55:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What you need to do is right after you call <span class="source-code">al_seek_video_video<span class="k2">(</span>video, <span class="n">0</span><span class="k2">)</span></span> is also call <span class="source-code">al_set_video_playing<span class="k2">(</span>video, <span class="k1">true</span><span class="k2">)</span></span>. Then it should work (and does for me on my machine).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Tue, 16 Jan 2018 02:25:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks SiegeLord,<br />That is.<br />Now work ok.</p><p>But I have a problem with delay when i restart video with seek.<br />This is the code I tried, and the resulting log.<br />Please someone to look at it or try to execute.</p><p>Firts, my .ovg file is at 10 FPS, but events ALLEGRO_EVENT_VIDEO_FRAME_SHOW occur @ 170 ms</p><p>events FRAME_SHOW at 299 msec, play position 0.20 &lt; why after 299msec and where is pos. 0.0 , 0.1 ?<br />events FRAME_SHOW at 164 msec, play position 0.30<br />events FRAME_SHOW at 168 msec, play position 0.40<br />events FRAME_SHOW at 167 msec, play position 0.50<br />events FRAME_SHOW at 168 msec, play position 0.60<br />events FRAME_SHOW at 169 msec, play position 0.70<br />events FRAME_SHOW at 172 msec, play position 0.80<br />events FRAME_SHOW at 171 msec, play position 0.90<br />events FRAME_SHOW at 172 msec, play position 1.00<br />events FRAME_SHOW at 172 msec, play position 1.10<br />events FRAME_SHOW at 172 msec, play position 1.20<br />events FRAME_SHOW at 172 msec, play position 1.30<br />events FRAME_SHOW at 170 msec, play position 1.40<br />events FRAME_SHOW at 168 msec, play position 1.50<br />events FRAME_SHOW at 167 msec, play position 1.60<br />events FRAME_SHOW at 168 msec, play position 1.70<br />events FRAME_SHOW at 169 msec, play position 1.80<br />events FRAME_SHOW at 171 msec, play position 1.90<br />events FRAME_SHOW at 173 msec, play position 2.00<br />events FRAME_SHOW at 171 msec, play position 2.10<br />events FRAME_SHOW at 173 msec, play position 2.20<br />events FRAME_SHOW at 172 msec, play position 2.30<br />events FRAME_SHOW at 172 msec, play position 2.40<br />events FRAME_SHOW at 172 msec, play position 2.50<br />events FRAME_SHOW at 171 msec, play position 2.60<br />events FRAME_SHOW at 170 msec, play position 2.70<br />events FRAME_SHOW at 169 msec, play position 2.80<br />events FRAME_SHOW at 166 msec, play position 2.90<br />events FRAME_SHOW at 164 msec, play position 3.00<br />events FRAME_SHOW at 163 msec, play position 3.00</p><p>restart play from 0.000000<br />events FRAME_SHOW at 671 msec, play position 0.50		&lt; why after 671 ms and why 0.5 pos ?<br />events FRAME_SHOW at 166 msec, play position 0.60<br />events FRAME_SHOW at 166 msec, play position 0.70<br />events FRAME_SHOW at 169 msec, play position 0.80<br />events FRAME_SHOW at 170 msec, play position 0.90<br />events FRAME_SHOW at 172 msec, play position 1.00<br />events FRAME_SHOW at 173 msec, play position 1.10<br />events FRAME_SHOW at 173 msec, play position 1.20<br />events FRAME_SHOW at 172 msec, play position 1.30<br />events FRAME_SHOW at 173 msec, play position 1.40<br />events FRAME_SHOW at 172 msec, play position 1.50<br />events FRAME_SHOW at 170 msec, play position 1.60<br />events FRAME_SHOW at 267 msec, play position 1.70<br />events FRAME_SHOW at 168 msec, play position 1.80<br />events FRAME_SHOW at 169 msec, play position 1.90<br />events FRAME_SHOW at 172 msec, play position 2.00<br />events FRAME_SHOW at 174 msec, play position 2.10<br />events FRAME_SHOW at 172 msec, play position 2.20<br />events FRAME_SHOW at 174 msec, play position 2.30<br />events FRAME_SHOW at 173 msec, play position 2.40<br />events FRAME_SHOW at 173 msec, play position 2.50<br />events FRAME_SHOW at 173 msec, play position 2.60<br />events FRAME_SHOW at 172 msec, play position 2.70<br />events FRAME_SHOW at 171 msec, play position 2.80<br />events FRAME_SHOW at 170 msec, play position 2.90<br />events FRAME_SHOW at 167 msec, play position 3.00<br />events FRAME_SHOW at 165 msec, play position 3.10		&lt; .ogv file have only 3 seconds<br />events FRAME_SHOW at 163 msec, play position 3.10</p><p>restart play from 0.000000<br />...</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">  2</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">  4</span><span class="p">#include &lt;allegro5/allegro_video.h&gt;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">int</span> width  <span class="k3">=</span> <span class="n">1024</span><span class="k2">;</span>
<span class="number">  7</span><span class="k1">int</span> height <span class="k3">=</span>  <span class="n">768</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span>
<span class="number"> 12</span><span class="k2">{</span>
<span class="number"> 13</span>    ALLEGRO_VIDEO <span class="k3">*</span>video<span class="k2">;</span>
<span class="number"> 14</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>frame<span class="k2">;</span>
<span class="number"> 15</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>queue<span class="k2">;</span>
<span class="number"> 16</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number"> 17</span>
<span class="number"> 18</span>    <a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>    <a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>    al_init_video_addon<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>
<span class="number"> 22</span>    display<span class="k3">=</span><a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>width, height<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>    queue<span class="k3">=</span><a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>
<span class="number"> 25</span>    video<span class="k3">=</span>al_open_video<span class="k2">(</span><span class="s">"main.ogv"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>
<span class="number"> 27</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>queue, al_get_video_event_source<span class="k2">(</span>video<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>
<span class="number"> 30</span>    al_start_video<span class="k2">(</span>video, <a href="http://www.allegro.cc/manual/al_get_default_mixer"><span class="a">al_get_default_mixer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>
<span class="number"> 32</span>    <span class="k1">double</span> old_time<span class="k3">=</span><a href="http://www.allegro.cc/manual/al_get_time"><span class="a">al_get_time</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>
<span class="number"> 34</span>    <span class="k1">while</span><span class="k2">(</span><span class="n">1</span><span class="k2">)</span>
<span class="number"> 35</span>    <span class="k2">{</span>
<span class="number"> 36</span>        <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>queue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span>
<span class="number"> 38</span>        <span class="k1">if</span><span class="k2">(</span>event.type<span class="k3">=</span><span class="k3">=</span>ALLEGRO_EVENT_VIDEO_FRAME_SHOW<span class="k2">)</span>
<span class="number"> 39</span>        <span class="k2">{</span>
<span class="number"> 40</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"events FRAME_SHOW at %.0f msec, "</span>,<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_time"><span class="a">al_get_time</span></a><span class="k2">(</span><span class="k2">)</span><span class="k3">-</span>old_time<span class="k2">)</span><span class="k3">*</span><span class="n">1000</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>            old_time<span class="k3">=</span><a href="http://www.allegro.cc/manual/al_get_time"><span class="a">al_get_time</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span>
<span class="number"> 43</span>            <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>frame <span class="k3">=</span> al_get_video_frame<span class="k2">(</span>video<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 44</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"play pozition %.2f\n"</span>,al_get_video_position<span class="k2">(</span>video, ALLEGRO_VIDEO_POSITION_ACTUAL<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 45</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>frame, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 46</span>            <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span>        <span class="k2">}</span>
<span class="number"> 48</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type<span class="k3">=</span><span class="k3">=</span>ALLEGRO_EVENT_VIDEO_FINISHED<span class="k2">)</span>
<span class="number"> 49</span>        <span class="k2">{</span>
<span class="number"> 50</span>            al_seek_video<span class="k2">(</span>video, <span class="n">0</span>.<span class="n">00</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"\nrestart play from %f\n"</span>,al_get_video_position<span class="k2">(</span>video, ALLEGRO_VIDEO_POSITION_ACTUAL<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 52</span>            al_set_video_playing<span class="k2">(</span>video, <span class="k1">true</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 53</span>
<span class="number"> 54</span>        <span class="k2">}</span>
<span class="number"> 55</span>    <span class="k2">}</span>
<span class="number"> 56</span>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 57</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Xpicolo)</author>
		<pubDate>Mon, 22 Jan 2018 15:13:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can you share your video with us? Just want to make sure there&#39;s no some weird interaction between it and the video addon.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Wed, 24 Jan 2018 22:04:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>this is the .ogv file
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Xpicolo)</author>
		<pubDate>Thu, 25 Jan 2018 13:56:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks for that, and the code. Indeed, there are a number of issues with playback, there are dropped frames, pauses and a bit of desync. There&#39;s nothing that you can do about it (the code and the file is fine), but we need to adjust how Allegro handles some things. I&#39;ll try to get it done before 5.2.4 release.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sun, 28 Jan 2018 02:26:18 +0000</pubDate>
	</item>
</rss>
