haiku-website/static/legacy-docs/bebook/BMediaBufferDecoder.html

52 lines
14 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The Be Book - Classes And Methods - The Media Kit</title><link rel="stylesheet" href="be_book.css" type="text/css" media="all" /><link rel="shortcut icon" type="image/vnd.microsoft.icon" href="./images/favicon.ico" /><!--[if IE]>
<link rel="stylesheet" type="text/css" href="be_book_ie.css" />
<![endif]--><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content="Access, BeOS, BeBook, API" /><link rel="start" href="index.html" title="The Be Book" /><link rel="up" href="TheMediaKit.html" title="The Media Kit" /><link rel="prev" href="BMediaAddOn.html" title="BMediaAddOn" /><link rel="next" href="BMediaBufferEncoder.html" title="BMediaBufferEncoder" /></head><body><div id="header"><div id="headerT"><div id="headerTL"><a accesskey="p" href="BMediaAddOn.html" title="BMediaAddOn"><img src="./images/navigation/prev.png" alt="Prev" /></a> <a accesskey="u" href="TheMediaKit.html" title="The Media Kit"><img src="./images/navigation/up.png" alt="Up" /></a> <a accesskey="n" href="BMediaBufferEncoder.html" title="BMediaBufferEncoder"><img src="./images/navigation/next.png" alt="Next" /></a></div><div id="headerTR"><div id="navigpeople"><a href="http://www.haiku-os.org"><img src="./images/People_24.png" alt="haiku-os.org" title="Visit The Haiku Website" /></a></div><div class="navighome" title="Home"><a accesskey="h" href="index.html"><img src="./images/navigation/home.png" alt="Home" /></a></div><div class="navigboxed" id="navigindex"><a accesskey="i" href="ClassIndex.html" title="Index">I</a></div><div class="navigboxed" id="naviglang" title="English">en</div></div><div id="headerTC">The Be Book - Classes And Methods - The Media Kit</div></div><div id="headerB">Prev: <a href="BMediaAddOn.html">BMediaAddOn</a>  Up: <a href="TheMediaKit.html">The Media Kit</a>  Next: <a href="BMediaBufferEncoder.html">BMediaBufferEncoder</a></div><hr /></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h2 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaBufferDecoder"></a>BMediaBufferDecoder</h2></div></div></div><a id="id1134145" class="indexterm"></a><div class="classheader"><table border="0"><colgroup><col /><col /></colgroup><tbody><tr><td><table width="100%" border="0"><colgroup><col /><col /></colgroup><tbody><tr><td>Derived From:</td><td></td></tr><tr><td>Mix-in Classes:</td><td></td></tr><tr><td>Declared In:</td><td><code class="filename">media/MediaBufferEncoder.h</code></td></tr><tr><td>Library:</td><td><code class="filename">libmedia.so</code></td></tr><tr><td>Allocation:</td><td>Constructor only</td></tr></tbody></table></td><td>
<a class="link overview" href="BMediaBufferEncoderDecoder_Overview.html" title="BMediaBufferEncoder &amp; BMediaBufferDecoder">Class Overview</a>
<div class="toc"><ul><li><span class="section"><a href="BMediaBufferDecoder.html#BMediaBufferDecoder_ConstructorDestructor">Constructor and Destructor</a></span></li><li><span class="section"><a href="BMediaBufferDecoder.html#BMediaBufferDecoder_MemberFunctions">Member Functions</a></span></li></ul></div>
</td></tr></tbody></table></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><hr /><div xmlns:d="http://docbook.org/ns/docbook"><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaBufferDecoder_ConstructorDestructor"></a>Constructor and Destructor</h3></div></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaBufferDecoder_Constructor"></a>BMediaBufferDecoder()</h4></div></div></div><div class="synopsisgroup">
<code class="constructorsynopsis cpp"><span class="methodname">BMediaBufferDecoder</span>();</code>
<code class="constructorsynopsis cpp"><span class="methodname">BMediaBufferDecoder</span>(<span class="methodparam"><span class="modifier">const </span><span class="type">media_format* </span><span class="parameter">inFormat</span></span>,<br />                    <span class="methodparam"><span class="modifier">const </span><span class="type">void* </span><span class="parameter">info</span><span class="initializer"> = <span class="constant">NULL</span></span></span>,<br />                    <span class="methodparam"><span class="type">size_t </span><span class="parameter">infoSize</span><span class="initializer"> = 0</span></span>);</code>
<code class="constructorsynopsis cpp"><span class="methodname">BMediaBufferDecoder</span>(<span class="methodparam"><span class="modifier">const </span><span class="type">media_codec_info* </span><span class="parameter">mci</span></span>);</code>
</div><p>The constructor sets up the <code class="classname">BMediaBufferDecoder</code>. If you use the empty
form of the constructor, you'll have to call
<a class="link" href="BMediaDecoder.html#BMediaDecoder_SetTo" title="SetTo()"><code class="methodname">SetTo()</code></a>
to establish the format to be decoded before calling
<a class="link" href="BMediaDecoder.html#BMediaDecoder_Decode" title="Decode()"><code class="methodname">Decode()</code></a>.</p><p>The second form accepts a
<a class="link" href="TheMediaKit_DefinedTypes.html#media_format" title="media_format"><span class="type">media_format</span></a>
structure, <code class="parameter">inFormat</code>, that
indicates the type of media data that will be input into the decoder.
<code class="parameter">info</code>, if specified, will be filled out with text information about the
node; you must specify a buffer <code class="parameter">infoSize</code> bytes long.</p><p>The third form of the constructor accepts a
<a class="link" href="BMediaFormats.html#media_codec_info" title="media_codec_info"><span class="type">media_codec_info</span></a>
structure, <code class="parameter">mci</code>, that determines which codec should be used.</p><div class="admonition note"><div class="title">Note</div><div class="graphic"><img class="icon" alt="Note" width="32" src="./images/admonitions/Info_32.png" /><div class="text"><p>If you use either the
<a class="link" href="TheMediaKit_DefinedTypes.html#media_format" title="media_format"><span class="type">media_format</span></a>
or <a class="link" href="BMediaFormats.html#media_codec_info" title="media_codec_info"><span class="type">media_codec_info</span></a>
form of the constructor, you must call
<a class="link" href="BMediaBufferDecoder.html#BMediaBufferDecoder_InitCheck" title="InitCheck()"><code class="methodname">InitCheck()</code></a>
to ensure that construction was
successful before using any other functions in this class.</p></div></div></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaBufferDecoder_Destructor"></a>~BMediaBufferDecoder()</h4></div></div></div><code class="destructorsynopsis cpp"><span class="modifier">virtual </span><span class="methodname">~BMediaBufferDecoder</span>();</code><p>Releases the decoder add-on being used by the
<code class="classname">BMediaBufferDecoder</code>.</p></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><hr /><div xmlns:d="http://docbook.org/ns/docbook"><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaBufferDecoder_MemberFunctions"></a>Member Functions</h3></div></div></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaBufferDecoder_DecodeBuffer"></a>DecodeBuffer()</h4></div></div></div><code class="methodsynopsis cpp"><span class="type">status_t </span><span class="methodname">DecodeBuffer</span>(<span class="methodparam"><span class="modifier">const </span><span class="type">void* </span><span class="parameter">inputBuffer</span></span>,<br />                      <span class="methodparam"><span class="type">size_t </span><span class="parameter">inputSize</span></span>,<br />                      <span class="methodparam"><span class="type">void* </span><span class="parameter">outBuffer</span></span>,<br />                      <span class="methodparam"><span class="type">int64* </span><span class="parameter">outFrameCount</span></span>,<br />                      <span class="methodparam"><span class="type">media_header* </span><span class="parameter">outMH</span></span>,<br />                      <span class="methodparam"><span class="type">media_decode_info* </span><span class="parameter">info</span></span>);</code><p>Decodes a chunk of media data from the input buffer
<code class="parameter">inputBuffer</code> into the output buffer specified by
<code class="parameter">outBuffer</code>. The input buffer contains
<code class="parameter">inputSize</code> bytes of media data. On return,
<code class="parameter">outFrameCount</code> is set to indicate how many frames
of data were decoded, and outMH is the header for the decoded
buffer.</p><p>The
<a class="link" href="TheMediaKit_DefinedTypes.html#media_decode_info" title="media_decode_info"><span class="type">media_decode_info</span></a>
structure info is used on input to specify decoding parameters.</p><table class="variablelist returncodes"><thead><tr><th>Return Code</th><th>Description</th></tr></thead><tbody><tr><td><p><span class="term"><code class="constant">B_OK</code></span></p></td><td><p>No error.</p></td></tr><tr><td><p><span class="term">Other errors.</span></p></td><td><p>The decoder's
<a class="link" href="BMediaDecoder.html#BMediaDecoder_Decode" title="Decode()"><code class="methodname">Decode()</code></a>
function can return errors.</p></td></tr></tbody></table></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaBufferDecoder_GetNextChunk"></a>GetNextChunk()</h4></div><div xmlns:d="http://docbook.org/ns/docbook"><h5 xmlns="http://www.w3.org/1999/xhtml" class="subtitle">protected</h5></div></div></div><code class="methodsynopsis cpp"><span class="type">status_t </span><span class="methodname">GetNextChunk</span>(<span class="methodparam"><span class="modifier">const </span><span class="type">void** </span><span class="parameter">chunkData</span></span>,<br />                      <span class="methodparam"><span class="type">size_t* </span><span class="parameter">chunkLen</span></span>,<br />                      <span class="methodparam"><span class="type">media_header* </span><span class="parameter">mh</span></span>) <span class="modifier"> = 0</span>;</code><p>Implementation detail. This function is implemented to fetch memory from
the input buffer specified by the call to
<a class="link" href="BMediaBufferDecoder.html#BMediaBufferDecoder_DecodeBuffer" title="DecodeBuffer()"><code class="methodname">DecodeBuffer()</code></a>.</p></div><div class="section"><div xmlns="" xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div xmlns:d="http://docbook.org/ns/docbook"><h4 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="BMediaBufferDecoder_InitCheck"></a>InitCheck()</h4></div></div></div><code class="methodsynopsis cpp"><span class="type">status_t </span><span class="methodname">InitCheck</span>() <span class="modifier">const</span>;</code><p>Returns a <span class="type">status_t</span> value indicating whether or not construction was
successful. You must call this function after construction before calling
any other <code class="classname">BMediaBufferDecoder</code> functions.</p><table class="variablelist returncodes"><thead><tr><th>Return Code</th><th>Description</th></tr></thead><tbody><tr><td><p><span class="term"><code class="constant">B_OK</code></span></p></td><td><p>The constructor was successful.</p></td></tr><tr><td><p><span class="term">Other errors.</span></p></td><td><p>See
<a class="link" href="BMediaDecoder.html" title="BMediaDecoder"><code class="classname">BMediaDecoder</code></a>'s
<a class="link" href="BMediaDecoder.html#BMediaDecoder_SetTo" title="SetTo()"><code class="methodname">SetTo()</code></a>
function.</p></td></tr></tbody></table></div></div></div><div id="footer"><hr /><div id="footerT">Prev: <a href="BMediaAddOn.html">BMediaAddOn</a>  Up: <a href="TheMediaKit.html">The Media Kit</a>  Next: <a href="BMediaBufferEncoder.html">BMediaBufferEncoder</a> </div><div id="footerB"><div id="footerBL"><a href="BMediaAddOn.html" title="BMediaAddOn"><img src="./images/navigation/prev.png" alt="Prev" /></a> <a href="TheMediaKit.html" title="The Media Kit"><img src="./images/navigation/up.png" alt="Up" /></a> <a href="BMediaBufferEncoder.html" title="BMediaBufferEncoder"><img src="./images/navigation/next.png" alt="Next" /></a></div><div id="footerBR"><div><a href="http://www.haiku-os.org"><img src="./images/People_24.png" alt="haiku-os.org" title="Visit The Haiku Website" /></a></div><div class="navighome" title="Home"><a accesskey="h" href="index.html"><img src="./images/navigation/home.png" alt="Home" /></a></div></div><div id="footerBC"><a href="http://www.access-company.com/home.html" title="ACCESS Co."><img alt="Access Company" src="./images/access_logo.png" /></a></div></div></div><div id="licenseFooter"><div id="licenseFooterBL"><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/" title="Creative Commons License"><img alt="Creative Commons License" style="border-width:0" src="https://licensebuttons.net/l/by-nc-nd/3.0/88x31.png" /></a></div><div id="licenseFooterBR"><a href="./LegalNotice.html">Legal Notice</a></div><div id="licenseFooterBC"><span id="licenseText">This work is licensed under a
<a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/">Creative
Commons Attribution-Non commercial-No Derivative Works 3.0 License</a>.</span></div></div></body></html>