On 01/01/2008, <b class="gmail_sendername">Stuart Morgan</b> &lt;<a href="mailto:stuart@tase.co.uk">stuart@tase.co.uk</a>&gt; wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Tuesday 01 January 2008 13:52:43 Ashley Bostock wrote:<br>&gt; mplayer, xine, etc... will play most files you throw at them and<br>&gt; ffwd/rewind without issue.&nbsp;&nbsp;For the Internal player you have to make sure<br>&gt; you have pre-built a seek table for each file otherwise it doesn&#39;t
<br>&gt; ffwd/rewind at all, or is very jumpy, and/or you get sound still playing<br>&gt; while it does so. I think most people are put off straight away when that<br>&gt; doesn&#39;t work and just switch to using an external player.&nbsp;&nbsp;Once that part
<br>&gt; gets automated I think more people will use it.&nbsp;&nbsp;On a side note, any idea<br>&gt; why myth needs the seek table to be built when mplayer, xine, etc... don&#39;t<br>&gt; have any problems at all?&nbsp;&nbsp;Only time I&#39;ve been prompted by mplayer or xine
<br>&gt; to rebuld one (assuming that&#39;s the same thing) is if I have a slightly<br>&gt; broken avi file. Aren&#39;t these stored in the file already?<br>&gt;<br>&gt; Ash<br><br>The seeking without a seektable is a little broken in trunk, it needs fixing
<br>but it&#39;s off the radar of most devs because recordings will generally have<br>seektables. It shouldn&#39;t be hard to do though and if someone opens a ticket<br>it will probably get fixed for 0.21.<br><br>To explain the reason for building seektables I&#39;m just going to
<br>copy/edit/paste what I said in IRC last night to this same question:<br><br>By building a seektable mythtv can do frame accurate skipping and smoother<br>ffw/rew etc. Notice that mplayer/xine don&#39;t really offer ffw/rew.
<br><br>In order to skip etc you need to move the read pointer ahead in the file. So<br>you need to know what point in the file is equal to the time unit used. e.g.<br>1 minute might be 36,163 bytes ahead in the file.<br>
<br>Mplayer/xine etc just make guesses based on average bitrate, so although you<br>are asking them to skip 1 minute forward in the video, they might actually do<br>anything from 45 seconds to 1 minutes 15 seconds.<br><br>
When you build a seektable in mythtv, we go through the file at high speed and<br>record the location of every keyframe, so when you skip 1 minute you move<br>exactly one minute in the video. We are not performing calculations to work
<br>out the correct byte/jump amount and can skip much faster, thus allowing<br>FFW/REW as well as accuracy down to the exact frame of video.<br>--<br>Stuart Morgan<br>_______________________________________________<br>mythtv-dev mailing list
<br><a href="mailto:mythtv-dev@mythtv.org">mythtv-dev@mythtv.org</a><br><a href="http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev">http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev</a><br></blockquote></div><br>Thanks for the explanation, that does make sense.
<br><br>Other reasons I don&#39;t use the Internal player is that many of the video podcasts I watch do not play correctly or even at all.<br><br>Few examples I just tried (with svn 15223 tested lastest episode from each feed)...
<br><a href="http://www.hak5.org/rss/xvid.xml">http://www.hak5.org/rss/xvid.xml</a>&nbsp; - Plays video but no sound.<br><a href="http://revision3.com/systm/feed/quicktime-large">http://revision3.com/systm/feed/quicktime-large
</a> - Get a black screen as if its about to play, then just goes back to the video info screen.<br><a href="http://revision3.com/tekzilla/feed/quicktime-high-definition">http://revision3.com/tekzilla/feed/quicktime-high-definition
</a> - Crashes mythfrontend completely.<br><a href="http://revision3.com/pixelperfect/feed/quicktime-high-definition">http://revision3.com/pixelperfect/feed/quicktime-high-definition</a> - Get a black screen as if its about to play, then just goes back to the video info screen.
<br><a href="http://revision3.com/diggnation/feed/quicktime-high-definition">http://revision3.com/diggnation/feed/quicktime-high-definition</a> - Crashes mythfrontend completely.<br><br>All these work fine using mplayer and with those that are high def 
h.264 I can use the -lavdopts fast:threads=2 option so that it shares the load across my 2 cores, can the Internal player do that?<br><br>I haven&#39;t built any seektables for these videos, but I think I&#39;m right in saying that shouldn&#39;t affect straight playback - just limitation on ffwd/rewind.
<br><br>Ash<br><br><br>