From babf2a34670e43004169ea8e78c6aff14a57d2c4 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 4 May 2012 13:42:45 +0200 Subject: [PATCH] seek-test: support manually forcing a seek to a specific position Signed-off-by: Michael Niedermayer --- libavformat/seek-test.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/libavformat/seek-test.c b/libavformat/seek-test.c index 2750836006..ccfe90f5ce 100644 --- a/libavformat/seek-test.c +++ b/libavformat/seek-test.c @@ -63,6 +63,16 @@ int main(int argc, char **argv) int i, ret, stream_id; int64_t timestamp; AVDictionary *format_opts = NULL; + int64_t seekfirst; + int firstback=0; + + if(argc == 4 && !strcmp(argv[2], "-seekforw")){ + seekfirst = atoi(argv[3]); + } else if(argc == 4 && !strcmp(argv[2], "-seekback")){ + seekfirst = atoi(argv[3]); + firstback = 1; + } else + seekfirst = AV_NOPTS_VALUE; av_dict_set(&format_opts, "channels", "1", 0); av_dict_set(&format_opts, "sample_rate", "22050", 0); @@ -70,7 +80,7 @@ int main(int argc, char **argv) /* initialize libavcodec, and register all codecs and formats */ av_register_all(); - if (argc != 2) { + if (argc < 2) { printf("usage: %s input_file\n" "\n", argv[0]); return 1; @@ -91,6 +101,10 @@ int main(int argc, char **argv) return 1; } + if(seekfirst != AV_NOPTS_VALUE){ + if(firstback) avformat_seek_file(ic, -1, INT64_MIN, seekfirst, seekfirst, 0); + else avformat_seek_file(ic, -1, seekfirst, seekfirst, INT64_MAX, 0); + } for(i=0; ; i++){ AVPacket pkt = { 0 }; AVStream *av_uninit(st);