METADATA ON BUFFERS IS OUTDATED ------------------------------- Buffer mutability properties are the most important part of gst, and similarly are the most complex. The simple case is that a buffer is created, memory allocated, data put in it, and passed to the next filter. That filter reads the data, does something (like creating a new buffer and decoding into it), and unreferences the buffer. This causes the data to be freed and the buffer to be destroyed. A more complex case is when the filter modifies the data in place. It does so and simply passes on the buffer to the next element. This is just as easy to deal with. If the second filter adds metadata to the buffer, it just has to add the pointer to the list. The next element simply traverses the list and