I realized I am using very old version of ffmpeg and found out there is "seekable" flag in AVIOContext struct in the current code. This looks like what I wanted. =) Setting it to 0 seems to work for our usage.<br>
<br><div>    /**</div><div>     * A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable.</div><div>     */</div><div>    int seekable;</div><div><br></div><div class="gmail_quote">On Wed, Sep 7, 2011 at 2:27 PM, Dongwon Kang <span dir="ltr"><<a href="mailto:dwkang@camars.kaist.ac.kr">dwkang@camars.kaist.ac.kr</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi all,<div><br></div><div>I am trying to implement custom IO call backs by using ByteIOContext in avio.h in order to support http sources.</div>
<div>The implementation of the most callbacks were pretty much straight forward, but I faced a problem while handling seek() operation with SEEK_END flag.<br>
<div>The problem is that there are some cases that we don't know the actual size of the source. (e.g. <a href="http://en.wikipedia.org/wiki/Chunked_transfer_encoding" target="_blank">http source which chunked transfer encoding</a>)</div>

<div><br></div><div>Regarding the callback for seek operation, I found some article which says:</div><div><a href="http://cdry.wordpress.com/2009/09/09/using-custom-io-callbacks-with-ffmpeg/" target="_blank">http://cdry.wordpress.com/2009/09/09/using-custom-io-callbacks-with-ffmpeg/</a></div>

<div>"<span style="color:rgb(51, 51, 51);font-family:Verdana;font-size:12px;line-height:16px;background-color:rgb(255, 255, 255)">int64_t SeekFunc(void *opaque, int64_t <a href="http://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/metadata__compat_8c.html#ed7ea92f45bd273dde380a45ddced592" style="color:rgb(0, 102, 204);text-decoration:none" target="_blank">offset</a></span><span style="color:rgb(51, 51, 51);font-family:Verdana;font-size:12px;line-height:16px;background-color:rgb(255, 255, 255)">, int whence) ;</span></div>

<div><span style="color:rgb(51, 51, 51);font-family:Verdana;font-size:12px;line-height:16px;background-color:rgb(255, 255, 255)">you must return the current position of your stream  in bytes (that is, after the seeking is performed). If the seek has failed you must return <0."</span></div>

<br>So, my question is:<br>1. Will it be okay to return -1 if we don't know the actual size of the source?</div><div>2. If so, will the ffmpeg demux code just fail to demux the source or treat it as streaming source and continue parsing?</div>

<div><br></div><div>Any comments are welcome!</div><div>Thanks,</div><div>-- <br><font color="#888888">Dongwon Kang<br><br>
</font></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Dongwon Kang<br>  CA Lab, Div of CS, Dept of EECS, KAIST<br>  <a href="mailto:dwkang@camars.kaist.ac.kr">dwkang@camars.kaist.ac.kr</a> (official)<br>  <a href="mailto:dongwon.kang@gmail.com">dongwon.kang@gmail.com</a> (non-official)<br>
  +82) 42-869-5578      +82) 16-705-2950<br>