diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-10-31 20:50:04 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-10-31 20:50:04 +0100 |
commit | 8475ec190c688e39cc8d2b4aa9048196ca7e775e (patch) | |
tree | da6ac365c8832f12a74e3220da8baf33472b707b /libavformat/mmsh.c | |
parent | 86a4e55e663c144dd355b4320be4dc4c95b726eb (diff) | |
download | ffmpeg-8475ec190c688e39cc8d2b4aa9048196ca7e775e.tar.gz |
mmsh: mmsh_read_seek()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/mmsh.c')
-rw-r--r-- | libavformat/mmsh.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libavformat/mmsh.c b/libavformat/mmsh.c index 94dc1675dd..beef0a87ba 100644 --- a/libavformat/mmsh.c +++ b/libavformat/mmsh.c @@ -366,6 +366,25 @@ static int mmsh_read(URLContext *h, uint8_t *buf, int size) return res; } +static int64_t mmsh_read_seek(URLContext *h, int stream_index, + int64_t timestamp, int flags) +{ + MMSHContext *mmsh = h->priv_data; + MMSContext *mms = &mmsh->mms; + int ret; + + ret= mmsh_open_internal(h, mmsh->location, 0, timestamp, 0); + if(ret>=0){ + if (mms->mms_hd) + ffurl_close(mms->mms_hd); + av_freep(&mms->streams); + av_freep(&mms->asf_header); + av_free(mmsh); + }else + h->priv_data= mmsh; + return ret; +} + URLProtocol ff_mmsh_protocol = { .name = "mmsh", .url_open = mmsh_open, @@ -373,4 +392,5 @@ URLProtocol ff_mmsh_protocol = { .url_write = NULL, .url_seek = NULL, .url_close = mmsh_close, + .url_read_seek = mmsh_read_seek, }; |