[FFmpeg-cvslog] mmsh:_implement a minimal mmsh_seek() so the stream position can be found out.

Michael Niedermayer git at videolan.org
Mon Oct 31 23:08:00 CET 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Mon Oct 31 22:43:38 2011 +0100| [237bcaa27518e7439afc982112b83dedeab0cb6b] | committer: Michael Niedermayer

mmsh:_implement a minimal mmsh_seek() so the stream position can be found out.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=237bcaa27518e7439afc982112b83dedeab0cb6b
---

 libavformat/mmsh.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/libavformat/mmsh.c b/libavformat/mmsh.c
index beef0a8..3b493ee 100644
--- a/libavformat/mmsh.c
+++ b/libavformat/mmsh.c
@@ -385,12 +385,22 @@ static int64_t mmsh_read_seek(URLContext *h, int stream_index,
     return ret;
 }
 
+static int64_t mmsh_seek(URLContext *h, int64_t pos, int whence)
+{
+    MMSHContext *mmsh = h->priv_data;
+    MMSContext *mms   = &mmsh->mms;
+
+    if(pos == 0 && whence == SEEK_CUR)
+        return mms->asf_header_read_size + mms->remaining_in_len + mmsh->chunk_seq * mms->asf_packet_len;
+    return AVERROR(ENOSYS);
+}
+
 URLProtocol ff_mmsh_protocol = {
     .name      = "mmsh",
     .url_open  = mmsh_open,
     .url_read  = mmsh_read,
     .url_write = NULL,
-    .url_seek  = NULL,
+    .url_seek  = mmsh_seek,
     .url_close = mmsh_close,
     .url_read_seek  = mmsh_read_seek,
 };



More information about the ffmpeg-cvslog mailing list