ref: 41b44211e957254333d2d6d0eddf7c06d416ed7f
parent: 05a8c183b3ec302f8e5979626f322632dc610534
author: Paul Brossier <piem@piem.org>
date: Sun Feb 26 18:37:01 EST 2017
src/io/source_avcodec.c: avoid seeking in closed file
--- a/src/io/source_avcodec.c
+++ b/src/io/source_avcodec.c
@@ -477,10 +477,17 @@
int64_t min_ts = MAX(resampled_pos - 2000, 0);
int64_t max_ts = MIN(resampled_pos + 2000, INT64_MAX);
int seek_flags = AVSEEK_FLAG_FRAME | AVSEEK_FLAG_ANY;
- int ret = avformat_seek_file(s->avFormatCtx, s->selected_stream,
+ int ret = AUBIO_FAIL;
+ if (s->avFormatCtx != NULL && s->avr != NULL) {
+ ret = AUBIO_OK;
+ } else {
+ AUBIO_ERR("source_avcodec: failed seeking in %s (file not opened?)", s->path);
+ return ret;
+ }
+ ret = avformat_seek_file(s->avFormatCtx, s->selected_stream,
min_ts, resampled_pos, max_ts, seek_flags);
if (ret < 0) {
- AUBIO_ERR("Failed seeking to %d in file %s", pos, s->path);
+ AUBIO_ERR("source_avcodec: failed seeking to %d in file %s", pos, s->path);
}
// reset read status
s->eof = 0;