Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
15b34f63
Commit
15b34f63
authored
Mar 16, 2005
by
François Revol
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
s/\t/ /g for indentation fairies
Originally committed as revision 4047 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
80e3a08c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
63 additions
and
63 deletions
+63
-63
pktdumper.c
pktdumper.c
+63
-63
No files found.
pktdumper.c
View file @
15b34f63
...
...
@@ -10,71 +10,71 @@
static
int
usage
(
int
ret
)
{
fprintf
(
stderr
,
"dump (up to maxpkts) AVPackets as they are demuxed by libavformat.
\n
"
);
fprintf
(
stderr
,
"each packet is dumped in its own file named like `basename file.ext`_$PKTNUM_$STREAMINDEX_$STAMP_$SIZE_$FLAGS.bin
\n
"
);
fprintf
(
stderr
,
"pktdumper file [maxpkts]
\n
"
);
return
ret
;
fprintf
(
stderr
,
"dump (up to maxpkts) AVPackets as they are demuxed by libavformat.
\n
"
);
fprintf
(
stderr
,
"each packet is dumped in its own file named like `basename file.ext`_$PKTNUM_$STREAMINDEX_$STAMP_$SIZE_$FLAGS.bin
\n
"
);
fprintf
(
stderr
,
"pktdumper file [maxpkts]
\n
"
);
return
ret
;
}
int
main
(
int
argc
,
char
**
argv
)
{
char
fntemplate
[
PATH_MAX
];
char
pktfilename
[
PATH_MAX
];
AVFormatContext
*
fctx
;
AVPacket
pkt
;
int64_t
pktnum
=
0
;
int64_t
maxpkts
=
0
;
int
err
;
if
(
argc
<
2
)
return
usage
(
1
);
if
(
argc
>
2
)
maxpkts
=
atoi
(
argv
[
2
]);
strncpy
(
fntemplate
,
argv
[
1
],
PATH_MAX
-
1
);
if
(
strrchr
(
argv
[
1
],
'/'
))
strncpy
(
fntemplate
,
strrchr
(
argv
[
1
],
'/'
)
+
1
,
PATH_MAX
-
1
);
if
(
strrchr
(
fntemplate
,
'.'
))
*
strrchr
(
fntemplate
,
'.'
)
=
'\0'
;
if
(
strchr
(
fntemplate
,
'%'
))
{
fprintf
(
stderr
,
"can't use filenames containing '%%'
\n
"
);
return
usage
(
1
);
}
if
(
strlen
(
fntemplate
)
+
sizeof
(
PKTFILESUFF
)
>=
PATH_MAX
-
1
)
{
fprintf
(
stderr
,
"filename too long
\n
"
);
return
usage
(
1
);
}
strcat
(
fntemplate
,
PKTFILESUFF
);
printf
(
"FNTEMPLATE: '%s'
\n
"
,
fntemplate
);
// register all file formats
av_register_all
();
err
=
av_open_input_file
(
&
fctx
,
argv
[
1
],
NULL
,
0
,
NULL
);
if
(
err
<
0
)
{
fprintf
(
stderr
,
"av_open_input_file: error %d
\n
"
,
err
);
return
1
;
}
err
=
av_find_stream_info
(
fctx
);
if
(
err
<
0
)
{
fprintf
(
stderr
,
"av_find_stream_info: error %d
\n
"
,
err
);
return
1
;
}
av_init_packet
(
&
pkt
);
while
((
err
=
av_read_frame
(
fctx
,
&
pkt
))
>=
0
)
{
int
fd
;
snprintf
(
pktfilename
,
PATH_MAX
-
1
,
fntemplate
,
pktnum
,
pkt
.
stream_index
,
pkt
.
pts
,
pkt
.
size
,
(
pkt
.
flags
&
PKT_FLAG_KEY
)
?
'K'
:
'_'
);
printf
(
PKTFILESUFF
"
\n
"
,
pktnum
,
pkt
.
stream_index
,
pkt
.
pts
,
pkt
.
size
,
(
pkt
.
flags
&
PKT_FLAG_KEY
)
?
'K'
:
'_'
);
//printf("open(\"%s\")\n", pktfilename);
fd
=
open
(
pktfilename
,
O_WRONLY
|
O_CREAT
,
0644
);
write
(
fd
,
pkt
.
data
,
pkt
.
size
);
close
(
fd
);
pktnum
++
;
if
(
maxpkts
&&
(
pktnum
>=
maxpkts
))
break
;
}
return
0
;
char
fntemplate
[
PATH_MAX
];
char
pktfilename
[
PATH_MAX
];
AVFormatContext
*
fctx
;
AVPacket
pkt
;
int64_t
pktnum
=
0
;
int64_t
maxpkts
=
0
;
int
err
;
if
(
argc
<
2
)
return
usage
(
1
);
if
(
argc
>
2
)
maxpkts
=
atoi
(
argv
[
2
]);
strncpy
(
fntemplate
,
argv
[
1
],
PATH_MAX
-
1
);
if
(
strrchr
(
argv
[
1
],
'/'
))
strncpy
(
fntemplate
,
strrchr
(
argv
[
1
],
'/'
)
+
1
,
PATH_MAX
-
1
);
if
(
strrchr
(
fntemplate
,
'.'
))
*
strrchr
(
fntemplate
,
'.'
)
=
'\0'
;
if
(
strchr
(
fntemplate
,
'%'
))
{
fprintf
(
stderr
,
"can't use filenames containing '%%'
\n
"
);
return
usage
(
1
);
}
if
(
strlen
(
fntemplate
)
+
sizeof
(
PKTFILESUFF
)
>=
PATH_MAX
-
1
)
{
fprintf
(
stderr
,
"filename too long
\n
"
);
return
usage
(
1
);
}
strcat
(
fntemplate
,
PKTFILESUFF
);
printf
(
"FNTEMPLATE: '%s'
\n
"
,
fntemplate
);
// register all file formats
av_register_all
();
err
=
av_open_input_file
(
&
fctx
,
argv
[
1
],
NULL
,
0
,
NULL
);
if
(
err
<
0
)
{
fprintf
(
stderr
,
"av_open_input_file: error %d
\n
"
,
err
);
return
1
;
}
err
=
av_find_stream_info
(
fctx
);
if
(
err
<
0
)
{
fprintf
(
stderr
,
"av_find_stream_info: error %d
\n
"
,
err
);
return
1
;
}
av_init_packet
(
&
pkt
);
while
((
err
=
av_read_frame
(
fctx
,
&
pkt
))
>=
0
)
{
int
fd
;
snprintf
(
pktfilename
,
PATH_MAX
-
1
,
fntemplate
,
pktnum
,
pkt
.
stream_index
,
pkt
.
pts
,
pkt
.
size
,
(
pkt
.
flags
&
PKT_FLAG_KEY
)
?
'K'
:
'_'
);
printf
(
PKTFILESUFF
"
\n
"
,
pktnum
,
pkt
.
stream_index
,
pkt
.
pts
,
pkt
.
size
,
(
pkt
.
flags
&
PKT_FLAG_KEY
)
?
'K'
:
'_'
);
//printf("open(\"%s\")\n", pktfilename);
fd
=
open
(
pktfilename
,
O_WRONLY
|
O_CREAT
,
0644
);
write
(
fd
,
pkt
.
data
,
pkt
.
size
);
close
(
fd
);
pktnum
++
;
if
(
maxpkts
&&
(
pktnum
>=
maxpkts
))
break
;
}
return
0
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment