[FFmpeg-devel] [PATCH 06/18] avformat/http: always allow no-op seek
Anssi Hannula
anssi.hannula at iki.fi
Mon Dec 30 12:34:50 CET 2013
30.12.2013 13:19, Reimar Döffinger kirjoitti:
> On Mon, Dec 30, 2013 at 01:14:20PM +0200, Anssi Hannula wrote:
>> This also allows checking stream position as per ffurl_seek() doxy.
>>
>> Signed-off-by: Anssi Hannula <anssi.hannula at iki.fi>
>> ---
>> libavformat/http.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/libavformat/http.c b/libavformat/http.c
>> index fd29966..3b655c6 100644
>> --- a/libavformat/http.c
>> +++ b/libavformat/http.c
>> @@ -947,6 +947,8 @@ static int64_t http_seek(URLContext *h, int64_t off, int whence)
>>
>> if (whence == AVSEEK_SIZE)
>> return s->filesize;
>> + else if ((whence == SEEK_CUR && off == 0) || (whence == SEEK_SET && off == s->off))
>> + return s->off;
>> else if ((s->filesize == -1 && whence == SEEK_END) || h->is_streamed)
>> return -1;
>
> I kind of wonder if that really is the best place to handle it,
> basically implementing the same check in each stream implementation
> manually...
Yeah, I didn't really like it...
Maybe we should have .url_tell and mandate every stream who has
.url_seek to have it so we could use it in ffurl_seek()?
OTOH .url_tell would duplicate .url_seek(0, SEEK_CUR)... but I guess
missing implementation for a whole function might be easier to notice
than one case of seek().
--
Anssi Hannula
More information about the ffmpeg-devel
mailing list