\section{th\+\_\+comment Struct Reference}
\label{structth__comment}\index{th\+\_\+comment@{th\+\_\+comment}}


The comment information.  




{\ttfamily \#include $<$codec.\+h$>$}

\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
char $\ast$$\ast$ {\bf user\+\_\+comments}
\begin{DoxyCompactList}\small\item\em The array of comment string vectors. \end{DoxyCompactList}\item 
int $\ast$ {\bf comment\+\_\+lengths}
\begin{DoxyCompactList}\small\item\em An array of the corresponding length of each vector, in bytes. \end{DoxyCompactList}\item 
int {\bf comments}
\begin{DoxyCompactList}\small\item\em The total number of comment strings. \end{DoxyCompactList}\item 
char $\ast$ {\bf vendor}
\begin{DoxyCompactList}\small\item\em The null-\/terminated vendor string. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
The comment information. 

This structure holds the in-\/stream metadata corresponding to the \textquotesingle{}comment\textquotesingle{} header packet. The comment header is meant to be used much like someone jotting a quick note on the label of a video. It should be a short, to the point text note that can be more than a couple words, but not more than a short paragraph.

The metadata is stored as a series of (tag, value) pairs, in length-\/encoded string vectors. The first occurrence of the \textquotesingle{}=\textquotesingle{} character delimits the tag and value. A particular tag may occur more than once, and order is significant. The character set encoding for the strings is always U\+T\+F-\/8, but the tag names are limited to A\+S\+C\+II, and treated as case-\/insensitive. See {\tt the Theora specification}, Section 6.\+3.\+3 for details.

In filling in this structure, \doxyref{th\+\_\+decode\+\_\+headerin()}{p.}{group__decfuncs_ga006d01d36fbe64768c571e6a12b7fc50} will null-\/terminate the user\+\_\+comment strings for safety. However, the bitstream format itself treats them as 8-\/bit clean vectors, possibly containing null characters, and so the length array should be treated as their authoritative length. 

\subsection{Field Documentation}
\index{th\+\_\+comment@{th\+\_\+comment}!comment\+\_\+lengths@{comment\+\_\+lengths}}
\index{comment\+\_\+lengths@{comment\+\_\+lengths}!th\+\_\+comment@{th\+\_\+comment}}
\subsubsection[{comment\+\_\+lengths}]{\setlength{\rightskip}{0pt plus 5cm}int$\ast$ th\+\_\+comment\+::comment\+\_\+lengths}\label{structth__comment_a723dc6fdf75757e70e28eea864b10898}


An array of the corresponding length of each vector, in bytes. 

\index{th\+\_\+comment@{th\+\_\+comment}!comments@{comments}}
\index{comments@{comments}!th\+\_\+comment@{th\+\_\+comment}}
\subsubsection[{comments}]{\setlength{\rightskip}{0pt plus 5cm}int th\+\_\+comment\+::comments}\label{structth__comment_a5990c34932376f070ad0fc314daaeb78}


The total number of comment strings. 

\index{th\+\_\+comment@{th\+\_\+comment}!user\+\_\+comments@{user\+\_\+comments}}
\index{user\+\_\+comments@{user\+\_\+comments}!th\+\_\+comment@{th\+\_\+comment}}
\subsubsection[{user\+\_\+comments}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$$\ast$ th\+\_\+comment\+::user\+\_\+comments}\label{structth__comment_ad72830e183e707bb0df423eb73b00de4}


The array of comment string vectors. 

\index{th\+\_\+comment@{th\+\_\+comment}!vendor@{vendor}}
\index{vendor@{vendor}!th\+\_\+comment@{th\+\_\+comment}}
\subsubsection[{vendor}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ th\+\_\+comment\+::vendor}\label{structth__comment_a93fbe894d23603f56843be15b0cbdba0}


The null-\/terminated vendor string. 

This identifies the software used to encode the stream. 

The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
{\bf codec.\+h}\end{DoxyCompactItemize}
