<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Theora" rel="Chapter" href="Theora.html"><title>Theora</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">exception</span> <span class="constructor">Internal_error</span><br> <span class="keyword">exception</span> <span class="constructor">Invalid_data</span><br> <span class="keyword">exception</span> <span class="constructor">Unknown_error</span> <span class="keyword">of</span> int<br> <span class="keyword">val</span> version_string : unit <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> version_number : unit <span class="keywordsign">-></span> int * int * int<br> <span class="keyword">type</span> colorspace =<br> <span class="constructor">CS_unspecified</span><br> <span class="keywordsign">|</span> <span class="constructor">CS_ITU_REC_470M</span><br> <span class="keywordsign">|</span> <span class="constructor">CS_ITU_REC_470BG</span><br> <span class="keywordsign">|</span> <span class="constructor">CS_NSPACES</span><br> <span class="keyword">type</span> pixelformat = <span class="constructor">PF_420</span> <span class="keywordsign">|</span> <span class="constructor">PF_reserved</span> <span class="keywordsign">|</span> <span class="constructor">PF_422</span> <span class="keywordsign">|</span> <span class="constructor">PF_444</span><br> <span class="keyword">type</span> info = {<br> width : int;<br> height : int;<br> frame_width : int;<br> frame_height : int;<br> offset_x : int;<br> offset_y : int;<br> fps_numerator : int;<br> fps_denominator : int;<br> aspect_numerator : int;<br> aspect_denominator : int;<br> colorspace : <span class="constructor">Theora</span>.colorspace;<br> target_bitrate : int;<br> quality : int;<br> quick_p : bool;<br> version_major : int;<br> version_minor : int;<br> version_subminor : int;<br> dropframes_p : bool;<br> keyframe_auto_p : bool;<br> keyframe_frequency : int;<br> keyframe_frequency_force : int;<br> keyframe_data_target_bitrate : int;<br> keyframe_auto_threshold : int;<br> keyframe_mindistance : int;<br> noise_sensitivity : int;<br> sharpness : int;<br> pixelformat : <span class="constructor">Theora</span>.pixelformat;<br> }<br> <span class="keyword">type</span> data_buffer =<br> (int, <span class="constructor">Bigarray</span>.int8_unsigned_elt, <span class="constructor">Bigarray</span>.c_layout) <span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br> <span class="keyword">type</span> yuv_buffer = {<br> y_width : int;<br> y_height : int;<br> y_stride : int;<br> uv_width : int;<br> uv_height : int;<br> uv_stride : int;<br> y : <span class="constructor">Theora</span>.data_buffer;<br> u : <span class="constructor">Theora</span>.data_buffer;<br> v : <span class="constructor">Theora</span>.data_buffer;<br> }<br> <span class="keyword">module</span> <span class="constructor">Encoder</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> create : <span class="constructor">Theora</span>.info <span class="keywordsign">-></span> <span class="constructor">Theora</span>.<span class="constructor">Encoder</span>.t<br> <span class="keyword">val</span> encode_header : <span class="constructor">Theora</span>.<span class="constructor">Encoder</span>.t <span class="keywordsign">-></span> <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> encode_comments : <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.t <span class="keywordsign">-></span> (string * string) list <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> encode_tables : <span class="constructor">Theora</span>.<span class="constructor">Encoder</span>.t <span class="keywordsign">-></span> <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> encode_page :<br> <span class="constructor">Theora</span>.<span class="constructor">Encoder</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.t <span class="keywordsign">-></span> (unit <span class="keywordsign">-></span> <span class="constructor">Theora</span>.yuv_buffer) <span class="keywordsign">-></span> <span class="constructor">Ogg</span>.<span class="constructor">Page</span>.t<br> <span class="keyword">val</span> encode_buffer :<br> <span class="constructor">Theora</span>.<span class="constructor">Encoder</span>.t <span class="keywordsign">-></span> <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.t <span class="keywordsign">-></span> <span class="constructor">Theora</span>.yuv_buffer <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> time_of_granulepos : <span class="constructor">Theora</span>.<span class="constructor">Encoder</span>.t <span class="keywordsign">-></span> <span class="constructor">Int64</span>.t <span class="keywordsign">-></span> <span class="constructor">Nativeint</span>.t<br> <span class="keyword">val</span> frames_of_granulepos : <span class="constructor">Theora</span>.<span class="constructor">Encoder</span>.t <span class="keywordsign">-></span> <span class="constructor">Int64</span>.t <span class="keywordsign">-></span> <span class="constructor">Int64</span>.t<br> <span class="keyword">val</span> eos : <span class="constructor">Theora</span>.<span class="constructor">Encoder</span>.t <span class="keywordsign">-></span> <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Decoder</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> check : <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.packet <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> create :<br> <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.packet <span class="keywordsign">-></span><br> <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.packet <span class="keywordsign">-></span><br> <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.packet <span class="keywordsign">-></span><br> <span class="constructor">Theora</span>.<span class="constructor">Decoder</span>.t * <span class="constructor">Theora</span>.info * string * (string * string) list<br> <span class="keyword">val</span> get_yuv : <span class="constructor">Theora</span>.<span class="constructor">Decoder</span>.t <span class="keywordsign">-></span> <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.t <span class="keywordsign">-></span> <span class="constructor">Theora</span>.yuv_buffer<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Skeleton</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> fisbone :<br> ?start_granule:<span class="constructor">Int64</span>.t <span class="keywordsign">-></span><br> ?headers:(string * string) list <span class="keywordsign">-></span><br> serialno:<span class="constructor">Nativeint</span>.t <span class="keywordsign">-></span> info:<span class="constructor">Theora</span>.info <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Ogg</span>.<span class="constructor">Stream</span>.packet<br> <span class="keyword">end</span><br> <span class="keyword">end</span></code></body></html>