\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 \item\end{DoxyCompactList}\item 
ogg\_\-uint32\_\-t {\bf height}
\begin{DoxyCompactList}\small\item\em encoded frame height \item\end{DoxyCompactList}\item 
ogg\_\-uint32\_\-t {\bf frame\_\-width}
\begin{DoxyCompactList}\small\item\em display frame width \item\end{DoxyCompactList}\item 
ogg\_\-uint32\_\-t {\bf frame\_\-height}
\begin{DoxyCompactList}\small\item\em display frame height \item\end{DoxyCompactList}\item 
ogg\_\-uint32\_\-t {\bf offset\_\-x}
\begin{DoxyCompactList}\small\item\em horizontal offset of the displayed frame \item\end{DoxyCompactList}\item 
ogg\_\-uint32\_\-t {\bf offset\_\-y}
\begin{DoxyCompactList}\small\item\em vertical offset of the displayed frame \item\end{DoxyCompactList}\item 
ogg\_\-uint32\_\-t {\bf fps\_\-numerator}
\begin{DoxyCompactList}\small\item\em frame rate numerator \item\end{DoxyCompactList}\item 
ogg\_\-uint32\_\-t {\bf fps\_\-denominator}
\begin{DoxyCompactList}\small\item\em frame rate denominator \item\end{DoxyCompactList}\item 
ogg\_\-uint32\_\-t {\bf aspect\_\-numerator}
\begin{DoxyCompactList}\small\item\em pixel aspect ratio numerator \item\end{DoxyCompactList}\item 
ogg\_\-uint32\_\-t {\bf aspect\_\-denominator}
\begin{DoxyCompactList}\small\item\em pixel aspect ratio denominator \item\end{DoxyCompactList}\item 
{\bf theora\_\-colorspace} {\bf colorspace}
\begin{DoxyCompactList}\small\item\em colorspace \item\end{DoxyCompactList}\item 
int {\bf target\_\-bitrate}
\begin{DoxyCompactList}\small\item\em nominal bitrate in bits per second \item\end{DoxyCompactList}\item 
int {\bf quality}
\begin{DoxyCompactList}\small\item\em Nominal quality setting, 0-\/63. \item\end{DoxyCompactList}\item 
int {\bf quick\_\-p}
\begin{DoxyCompactList}\small\item\em Quick encode/decode. \item\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 \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Theora bitstream info. Contains the basic playback parameters for a stream, corresponding to the initial 'info' 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 {\bf 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 {\bf 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$ {\bf 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} {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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} {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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 {\bf 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}
