summaryrefslogtreecommitdiff
path: root/docs/design/draft-buffer2.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/design/draft-buffer2.txt')
-rw-r--r--docs/design/draft-buffer2.txt40
1 files changed, 20 insertions, 20 deletions
diff --git a/docs/design/draft-buffer2.txt b/docs/design/draft-buffer2.txt
index 7fbe41265c..20a03ae556 100644
--- a/docs/design/draft-buffer2.txt
+++ b/docs/design/draft-buffer2.txt
@@ -23,7 +23,7 @@ Some examples of metadata:
Requirements
-------------
+~~~~~~~~~~~~
- It must be fast
* allocation, free, low fragmentation
@@ -41,7 +41,7 @@ Requirements
GstMiniObject
--------------
+~~~~~~~~~~~~~
We make GstMiniObject a simple refcounted C structure and also a GLib boxed
type. The following fields will be in the structure:
@@ -66,7 +66,7 @@ objects.
GstEvent, GstCaps, GstQuery, GstMessage
----------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have the new GstMiniObject be the first field in these objects. They will probably
also replace the copy and free functions with their own implementations.
@@ -77,7 +77,7 @@ the custom functions.
GstBuffer
----------
+~~~~~~~~~
A GstMiniObject will be the parent instance of the GstBuffer object, which is a
regular C structure.
@@ -105,7 +105,7 @@ Buffers point to a GstCaps structure that contains the caps of the buffer data.
GstBufferMeta
--------------
+~~~~~~~~~~~~~
A GstBufferMeta is a structure as follows:
@@ -208,7 +208,7 @@ GstBufferMetaMemory | | next ---+
. .
API examples
-------------
+~~~~~~~~~~~~
Buffers are created using the normal gst_buffer_new functions. The standard fields
are initialized as usual. A memory area that is bigger than the structure size
@@ -276,7 +276,7 @@ possible simple API would look like this:
Memory management
------------------
+~~~~~~~~~~~~~~~~~
* allocation
@@ -316,7 +316,7 @@ Memory management
Subbuffers
-----------
+~~~~~~~~~~
Subbuffers are a first class feature of the GstBuffer.
@@ -334,7 +334,7 @@ timing metadata needs to be reset to NONE when the start offset is different.
Serialization
--------------
+~~~~~~~~~~~~~
When buffer should be sent over the wire or be serialized in GDP, we need a way
to perform custom serialization and deserialization on the metadata.
@@ -345,7 +345,7 @@ and endianness.
Transformations
----------------
+~~~~~~~~~~~~~~~
After certain transformations, the metadata on a buffer might not be relevant
anymore.
@@ -368,7 +368,7 @@ so on).
Other use cases
----------------
+~~~~~~~~~~~~~~~
Making the GstBufferMetaMemory (for making the buffer point to the associated
memory region) as metadata on a GstBuffer, as opposed to making it an integral
@@ -397,7 +397,7 @@ implementations add (or use, in the case of a file reader) the memory metadata.
Relationship with GstCaps
--------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~
The difference between GstCaps, used in negotiation, and the metadata is not
clearly defined.
@@ -415,7 +415,7 @@ video resolution while the implementation details would be inside the metadata.
Compatibility
--------------
+~~~~~~~~~~~~~
We need to make sure that elements exchange metadata that they both understand,
This is particulary important when the metadata describes the data layout in
@@ -436,16 +436,16 @@ that are metadata aware to set a flag on their pads; any buffer passed on that
pad will be converted to the old layout when the flag is not set.
-Notes:
-------
+Notes
+~~~~~
Some structures that we need to be able to add to buffers.
- Clean Aperture
- Arbitrary Matrix Transform
- Aspect ratio
- Pan/crop/zoom
- Video strides
+* Clean Aperture
+* Arbitrary Matrix Transform
+* Aspect ratio
+* Pan/crop/zoom
+* Video strides
Some of these overlap, we need to find a minimal set of metadata structures that
allows us to define all use cases.