|
|
@@ -70,16 +70,16 @@ int main(int argc, char **argv) |
|
|
return usage(1); |
|
|
return usage(1); |
|
|
if (argc > 2) |
|
|
if (argc > 2) |
|
|
maxpkts = atoi(argv[2]); |
|
|
maxpkts = atoi(argv[2]); |
|
|
strncpy(fntemplate, argv[1], PATH_MAX - 1); |
|
|
|
|
|
|
|
|
strncpy(fntemplate, argv[1], sizeof(fntemplate) - 1); |
|
|
if (strrchr(argv[1], '/')) |
|
|
if (strrchr(argv[1], '/')) |
|
|
strncpy(fntemplate, strrchr(argv[1], '/') + 1, PATH_MAX - 1); |
|
|
|
|
|
|
|
|
strncpy(fntemplate, strrchr(argv[1], '/') + 1, sizeof(fntemplate) - 1); |
|
|
if (strrchr(fntemplate, '.')) |
|
|
if (strrchr(fntemplate, '.')) |
|
|
*strrchr(fntemplate, '.') = '\0'; |
|
|
*strrchr(fntemplate, '.') = '\0'; |
|
|
if (strchr(fntemplate, '%')) { |
|
|
if (strchr(fntemplate, '%')) { |
|
|
fprintf(stderr, "can't use filenames containing '%%'\n"); |
|
|
fprintf(stderr, "can't use filenames containing '%%'\n"); |
|
|
return usage(1); |
|
|
return usage(1); |
|
|
} |
|
|
} |
|
|
if (strlen(fntemplate) + sizeof(PKTFILESUFF) >= PATH_MAX - 1) { |
|
|
|
|
|
|
|
|
if (strlen(fntemplate) + sizeof(PKTFILESUFF) >= sizeof(fntemplate) - 1) { |
|
|
fprintf(stderr, "filename too long\n"); |
|
|
fprintf(stderr, "filename too long\n"); |
|
|
return usage(1); |
|
|
return usage(1); |
|
|
} |
|
|
} |
|
|
@@ -105,7 +105,7 @@ int main(int argc, char **argv) |
|
|
|
|
|
|
|
|
while ((err = av_read_frame(fctx, &pkt)) >= 0) { |
|
|
while ((err = av_read_frame(fctx, &pkt)) >= 0) { |
|
|
int fd; |
|
|
int fd; |
|
|
snprintf(pktfilename, PATH_MAX - 1, fntemplate, pktnum, |
|
|
|
|
|
|
|
|
snprintf(pktfilename, sizeof(pktfilename), fntemplate, pktnum, |
|
|
pkt.stream_index, pkt.pts, pkt.size, |
|
|
pkt.stream_index, pkt.pts, pkt.size, |
|
|
(pkt.flags & AV_PKT_FLAG_KEY) ? 'K' : '_'); |
|
|
(pkt.flags & AV_PKT_FLAG_KEY) ? 'K' : '_'); |
|
|
printf(PKTFILESUFF "\n", pktnum, pkt.stream_index, pkt.pts, pkt.size, |
|
|
printf(PKTFILESUFF "\n", pktnum, pkt.stream_index, pkt.pts, pkt.size, |
|
|
|