ref: cb8864eb448c73bf5ade441f12b00ead0d0a86a1
parent: 451447fc7b3cf5d6849b1b6168ca1eec8dfdfdf4
author: Sigrid Haflínudóttir <ftrvxmtrx@gmail.com>
date: Mon Mar 16 22:05:45 EDT 2020
print debug info to stderr
--- a/iso.c
+++ b/iso.c
@@ -211,30 +211,30 @@
if(dflag == 0)
return;
- print("%.*s%T\n", dind, ind, b->type);+ fprint(2, "%.*s%T\n", dind, ind, b->type);
/* full box */
if(isfullbox(b)){- print("\t%.*sversion\t%d\n", dind, ind, b->version);- print("\t%.*sflags\t0x%ux\n", dind, ind, b->flags);+ fprint(2, "\t%.*sversion\t%d\n", dind, ind, b->version);
+ fprint(2, "\t%.*sflags\t0x%ux\n", dind, ind, b->flags);
}
if(b->type == BoxFtyp){- print("\t%.*sbrand\t%T\n", dind, ind, b->ftyp.brand);- print("\t%.*sversion\t%d\n", dind, ind, b->ftyp.version);- print("\t%.*scompat", dind, ind);+ fprint(2, "\t%.*sbrand\t%T\n", dind, ind, b->ftyp.brand);
+ fprint(2, "\t%.*sversion\t%d\n", dind, ind, b->ftyp.version);
+ fprint(2, "\t%.*scompat", dind, ind);
for(i = 0; i < b->ftyp.ncompat; i++)
- print("\t%.*s%T", dind, ind, b->ftyp.compat[i]);- print("\n");+ fprint(2, "\t%.*s%T", dind, ind, b->ftyp.compat[i]);
+ fprint(2, "\n");
}else if(b->type == BoxMvhd){- print("\t%.*screation\t%zd\n", dind, ind, b->mvhd.creation);- print("\t%.*smodification\t%zd\n", dind, ind, b->mvhd.modification);- print("\t%.*stimescale\t%ud\n", dind, ind, b->mvhd.timescale);- print("\t%.*sduration\t%zd\n", dind, ind, b->mvhd.duration);- print("\t%.*srate\t0x%ux\n", dind, ind, b->mvhd.rate);- print("\t%.*svolume\t0x%ux\n", dind, ind, b->mvhd.volume);- print("\t%.*snexttrack\t0x%ux\n", dind, ind, b->mvhd.nexttrack);- print("\t%.*smatrix\t0x%ux 0x%ux 0x%ux 0x%ux 0x%ux 0x%ux 0x%ux 0x%ux 0x%ux\n", dind, ind,+ fprint(2, "\t%.*screation\t%zd\n", dind, ind, b->mvhd.creation);
+ fprint(2, "\t%.*smodification\t%zd\n", dind, ind, b->mvhd.modification);
+ fprint(2, "\t%.*stimescale\t%ud\n", dind, ind, b->mvhd.timescale);
+ fprint(2, "\t%.*sduration\t%zd\n", dind, ind, b->mvhd.duration);
+ fprint(2, "\t%.*srate\t0x%ux\n", dind, ind, b->mvhd.rate);
+ fprint(2, "\t%.*svolume\t0x%ux\n", dind, ind, b->mvhd.volume);
+ fprint(2, "\t%.*snexttrack\t0x%ux\n", dind, ind, b->mvhd.nexttrack);
+ fprint(2, "\t%.*smatrix\t0x%ux 0x%ux 0x%ux 0x%ux 0x%ux 0x%ux 0x%ux 0x%ux 0x%ux\n", dind, ind,
b->mvhd.matrix[0],
b->mvhd.matrix[1],
b->mvhd.matrix[2],
@@ -246,89 +246,89 @@
b->mvhd.matrix[8]
);
}else if(b->type == BoxTrex){- print("\t%.*strackid\t0x%ux\n", dind, ind, b->trex.trackid);- print("\t%.*sdefsample.\n", dind, ind);- print("\t\t%.*s.descrindex\t0x%ux\n", dind, ind, b->trex.defsample.descrindex);- print("\t\t%.*s.duration\t%ud\n", dind, ind, b->trex.defsample.duration);- print("\t\t%.*s.size\t0x%ux\n", dind, ind, b->trex.defsample.size);- print("\t\t%.*s.flags\t0x%ux\n", dind, ind, b->trex.defsample.flags);+ fprint(2, "\t%.*strackid\t0x%ux\n", dind, ind, b->trex.trackid);
+ fprint(2, "\t%.*sdefsample.\n", dind, ind);
+ fprint(2, "\t\t%.*s.descrindex\t0x%ux\n", dind, ind, b->trex.defsample.descrindex);
+ fprint(2, "\t\t%.*s.duration\t%ud\n", dind, ind, b->trex.defsample.duration);
+ fprint(2, "\t\t%.*s.size\t0x%ux\n", dind, ind, b->trex.defsample.size);
+ fprint(2, "\t\t%.*s.flags\t0x%ux\n", dind, ind, b->trex.defsample.flags);
}else if(b->type == BoxMfhd){- print("\t%.*sseqnumber\t%ud\n", dind, ind, b->mfhd.seqnumber);+ fprint(2, "\t%.*sseqnumber\t%ud\n", dind, ind, b->mfhd.seqnumber);
}else if(b->type == BoxTfhd){- print("\t%.*strackid\t0x%ux\n", dind, ind, b->tfhd.trackid);+ fprint(2, "\t%.*strackid\t0x%ux\n", dind, ind, b->tfhd.trackid);
if(b->flags & 1)
- print("\t%.*sbaseoffset\t%zd\n", dind, ind, b->tfhd.baseoffset);- print("\t%.*sdefsample.\n", dind, ind);+ fprint(2, "\t%.*sbaseoffset\t%zd\n", dind, ind, b->tfhd.baseoffset);
+ fprint(2, "\t%.*sdefsample.\n", dind, ind);
if(b->flags & 2)
- print("\t\t%.*s.descrindex\t0x%ux\n", dind, ind, b->tfhd.defsample.descrindex);+ fprint(2, "\t\t%.*s.descrindex\t0x%ux\n", dind, ind, b->tfhd.defsample.descrindex);
if(b->flags & 8)
- print("\t\t%.*s.duration\t%ud\n", dind, ind, b->tfhd.defsample.duration);+ fprint(2, "\t\t%.*s.duration\t%ud\n", dind, ind, b->tfhd.defsample.duration);
if(b->flags & 16)
- print("\t\t%.*s.size\t0x%ux\n", dind, ind, b->tfhd.defsample.size);+ fprint(2, "\t\t%.*s.size\t0x%ux\n", dind, ind, b->tfhd.defsample.size);
if(b->flags & 32)
- print("\t\t%.*s.flags\t0x%ux\n", dind, ind, b->tfhd.defsample.flags);+ fprint(2, "\t\t%.*s.flags\t0x%ux\n", dind, ind, b->tfhd.defsample.flags);
if(b->flags & 0x10000)
- print("\t%.*sduration is empty\n", dind, ind);+ fprint(2, "\t%.*sduration is empty\n", dind, ind);
if(b->flags & 0x20000)
- print("\t%.*sdefault base is moof\n", dind, ind);+ fprint(2, "\t%.*sdefault base is moof\n", dind, ind);
}else if(b->type == BoxTfdt){- print("\t%.*sdecodetime\t%zd\n", dind, ind, b->tfdt.decodetime);+ fprint(2, "\t%.*sdecodetime\t%zd\n", dind, ind, b->tfdt.decodetime);
}else if(b->type == BoxTrun){- print("\t%.*ssamplecount\t%ud\n", dind, ind, b->trun.samplecount);+ fprint(2, "\t%.*ssamplecount\t%ud\n", dind, ind, b->trun.samplecount);
if(b->flags & 1)
- print("\t%.*sdataoffset\t%d\n", dind, ind, b->trun.dataoffset);+ fprint(2, "\t%.*sdataoffset\t%d\n", dind, ind, b->trun.dataoffset);
if(b->flags & 2)
- print("\t%.*sfirstsampleflags\t0x%ux\n", dind, ind, b->trun.firstsampleflags);+ fprint(2, "\t%.*sfirstsampleflags\t0x%ux\n", dind, ind, b->trun.firstsampleflags);
for(u = 0; u < b->trun.samplecount; u++){- print("\t%.*ssamples[%zd]\n", dind, ind, u);+ fprint(2, "\t%.*ssamples[%zd]\n", dind, ind, u);
if(b->flags & 0x100)
- print("\t\t%.*s.duration\t%ud\n", dind, ind, b->trun.samples[u].duration);+ fprint(2, "\t\t%.*s.duration\t%ud\n", dind, ind, b->trun.samples[u].duration);
if(b->flags & 0x200)
- print("\t\t%.*s.size\t%ud\n", dind, ind, b->trun.samples[u].size);+ fprint(2, "\t\t%.*s.size\t%ud\n", dind, ind, b->trun.samples[u].size);
if(b->flags & 0x400)
- print("\t\t%.*s.flags\t0x%ux\n", dind, ind, b->trun.samples[u].flags);+ fprint(2, "\t\t%.*s.flags\t0x%ux\n", dind, ind, b->trun.samples[u].flags);
if(b->flags & 0x800)
- print("\t\t%.*s.timeoffset\t%zd\n", dind, ind, b->trun.samples[u].timeoffset);+ fprint(2, "\t\t%.*s.timeoffset\t%zd\n", dind, ind, b->trun.samples[u].timeoffset);
}
}else if(b->type == BoxStsd){- print("\t%.*shandler_type\t%08x\n", dind, ind, b->stsd.handlertype);- print("\t%.*sentry_count\t%ud\n", dind, ind, b->stsd.entrycount);+ fprint(2, "\t%.*shandler_type\t%08x\n", dind, ind, b->stsd.handlertype);
+ fprint(2, "\t%.*sentry_count\t%ud\n", dind, ind, b->stsd.entrycount);
}else if(b->type == BoxStts){- print("\t%.*sentry_count\t%ud\n", dind, ind, b->stts.entrycount);+ fprint(2, "\t%.*sentry_count\t%ud\n", dind, ind, b->stts.entrycount);
}else if(b->type == BoxStss){- print("\t%.*sentry_count\t%ud\n", dind, ind, b->stss.entrycount);+ fprint(2, "\t%.*sentry_count\t%ud\n", dind, ind, b->stss.entrycount);
}else if(b->type == BoxStsc){- print("\t%.*sentry_count\t%ud\n", dind, ind, b->stss.entrycount);+ fprint(2, "\t%.*sentry_count\t%ud\n", dind, ind, b->stss.entrycount);
for(u = 0; u < b->stsc.entrycount; u++){- print("\t%.*sentry[%zd]\n", dind, ind, u);- print("\t\t%.*sfirst_chunk\t%ud\n", dind, ind, b->stsc.entry[u].firstchunk);- print("\t\t%.*ssamples_per_chunk\t%ud\n", dind, ind, b->stsc.entry[u].samplesperchunk);- print("\t\t%.*ssample_description_table\t%ud\n", dind, ind, b->stsc.entry[u].sdt);+ fprint(2, "\t%.*sentry[%zd]\n", dind, ind, u);
+ fprint(2, "\t\t%.*sfirst_chunk\t%ud\n", dind, ind, b->stsc.entry[u].firstchunk);
+ fprint(2, "\t\t%.*ssamples_per_chunk\t%ud\n", dind, ind, b->stsc.entry[u].samplesperchunk);
+ fprint(2, "\t\t%.*ssample_description_table\t%ud\n", dind, ind, b->stsc.entry[u].sdt);
}
}else if(b->type == BoxStsz){- print("\t%.*ssample_size\t%ud\n", dind, ind, b->stsz.samplesize);- print("\t%.*ssample_count\t%ud\n", dind, ind, b->stsz.samplecount);+ fprint(2, "\t%.*ssample_size\t%ud\n", dind, ind, b->stsz.samplesize);
+ fprint(2, "\t%.*ssample_count\t%ud\n", dind, ind, b->stsz.samplecount);
if(b->stsz.samplesize == 0){for(u = 0; u < b->stsz.samplecount; u++)
- print("\t%.*sentrysize[%zd]\t%ud\n", dind, ind, u, b->stsz.entrysize[u]);+ fprint(2, "\t%.*sentrysize[%zd]\t%ud\n", dind, ind, u, b->stsz.entrysize[u]);
}
}else if(b->type == BoxTkhd){- print("\t%.*screation_time\t%zd\n", dind, ind, b->tkhd.creattime);- print("\t%.*smodification_timetime\t%zd\n", dind, ind, b->tkhd.modtime);- print("\t%.*strack_id\t%ud\n", dind, ind, b->tkhd.trackid);- print("\t%.*sduration\t%zd\n", dind, ind, b->tkhd.duration);- print("\t%.*swidth\t%ud\n", dind, ind, b->tkhd.width);- print("\t%.*sheight\t%ud\n", dind, ind, b->tkhd.height);+ fprint(2, "\t%.*screation_time\t%zd\n", dind, ind, b->tkhd.creattime);
+ fprint(2, "\t%.*smodification_timetime\t%zd\n", dind, ind, b->tkhd.modtime);
+ fprint(2, "\t%.*strack_id\t%ud\n", dind, ind, b->tkhd.trackid);
+ fprint(2, "\t%.*sduration\t%zd\n", dind, ind, b->tkhd.duration);
+ fprint(2, "\t%.*swidth\t%ud\n", dind, ind, b->tkhd.width);
+ fprint(2, "\t%.*sheight\t%ud\n", dind, ind, b->tkhd.height);
}else if(b->type == BoxHdlr){- print("\t%.*shandler_type\t%c%c%c%c\n", dind, ind, b->hdlr.handlertype>>24, b->hdlr.handlertype>>16&0xff, b->hdlr.handlertype>>8&0xff, b->hdlr.handlertype&0xff);- print("\t%.*sname\t%s\n", dind, ind, b->hdlr.name);+ fprint(2, "\t%.*shandler_type\t%c%c%c%c\n", dind, ind, b->hdlr.handlertype>>24, b->hdlr.handlertype>>16&0xff, b->hdlr.handlertype>>8&0xff, b->hdlr.handlertype&0xff);
+ fprint(2, "\t%.*sname\t%s\n", dind, ind, b->hdlr.name);
}else if(b->type == BoxStco || b->type == BoxCo64){- print("\t%.*sentry_count\t%ud\n", dind, ind, b->stss.entrycount);+ fprint(2, "\t%.*sentry_count\t%ud\n", dind, ind, b->stss.entrycount);
for(u = 0; u < b->stco_co64.entrycount; u++)
- print("\t%.*schunkoffset[%zd]\t%zd\n", dind, ind, u, b->stco_co64.chunkoffset[u]);+ fprint(2, "\t%.*schunkoffset[%zd]\t%zd\n", dind, ind, u, b->stco_co64.chunkoffset[u]);
}else{- print("\t%.*sstart\t%zd\n", dind, ind, b->dstart);- print("\t%.*ssize\t%zd\n", dind, ind, b->dsz);+ fprint(2, "\t%.*sstart\t%zd\n", dind, ind, b->dstart);
+ fprint(2, "\t%.*ssize\t%zd\n", dind, ind, b->dsz);
}
}
--
⑨