From ebbad63636bf87222d42c23e8cb334c78c1b9233 Mon Sep 17 00:00:00 2001 From: Claudio Ciccani Date: Sun, 18 Nov 2007 17:08:03 +0100 Subject: Get filesize from metadata, when available. --- src/demuxers/demux_flv.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/demuxers/demux_flv.c b/src/demuxers/demux_flv.c index 41dc07952..39c34d91e 100644 --- a/src/demuxers/demux_flv.c +++ b/src/demuxers/demux_flv.c @@ -82,6 +82,8 @@ typedef struct { int stereo; int audiocodec; + off_t filesize; + flv_index_entry_t *index; int num_indices; @@ -260,6 +262,9 @@ static int parse_flv_var(demux_flv_t *this, else if (keylen == 12 && !strncmp(key, "audiocodecid", 12)) { this->audiocodec = val; } + else if (keylen == 8 && !strncmp(key, "filesize", 8)) { + this->filesize = val; + } } tmp += 8; break; @@ -661,7 +666,7 @@ static void seek_flv_file(demux_flv_t *this, off_t seek_pos, int seek_pts) { off_t pos, size; pos = this->input->get_current_pos(this->input); - size = this->input->get_length(this->input); + size = this->filesize ? : this->input->get_length(this->input); this->input->seek(this->input, (uint64_t)size * seek_pos / 65535, SEEK_SET); lprintf(" resyncing...\n"); -- cgit v1.2.3