Sigrid Solveig Haflínudóttirenable vorbise821bea3 years agoHistory
94 lines · 1.4 KB · C
RawDownload
#include <u.h>#include <libc.h>#include <tos.h>#include "misc.h"#include "stream.h" int nproc, debug; static char *fmts[Numfmt] = {	[FmtAAC]  = "aac",	[FmtAV1]  = "av1",	[FmtFlac] = "flac",	[FmtH264] = "h264",	[FmtMp3]  = "mp3",	[FmtOpus] = "opus",	[FmtSrt]  = "srt",	[FmtVP8]  = "vp8",	[FmtVP9]  = "vp9",	[FmtVorbis] = "vorbis",}; intstr2fmt(char *s){	int i; 	for(i = 0; i < nelem(fmts); i++){		if(fmts[i] != nil && strcmp(fmts[i], s) == 0)			return i;	} 	return -1;} char *fmt2str(int fmt){	if(fmt >= 0 && fmt < nelem(fmts))		return fmts[fmt]; 	return "???";} uvlongnanosec(void){	static uvlong fasthz, xstart;	uvlong x, div; 	if(fasthz == ~0ULL)		return nsec() - xstart; 	if(fasthz == 0){		fasthz = _tos->cyclefreq;		if(fasthz == 0){			fasthz = ~0ULL;			xstart = nsec();			fprint(2, "cyclefreq not available, falling back to nsec()\n");			fprint(2, "you might want to disable aux/timesync\n");		}else{			cycles(&xstart);		}		return 0;	}	cycles(&x);	x -= xstart; 	/* this is ugly */	for(div = 1000000000ULL; x < 0x1999999999999999ULL && div > 1 ; div /= 10ULL, x *= 10ULL); 	return x / (fasthz / div);} voidnsleep(uvlong ns){#define Nmsec 1000000ULL	uvlong start, end; 	start = nanosec();	end = start + ns;	ns = start;	do{		if(end - ns > 85*Nmsec)			sleep(80);		else if (end - ns > 25*Nmsec)			sleep(20);		else if (end - ns > 1*Nmsec)			sleep(1);		else			break;		ns = nanosec();	}while(ns < end);}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t