ref: 25b86e0a5c4ab39090fb477a131f50a0d2bbe257
parent: 678c48d58f60eb6195f3e5f2ebb80c6c7f719a31
author: Sigrid Solveig Haflínudóttir <ftrvxmtrx@gmail.com>
date: Mon Dec 14 07:28:08 EST 2020
increase input and output buffers to 128k
--- a/main.c
+++ b/main.c
@@ -3,12 +3,6 @@
#include <bio.h>
#include "common.h"
-enum
-{
- Outbufsz = 256*1024,
- Inbufsz = 256*1024,
-};
-
Biobuf stderr, out;
int dflag, trackdump;
@@ -22,15 +16,10 @@
void
main(int argc, char **argv)
{
- u8int d[4], *outbuf, *inbuf;
+ Biobuf *f;
char *s, *status;
- Biobuf f;
- int fd;
+ u8int d[4];
- fmtinstall('H', encodefmt);
- fmtinstall('T', isotypefmt);
- fmtinstall('P', srttsfmt);
-
dflag = 0;
trackdump = Nodump;
ARGBEGIN{
@@ -50,42 +39,41 @@
usage();
}ARGEND
- if((outbuf = malloc(Outbufsz)) == nil)
- sysfatal("memory");
- if((inbuf = malloc(Inbufsz)) == nil)
- sysfatal("memory");
-
- fd = 0;
+ f = nil;
if(argc == 1)
- fd = open(*argv, OREAD);
- else if(argc != 0)
+ f = Bopen(*argv, OREAD);
+ else if(argc == 0)
+ f = Bfdopen(0, OREAD);
+ else
usage();
- if(Binits(&f, fd, OREAD, inbuf, Inbufsz) != 0)
+ if(f == nil)
sysfatal("%r");
- if(Binits(&out, 1, OWRITE, outbuf, Outbufsz) != 0)
- sysfatal("%r");
- if(Binit(&stderr, 2, OWRITE) != 0)
- sysfatal("%r");
+ fmtinstall('H', encodefmt);
+ fmtinstall('T', isotypefmt);
+ fmtinstall('P', srttsfmt);
+ Binit(&out, 1, OWRITE);
+ Binit(&stderr, 2, OWRITE);
+
status = nil;
- if(Bread(&f, d, 4) != 4){
+ if(Bread(f, d, 4) != 4){
Bprint(&stderr, "unknown format\n");
status = "unknown format";
- }else if(Bungetc(&f) < 0 || Bungetc(&f) < 0 || Bungetc(&f) < 0 || Bungetc(&f) < 0){
+ }else if(Bungetc(f) < 0 || Bungetc(f) < 0 || Bungetc(f) < 0 || Bungetc(f) < 0){
Bprint(&stderr, "seek back failed: %r\n");
status = "seek failed";
}else if(memcmp(d, "\x1a\x45\xdf\xa3", 4) == 0){
- if(ebmlrun(&f) != 0){
+ if(ebmlrun(f) != 0){
Bprint(&stderr, "embl: %r\n");
status = "ebml failed";
}
- }else if(isorun(&f) != 0){
+ }else if(isorun(f) != 0){
Bprint(&stderr, "iso: %r\n");
status = "iso failed";
}
- Bterm(&f);
+ Bterm(f);
Bterm(&out);
Bterm(&stderr);