shithub: mcfs

ref: 050366e484a2302927f9d537eea79250d30fa867
dir: mcfs/packet.h

View raw version
typedef struct Packet Packet;
typedef struct Packetctx Packetctx;

typedef int (*packet_f)(Biobuf *out, Packetctx *ctx, Packet *p, int np, uvlong ts);

struct Packet {
	uchar *data;
	int sz;
};

struct Packetctx {
	uvlong frid;
	uvlong duration;
	uvlong seekpreroll;
	vlong discardpad;
	vlong blockdur;
	struct {
		char name[16];
		vlong delay;
		struct {
			uchar *data;
			int sz;
		}priv;
	}codec;
	struct {
		uchar *data;
		int sz;
		int algo;
	}comp;
	u32int trackuid;
	u32int fmt;

	struct {
		int width;
		int height;
	}video;
	struct {
		float samplerate;
		int channels;
		int bps;
	}audio;
	uchar adts[7];
};

int aacpacket(Biobuf *out, Packetctx *ctx, Packet *p, int np, uvlong ts);
int ivfpacket(Biobuf *out, Packetctx *ctx, Packet *p, int np, uvlong ts);
int oggpacket(Biobuf *out, Packetctx *ctx, Packet *p, int np, uvlong ts);
int srtpacket(Biobuf *out, Packetctx *ctx, Packet *p, int np, uvlong ts);