Force feeding involves synchronously:
More...
Force feeding involves synchronously:
This process is illustrated in the following diagram:
The following example code generates a stream of ten packets, each containing a single byte ('A', 'B', ... , 'J'):
#include <stdlib.h>
static long serialno;
static ogg_int64_t granulepos = 0;
static ogg_int64_t packetno = 0;
int
main (int argc, char * argv[])
{
char * progname, * filename = NULL;
ogg_packet op;
unsigned char buf[1];
long n;
progname = argv[0];
if (argc > 1) filename = argv[1];
if (filename) {
} else {
}
if (oggz == NULL) {
fprintf (stderr, "%s: Error creating oggz\n", progname);
exit (1);
}
for (packetno = 0; packetno < 10; packetno++) {
buf[0] = 'A' + (int)packetno;
op.packet = buf;
op.bytes = 1;
op.granulepos = granulepos;
op.packetno = packetno;
if (packetno == 0) op.b_o_s = 1;
else op.b_o_s = 0;
if (packetno == 9) op.e_o_s = 1;
else op.e_o_s = 0;
granulepos += 100;
}
exit (0);
}