Enable av_read_pause(), av_read_play() and the ASF demuxer's av_read_seek()
to use the protocol-native functionality if available. Patch by Björn Axelsson: bjorn point axelsson at intinor dot se Original thread: [FFmpeg-devel] [PATCH][4/4] Enable use of the extended API Date: Thu Nov 22 16:01:06 CET 2007 Originally committed as revision 11248 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
08c015c075
commit
fa13095a5d
@ -1049,6 +1049,14 @@ static int asf_read_seek(AVFormatContext *s, int stream_index, int64_t pts, int
|
||||
if (asf->packet_size <= 0)
|
||||
return -1;
|
||||
|
||||
/* Try using the protocol's read_seek if available */
|
||||
if(s->pb && s->pb->read_seek) {
|
||||
int ret = av_url_read_fseek(s->pb, stream_index, pts, flags);
|
||||
if(ret >= 0)
|
||||
asf_reset_header(s);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!asf->index_read)
|
||||
asf_build_simple_index(s, stream_index);
|
||||
|
||||
|
@ -2030,16 +2030,20 @@ int av_find_stream_info(AVFormatContext *ic)
|
||||
|
||||
int av_read_play(AVFormatContext *s)
|
||||
{
|
||||
if (!s->iformat->read_play)
|
||||
return AVERROR(ENOSYS);
|
||||
return s->iformat->read_play(s);
|
||||
if (s->iformat->read_play)
|
||||
return s->iformat->read_play(s);
|
||||
if (s->pb && s->pb->read_play)
|
||||
return av_url_read_fplay(s->pb);
|
||||
return AVERROR(ENOSYS);
|
||||
}
|
||||
|
||||
int av_read_pause(AVFormatContext *s)
|
||||
{
|
||||
if (!s->iformat->read_pause)
|
||||
return AVERROR(ENOSYS);
|
||||
return s->iformat->read_pause(s);
|
||||
if (s->iformat->read_pause)
|
||||
return s->iformat->read_pause(s);
|
||||
if (s->pb && s->pb->read_pause)
|
||||
return av_url_read_fpause(s->pb);
|
||||
return AVERROR(ENOSYS);
|
||||
}
|
||||
|
||||
void av_close_input_file(AVFormatContext *s)
|
||||
|
Loading…
Reference in New Issue
Block a user