diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-05-04 13:42:45 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-05-04 14:40:21 +0200 |
commit | babf2a34670e43004169ea8e78c6aff14a57d2c4 (patch) | |
tree | 61e065e0f89f14b39e005cd9bdea5d1c3239a405 | |
parent | 4b70bba57ec9d61282e8b2b427d738dd44415652 (diff) | |
download | ffmpeg-streaming-babf2a34670e43004169ea8e78c6aff14a57d2c4.zip ffmpeg-streaming-babf2a34670e43004169ea8e78c6aff14a57d2c4.tar.gz |
seek-test: support manually forcing a seek to a specific position
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/seek-test.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libavformat/seek-test.c b/libavformat/seek-test.c index 2750836..ccfe90f 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); |