\section{theora\+\_\+info Struct Reference}
\label{structtheora__info}\index{theora\+\_\+info@{theora\+\_\+info}}


Theora bitstream info.  




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

\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
ogg\+\_\+uint32\+\_\+t {\bf width}
\begin{DoxyCompactList}\small\item\em encoded frame width \end{DoxyCompactList}\item 
ogg\+\_\+uint32\+\_\+t {\bf height}
\begin{DoxyCompactList}\small\item\em encoded frame height \end{DoxyCompactList}\item 
ogg\+\_\+uint32\+\_\+t {\bf frame\+\_\+width}
\begin{DoxyCompactList}\small\item\em display frame width \end{DoxyCompactList}\item 
ogg\+\_\+uint32\+\_\+t {\bf frame\+\_\+height}
\begin{DoxyCompactList}\small\item\em display frame height \end{DoxyCompactList}\item 
ogg\+\_\+uint32\+\_\+t {\bf offset\+\_\+x}
\begin{DoxyCompactList}\small\item\em horizontal offset of the displayed frame \end{DoxyCompactList}\item 
ogg\+\_\+uint32\+\_\+t {\bf offset\+\_\+y}
\begin{DoxyCompactList}\small\item\em vertical offset of the displayed frame \end{DoxyCompactList}\item 
ogg\+\_\+uint32\+\_\+t {\bf fps\+\_\+numerator}
\begin{DoxyCompactList}\small\item\em frame rate numerator \end{DoxyCompactList}\item 
ogg\+\_\+uint32\+\_\+t {\bf fps\+\_\+denominator}
\begin{DoxyCompactList}\small\item\em frame rate denominator \end{DoxyCompactList}\item 
ogg\+\_\+uint32\+\_\+t {\bf aspect\+\_\+numerator}
\begin{DoxyCompactList}\small\item\em pixel aspect ratio numerator \end{DoxyCompactList}\item 
ogg\+\_\+uint32\+\_\+t {\bf aspect\+\_\+denominator}
\begin{DoxyCompactList}\small\item\em pixel aspect ratio denominator \end{DoxyCompactList}\item 
{\bf theora\+\_\+colorspace} {\bf colorspace}
\begin{DoxyCompactList}\small\item\em colorspace \end{DoxyCompactList}\item 
int {\bf target\+\_\+bitrate}
\begin{DoxyCompactList}\small\item\em nominal bitrate in bits per second \end{DoxyCompactList}\item 
int {\bf quality}
\begin{DoxyCompactList}\small\item\em Nominal quality setting, 0-\/63. \end{DoxyCompactList}\item 
int {\bf quick\+\_\+p}
\begin{DoxyCompactList}\small\item\em Quick encode/decode. \end{DoxyCompactList}\item 
unsigned char {\bf version\+\_\+major}
\item 
unsigned char {\bf version\+\_\+minor}
\item 
unsigned char {\bf version\+\_\+subminor}
\item 
void $\ast$ {\bf codec\+\_\+setup}
\item 
int {\bf dropframes\+\_\+p}
\item 
int {\bf keyframe\+\_\+auto\+\_\+p}
\item 
ogg\+\_\+uint32\+\_\+t {\bf keyframe\+\_\+frequency}
\item 
ogg\+\_\+uint32\+\_\+t {\bf keyframe\+\_\+frequency\+\_\+force}
\item 
ogg\+\_\+uint32\+\_\+t {\bf keyframe\+\_\+data\+\_\+target\+\_\+bitrate}
\item 
ogg\+\_\+int32\+\_\+t {\bf keyframe\+\_\+auto\+\_\+threshold}
\item 
ogg\+\_\+uint32\+\_\+t {\bf keyframe\+\_\+mindistance}
\item 
ogg\+\_\+int32\+\_\+t {\bf noise\+\_\+sensitivity}
\item 
ogg\+\_\+int32\+\_\+t {\bf sharpness}
\item 
{\bf theora\+\_\+pixelformat} {\bf pixelformat}
\begin{DoxyCompactList}\small\item\em chroma subsampling mode to expect \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Theora bitstream info. 

Contains the basic playback parameters for a stream, corresponding to the initial \textquotesingle{}info\textquotesingle{} header packet.

Encoded theora frames must be a multiple of 16 in width and height. To handle other frame sizes, a crop rectangle is specified in frame\+\_\+height and frame\+\_\+width, offset\+\_\+x and $\ast$ offset\+\_\+y. The offset and size should still be a multiple of 2 to avoid chroma sampling shifts. Offset values in this structure are measured from the upper left of the image.

Frame rate, in frames per second, is stored as a rational fraction. Aspect ratio is also stored as a rational fraction, and refers to the aspect ratio of the frame pixels, not of the overall frame itself.

See {\tt examples/encoder\+\_\+example.\+c} for usage examples of the other paramters and good default settings for the encoder parameters. 

\subsection{Field Documentation}
\index{theora\+\_\+info@{theora\+\_\+info}!aspect\+\_\+denominator@{aspect\+\_\+denominator}}
\index{aspect\+\_\+denominator@{aspect\+\_\+denominator}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{aspect\+\_\+denominator}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::aspect\+\_\+denominator}\label{structtheora__info_afebc4d0cbfb34b68c833a8c79e83ae12}


pixel aspect ratio denominator 

\index{theora\+\_\+info@{theora\+\_\+info}!aspect\+\_\+numerator@{aspect\+\_\+numerator}}
\index{aspect\+\_\+numerator@{aspect\+\_\+numerator}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{aspect\+\_\+numerator}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::aspect\+\_\+numerator}\label{structtheora__info_a5a3ed8c79815fba1aa06c3f7d8e48b35}


pixel aspect ratio numerator 

\index{theora\+\_\+info@{theora\+\_\+info}!codec\+\_\+setup@{codec\+\_\+setup}}
\index{codec\+\_\+setup@{codec\+\_\+setup}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{codec\+\_\+setup}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ theora\+\_\+info\+::codec\+\_\+setup}\label{structtheora__info_a719a1d77a4a3bfeab79aa5747dbbb04c}
\index{theora\+\_\+info@{theora\+\_\+info}!colorspace@{colorspace}}
\index{colorspace@{colorspace}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{colorspace}]{\setlength{\rightskip}{0pt plus 5cm}{\bf theora\+\_\+colorspace} theora\+\_\+info\+::colorspace}\label{structtheora__info_a5eaba99c96706d47b426ab7b7602dc5d}


colorspace 

\index{theora\+\_\+info@{theora\+\_\+info}!dropframes\+\_\+p@{dropframes\+\_\+p}}
\index{dropframes\+\_\+p@{dropframes\+\_\+p}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{dropframes\+\_\+p}]{\setlength{\rightskip}{0pt plus 5cm}int theora\+\_\+info\+::dropframes\+\_\+p}\label{structtheora__info_af294db65a8363a0bcf43f4727763b291}
\index{theora\+\_\+info@{theora\+\_\+info}!fps\+\_\+denominator@{fps\+\_\+denominator}}
\index{fps\+\_\+denominator@{fps\+\_\+denominator}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{fps\+\_\+denominator}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::fps\+\_\+denominator}\label{structtheora__info_a9aa7e826e0323a4ae8cd8646a6cfbfea}


frame rate denominator 

\index{theora\+\_\+info@{theora\+\_\+info}!fps\+\_\+numerator@{fps\+\_\+numerator}}
\index{fps\+\_\+numerator@{fps\+\_\+numerator}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{fps\+\_\+numerator}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::fps\+\_\+numerator}\label{structtheora__info_a3478199aa5ab213816c1819f70085ad7}


frame rate numerator 

\index{theora\+\_\+info@{theora\+\_\+info}!frame\+\_\+height@{frame\+\_\+height}}
\index{frame\+\_\+height@{frame\+\_\+height}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{frame\+\_\+height}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::frame\+\_\+height}\label{structtheora__info_a287e4c194f1d2e6deb39d59f1748ea48}


display frame height 

\index{theora\+\_\+info@{theora\+\_\+info}!frame\+\_\+width@{frame\+\_\+width}}
\index{frame\+\_\+width@{frame\+\_\+width}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{frame\+\_\+width}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::frame\+\_\+width}\label{structtheora__info_a8f28f4018a25634d40e4ae861fbbccfa}


display frame width 

\index{theora\+\_\+info@{theora\+\_\+info}!height@{height}}
\index{height@{height}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{height}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::height}\label{structtheora__info_ae6f0274fc4a7f285c422d91abb35f9c6}


encoded frame height 

\index{theora\+\_\+info@{theora\+\_\+info}!keyframe\+\_\+auto\+\_\+p@{keyframe\+\_\+auto\+\_\+p}}
\index{keyframe\+\_\+auto\+\_\+p@{keyframe\+\_\+auto\+\_\+p}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{keyframe\+\_\+auto\+\_\+p}]{\setlength{\rightskip}{0pt plus 5cm}int theora\+\_\+info\+::keyframe\+\_\+auto\+\_\+p}\label{structtheora__info_a23648173369174f687085c0ce85ef30e}
\index{theora\+\_\+info@{theora\+\_\+info}!keyframe\+\_\+auto\+\_\+threshold@{keyframe\+\_\+auto\+\_\+threshold}}
\index{keyframe\+\_\+auto\+\_\+threshold@{keyframe\+\_\+auto\+\_\+threshold}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{keyframe\+\_\+auto\+\_\+threshold}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+int32\+\_\+t theora\+\_\+info\+::keyframe\+\_\+auto\+\_\+threshold}\label{structtheora__info_a95cb8958e29ad3d24047ee8f9e7fd99b}
\index{theora\+\_\+info@{theora\+\_\+info}!keyframe\+\_\+data\+\_\+target\+\_\+bitrate@{keyframe\+\_\+data\+\_\+target\+\_\+bitrate}}
\index{keyframe\+\_\+data\+\_\+target\+\_\+bitrate@{keyframe\+\_\+data\+\_\+target\+\_\+bitrate}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{keyframe\+\_\+data\+\_\+target\+\_\+bitrate}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::keyframe\+\_\+data\+\_\+target\+\_\+bitrate}\label{structtheora__info_a588942d1ee90a26a7effdf6a0e98b9ce}
\index{theora\+\_\+info@{theora\+\_\+info}!keyframe\+\_\+frequency@{keyframe\+\_\+frequency}}
\index{keyframe\+\_\+frequency@{keyframe\+\_\+frequency}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{keyframe\+\_\+frequency}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::keyframe\+\_\+frequency}\label{structtheora__info_a03e1b3e337af5f9dabaaaeb9050f145a}
\index{theora\+\_\+info@{theora\+\_\+info}!keyframe\+\_\+frequency\+\_\+force@{keyframe\+\_\+frequency\+\_\+force}}
\index{keyframe\+\_\+frequency\+\_\+force@{keyframe\+\_\+frequency\+\_\+force}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{keyframe\+\_\+frequency\+\_\+force}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::keyframe\+\_\+frequency\+\_\+force}\label{structtheora__info_ad9d2e22c44a53473010e6d1042dfe0d8}
\index{theora\+\_\+info@{theora\+\_\+info}!keyframe\+\_\+mindistance@{keyframe\+\_\+mindistance}}
\index{keyframe\+\_\+mindistance@{keyframe\+\_\+mindistance}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{keyframe\+\_\+mindistance}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::keyframe\+\_\+mindistance}\label{structtheora__info_aa79ca8c0e77a884d4487fd627fae32e9}
\index{theora\+\_\+info@{theora\+\_\+info}!noise\+\_\+sensitivity@{noise\+\_\+sensitivity}}
\index{noise\+\_\+sensitivity@{noise\+\_\+sensitivity}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{noise\+\_\+sensitivity}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+int32\+\_\+t theora\+\_\+info\+::noise\+\_\+sensitivity}\label{structtheora__info_ac4789034f547b57d1075e035050eeed9}
\index{theora\+\_\+info@{theora\+\_\+info}!offset\+\_\+x@{offset\+\_\+x}}
\index{offset\+\_\+x@{offset\+\_\+x}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{offset\+\_\+x}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::offset\+\_\+x}\label{structtheora__info_af5949a02bef29512f2705e6f6c944e3b}


horizontal offset of the displayed frame 

\index{theora\+\_\+info@{theora\+\_\+info}!offset\+\_\+y@{offset\+\_\+y}}
\index{offset\+\_\+y@{offset\+\_\+y}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{offset\+\_\+y}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::offset\+\_\+y}\label{structtheora__info_a91c3922097ba32a85acd584a01dc2c93}


vertical offset of the displayed frame 

\index{theora\+\_\+info@{theora\+\_\+info}!pixelformat@{pixelformat}}
\index{pixelformat@{pixelformat}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{pixelformat}]{\setlength{\rightskip}{0pt plus 5cm}{\bf theora\+\_\+pixelformat} theora\+\_\+info\+::pixelformat}\label{structtheora__info_a65ab4376ab5242ee82e06c78fb7008ab}


chroma subsampling mode to expect 

\index{theora\+\_\+info@{theora\+\_\+info}!quality@{quality}}
\index{quality@{quality}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{quality}]{\setlength{\rightskip}{0pt plus 5cm}int theora\+\_\+info\+::quality}\label{structtheora__info_a71a4748a5f31bd58d0e403b7806c980d}


Nominal quality setting, 0-\/63. 

\index{theora\+\_\+info@{theora\+\_\+info}!quick\+\_\+p@{quick\+\_\+p}}
\index{quick\+\_\+p@{quick\+\_\+p}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{quick\+\_\+p}]{\setlength{\rightskip}{0pt plus 5cm}int theora\+\_\+info\+::quick\+\_\+p}\label{structtheora__info_a2dfae4fd175dbd19254eaf0697778ff5}


Quick encode/decode. 

\index{theora\+\_\+info@{theora\+\_\+info}!sharpness@{sharpness}}
\index{sharpness@{sharpness}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{sharpness}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+int32\+\_\+t theora\+\_\+info\+::sharpness}\label{structtheora__info_a3fb695de2b2f56dd0203b9e2eb0df1cc}
\index{theora\+\_\+info@{theora\+\_\+info}!target\+\_\+bitrate@{target\+\_\+bitrate}}
\index{target\+\_\+bitrate@{target\+\_\+bitrate}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{target\+\_\+bitrate}]{\setlength{\rightskip}{0pt plus 5cm}int theora\+\_\+info\+::target\+\_\+bitrate}\label{structtheora__info_a0cfba041767ae2416dd190a406afe713}


nominal bitrate in bits per second 

\index{theora\+\_\+info@{theora\+\_\+info}!version\+\_\+major@{version\+\_\+major}}
\index{version\+\_\+major@{version\+\_\+major}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{version\+\_\+major}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char theora\+\_\+info\+::version\+\_\+major}\label{structtheora__info_a7c5ebb9e6700aaef87f29f7c6074e474}
\index{theora\+\_\+info@{theora\+\_\+info}!version\+\_\+minor@{version\+\_\+minor}}
\index{version\+\_\+minor@{version\+\_\+minor}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{version\+\_\+minor}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char theora\+\_\+info\+::version\+\_\+minor}\label{structtheora__info_a75eda4f30270d833c7b9dba43932a06a}
\index{theora\+\_\+info@{theora\+\_\+info}!version\+\_\+subminor@{version\+\_\+subminor}}
\index{version\+\_\+subminor@{version\+\_\+subminor}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{version\+\_\+subminor}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char theora\+\_\+info\+::version\+\_\+subminor}\label{structtheora__info_aa07967ecd6e20bd2928ead42b6397b3d}
\index{theora\+\_\+info@{theora\+\_\+info}!width@{width}}
\index{width@{width}!theora\+\_\+info@{theora\+\_\+info}}
\subsubsection[{width}]{\setlength{\rightskip}{0pt plus 5cm}ogg\+\_\+uint32\+\_\+t theora\+\_\+info\+::width}\label{structtheora__info_a17c2fc651bb3329f1ea6b13ff1d3957b}


encoded frame width 



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