shithub: mcfs

ref: ace30eb522ce18622b465e550c6926d895101cb0
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;
	u32int trackuid;
	u32int fmt;

	struct {
		int width;
		int height;
	}video;
	struct {
		float samplerate;
		int channels;
		int bps;
	}audio;
};

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