Commit 254e728d authored by Mark Thompson's avatar Mark Thompson

cbs: Minor comment fixes / cosmetics

parent 1d12a545
...@@ -25,6 +25,19 @@ ...@@ -25,6 +25,19 @@
#include "avcodec.h" #include "avcodec.h"
/*
* This defines a framework for converting between a coded bitstream
* and structures defining all individual syntax elements found in
* such a stream.
*
* Conversion in both directions is possible. Given a coded bitstream
* (any meaningful fragment), it can be parsed and decomposed into
* syntax elements stored in a set of codec-specific structures.
* Similarly, given a set of those same codec-specific structures the
* syntax elements can be serialised and combined to create a coded
* bitstream.
*/
struct CodedBitstreamType; struct CodedBitstreamType;
/** /**
...@@ -39,7 +52,7 @@ typedef uint32_t CodedBitstreamUnitType; ...@@ -39,7 +52,7 @@ typedef uint32_t CodedBitstreamUnitType;
/** /**
* Coded bitstream unit structure. * Coded bitstream unit structure.
* *
* A bitstream unit the the smallest element of a bitstream which * A bitstream unit the smallest element of a bitstream which
* is meaningful on its own. For example, an H.264 NAL unit. * is meaningful on its own. For example, an H.264 NAL unit.
* *
* See the codec-specific header for the meaning of this for any * See the codec-specific header for the meaning of this for any
...@@ -52,7 +65,7 @@ typedef struct CodedBitstreamUnit { ...@@ -52,7 +65,7 @@ typedef struct CodedBitstreamUnit {
CodedBitstreamUnitType type; CodedBitstreamUnitType type;
/** /**
* Pointer to the bitstream form of this unit. * Pointer to the directly-parsable bitstream form of this unit.
* *
* May be NULL if the unit currently only exists in decomposed form. * May be NULL if the unit currently only exists in decomposed form.
*/ */
...@@ -114,7 +127,7 @@ typedef struct CodedBitstreamFragment { ...@@ -114,7 +127,7 @@ typedef struct CodedBitstreamFragment {
/** /**
* Number of units in this fragment. * Number of units in this fragment.
* *
* This may be zero if the fragment only exists in bistream form * This may be zero if the fragment only exists in bitstream form
* and has not been decomposed. * and has not been decomposed.
*/ */
int nb_units; int nb_units;
...@@ -204,6 +217,10 @@ int ff_cbs_read_extradata(CodedBitstreamContext *ctx, ...@@ -204,6 +217,10 @@ int ff_cbs_read_extradata(CodedBitstreamContext *ctx,
/** /**
* Read the data bitstream from a packet into a fragment, then * Read the data bitstream from a packet into a fragment, then
* split into units and decompose. * split into units and decompose.
*
* This also updates the internal state of the coded bitstream context
* with any persistent data from the fragment which may be required to
* read following fragments (e.g. parameter sets).
*/ */
int ff_cbs_read_packet(CodedBitstreamContext *ctx, int ff_cbs_read_packet(CodedBitstreamContext *ctx,
CodedBitstreamFragment *frag, CodedBitstreamFragment *frag,
...@@ -212,6 +229,10 @@ int ff_cbs_read_packet(CodedBitstreamContext *ctx, ...@@ -212,6 +229,10 @@ int ff_cbs_read_packet(CodedBitstreamContext *ctx,
/** /**
* Read a bitstream from a memory region into a fragment, then * Read a bitstream from a memory region into a fragment, then
* split into units and decompose. * split into units and decompose.
*
* This also updates the internal state of the coded bitstream context
* with any persistent data from the fragment which may be required to
* read following fragments (e.g. parameter sets).
*/ */
int ff_cbs_read(CodedBitstreamContext *ctx, int ff_cbs_read(CodedBitstreamContext *ctx,
CodedBitstreamFragment *frag, CodedBitstreamFragment *frag,
...@@ -225,12 +246,18 @@ int ff_cbs_read(CodedBitstreamContext *ctx, ...@@ -225,12 +246,18 @@ int ff_cbs_read(CodedBitstreamContext *ctx,
* data buffer. When modifying the content of decomposed units, this * data buffer. When modifying the content of decomposed units, this
* can be used to regenerate the bitstream form of units or the whole * can be used to regenerate the bitstream form of units or the whole
* fragment so that it can be extracted for other use. * fragment so that it can be extracted for other use.
*
* This also updates the internal state of the coded bitstream context
* with any persistent data from the fragment which may be required to
* write following fragments (e.g. parameter sets).
*/ */
int ff_cbs_write_fragment_data(CodedBitstreamContext *ctx, int ff_cbs_write_fragment_data(CodedBitstreamContext *ctx,
CodedBitstreamFragment *frag); CodedBitstreamFragment *frag);
/** /**
* Write the bitstream of a fragment to the extradata in codec parameters. * Write the bitstream of a fragment to the extradata in codec parameters.
*
* This replaces any existing extradata in the structure.
*/ */
int ff_cbs_write_extradata(CodedBitstreamContext *ctx, int ff_cbs_write_extradata(CodedBitstreamContext *ctx,
AVCodecParameters *par, AVCodecParameters *par,
......
...@@ -32,6 +32,9 @@ typedef struct CodedBitstreamType { ...@@ -32,6 +32,9 @@ typedef struct CodedBitstreamType {
// Split frag->data into coded bitstream units, creating the // Split frag->data into coded bitstream units, creating the
// frag->units array. Fill data but not content on each unit. // frag->units array. Fill data but not content on each unit.
// The header argument should be set if the fragment came from
// a header block, which may require different parsing for some
// codecs (e.g. the AVCC header in H.264).
int (*split_fragment)(CodedBitstreamContext *ctx, int (*split_fragment)(CodedBitstreamContext *ctx,
CodedBitstreamFragment *frag, CodedBitstreamFragment *frag,
int header); int header);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment