1 /*
2 * Copyright (c) 2003 Fabrice Bellard
3 * Copyright (c) 2007 Michael Niedermayer
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22 #include <stdint.h>
23 #include <stdlib.h>
24 #include <stdio.h>
25 #include <string.h>
26
29
31
33
35 {
36 switch (v) {
38 case AVERROR(EIO):
return "-EIO";
39 case AVERROR(ENOMEM):
return "-ENOMEM";
40 case AVERROR(EINVAL):
return "-EINVAL";
41 default:
44 }
45 }
46
48 {
51 return;
52 }
55 }
56
57 int main(
int argc,
char **argv)
58 {
59 const char *filename;
61 int i,
ret, stream_id;
62 int j;
66 int firstback=0;
67 int frame_count = 1;
69
70 for(
i=2;
i<argc;
i+=2){
71 if (!strcmp(argv[
i],
"-seekforw")){
72 seekfirst = atoi(argv[
i+1]);
73 }
else if(!strcmp(argv[
i],
"-seekback")){
74 seekfirst = atoi(argv[
i+1]);
75 firstback = 1;
76 }
else if(!strcmp(argv[
i],
"-frames")){
77 frame_count = atoi(argv[
i+1]);
78 }
else if(!strcmp(argv[
i],
"-duration")){
80 }
else if(!strcmp(argv[
i],
"-fastseek")) {
81 if (atoi(argv[
i+1])) {
83 }
84 }
else if(argv[
i][0] ==
'-' && argv[
i+1]) {
86 } else {
87 argc = 1;
88 }
89 }
90
93
94 if (argc < 2) {
95 printf(
"usage: %s input_file\n"
96 "\n", argv[0]);
97 return 1;
98 }
99
100 filename = argv[1];
101
105 fprintf(stderr, "cannot open %s\n", filename);
106 return 1;
107 }
108
111 fprintf(stderr, "%s: could not find codec parameters\n", filename);
112 return 1;
113 }
114
118 }
122 char ts_buf[60];
123
125 for(j=0; j<frame_count; j++) {
128 char dts_buf[60];
134 } else
137 }
138 }
139
141
144 if(stream_id>=0){
147 }
148 //FIXME fully test the new seek API
151 ts_str(ts_buf, timestamp, stream_id < 0 ? AV_TIME_BASE_Q : st->time_base);
152 printf(
"ret:%-10s st:%2d flags:%d ts:%s\n",
ret_str(
ret), stream_id,
i&1, ts_buf);
153 }
154
156
157 return 0;
158 }