shithub: mcfs

Download patch

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);