libnestegg  0.1git
libnestegg Documentation

Introduction

This is the documentation for the libnestegg C API. libnestegg is a demultiplexing library for WebM media files.

Example code

nestegg * demux_ctx;
nestegg_init(&demux_ctx, io, NULL, -1);
while ((r = nestegg_read_packet(demux_ctx, &pkt)) > 0) {
unsigned int track;
nestegg_packet_track(pkt, &track);
// This example decodes the first track only.
if (track == 0) {
unsigned int chunk, chunks;
nestegg_packet_count(pkt, &chunks);
// Decode each chunk of data.
for (chunk = 0; chunk < chunks; ++chunk) {
unsigned char * data;
size_t data_size;
nestegg_packet_data(pkt, chunk, &data, &data_size);
example_codec_decode(codec_ctx, data, data_size);
}
}
}
nestegg_destroy(demux_ctx);
nestegg_packet_data
int nestegg_packet_data(nestegg_packet *packet, unsigned int item, unsigned char **data, size_t *length)
Get a pointer to chunk number item of packet data.
nestegg
struct nestegg nestegg
Opaque handle referencing the stream state.
Definition: nestegg.h:105
nestegg_packet
struct nestegg_packet nestegg_packet
Opaque handle referencing a packet of data.
Definition: nestegg.h:106
nestegg_packet_track
int nestegg_packet_track(nestegg_packet *packet, unsigned int *track)
Query the track number of packet.
nestegg_packet_count
int nestegg_packet_count(nestegg_packet *packet, unsigned int *count)
Query the number of data chunks contained in packet.
nestegg_destroy
void nestegg_destroy(nestegg *context)
Destroy a nestegg context and free associated memory.
nestegg_free_packet
void nestegg_free_packet(nestegg_packet *packet)
Destroy a nestegg_packet and free associated memory.
nestegg_init
int nestegg_init(nestegg **context, nestegg_io io, nestegg_log callback, int64_t max_offset)
Initialize a nestegg context.
nestegg_read_packet
int nestegg_read_packet(nestegg *context, nestegg_packet **packet)
Read a packet of media data.