libctru/mvd_8h.html
2024-11-03 20:36:34 +00:00

643 lines
40 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libctru: include/3ds/services/mvd.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libctru
&#160;<span id="projectnumber">v2.4.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_d475325f6a9fe3bfc3a495c72a9e475e.html">3ds</a></li><li class="navelem"><a class="el" href="dir_0e005207343684f6967052d1f51a7e66.html">services</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">mvd.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>MVD service.
<a href="#details">More...</a></p>
<p><a href="mvd_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structMVDSTD__Config.html">MVDSTD_Config</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Processing configuration. <a href="structMVDSTD__Config.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structMVDSTD__ProcessNALUnitOut.html">MVDSTD_ProcessNALUnitOut</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structMVDSTD__OutputBuffersEntry.html">MVDSTD_OutputBuffersEntry</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structMVDSTD__OutputBuffersEntryList.html">MVDSTD_OutputBuffersEntryList</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structMVDSTD__InitStruct.html">MVDSTD_InitStruct</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This can be used to override the default input values for MVDSTD commands during initialization with video-processing. The default for these fields are all-zero, except for cmd1b_inval which is 1. See also here: <a href="https://www.3dbrew.org/wiki/MVD_Services">https://www.3dbrew.org/wiki/MVD_Services</a>. <a href="structMVDSTD__InitStruct.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a6bf61258865ef1ef89c538f128a2ad7b"><td class="memItemLeft" align="right" valign="top"><a id="a6bf61258865ef1ef89c538f128a2ad7b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#a6bf61258865ef1ef89c538f128a2ad7b">MVD_STATUS_OK</a>&#160;&#160;&#160;0x17000</td></tr>
<tr class="memdesc:a6bf61258865ef1ef89c538f128a2ad7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">These values are the data returned as "result-codes" by MVDSTD. <br /></td></tr>
<tr class="separator:a6bf61258865ef1ef89c538f128a2ad7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c0e674ffbd22e03b81493b15d468c7a"><td class="memItemLeft" align="right" valign="top"><a id="a2c0e674ffbd22e03b81493b15d468c7a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MVD_STATUS_PARAMSET</b>&#160;&#160;&#160;0x17001</td></tr>
<tr class="separator:a2c0e674ffbd22e03b81493b15d468c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2abf608a67fea22046da517db3bac9c"><td class="memItemLeft" align="right" valign="top"><a id="af2abf608a67fea22046da517db3bac9c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MVD_STATUS_BUSY</b>&#160;&#160;&#160;0x17002</td></tr>
<tr class="separator:af2abf608a67fea22046da517db3bac9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a375a2a88c24d1d4616a05ffb82648f33"><td class="memItemLeft" align="right" valign="top"><a id="a375a2a88c24d1d4616a05ffb82648f33"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MVD_STATUS_FRAMEREADY</b>&#160;&#160;&#160;0x17003</td></tr>
<tr class="separator:a375a2a88c24d1d4616a05ffb82648f33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bb0017d19e2cef915c8c9836ccc24e5"><td class="memItemLeft" align="right" valign="top"><a id="a1bb0017d19e2cef915c8c9836ccc24e5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MVD_STATUS_INCOMPLETEPROCESSING</b>&#160;&#160;&#160;0x17004</td></tr>
<tr class="separator:a1bb0017d19e2cef915c8c9836ccc24e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2deca0cefc073ff9b2c745dc8b81b80"><td class="memItemLeft" align="right" valign="top"><a id="ac2deca0cefc073ff9b2c745dc8b81b80"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MVD_STATUS_NALUPROCFLAG</b>&#160;&#160;&#160;0x17007</td></tr>
<tr class="separator:ac2deca0cefc073ff9b2c745dc8b81b80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a788267f8f5eaba57aeaea4b7c514a90d"><td class="memItemLeft" align="right" valign="top"><a id="a788267f8f5eaba57aeaea4b7c514a90d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#a788267f8f5eaba57aeaea4b7c514a90d">MVD_CHECKNALUPROC_SUCCESS</a>(x)&#160;&#160;&#160;(x==<a class="el" href="mvd_8h.html#a6bf61258865ef1ef89c538f128a2ad7b">MVD_STATUS_OK</a> || x==MVD_STATUS_PARAMSET || x==MVD_STATUS_FRAMEREADY || x==MVD_STATUS_INCOMPLETEPROCESSING || x==MVD_STATUS_NALUPROCFLAG)</td></tr>
<tr class="memdesc:a788267f8f5eaba57aeaea4b7c514a90d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This can be used to check whether <a class="el" href="mvd_8h.html#afa23e5c76c315a032cf010a335669015" title="Processes a video frame(specifically a NAL-unit).">mvdstdProcessVideoFrame()</a> was successful. <br /></td></tr>
<tr class="separator:a788267f8f5eaba57aeaea4b7c514a90d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a469adc5b4ae6402f2f762504efcb28f6"><td class="memItemLeft" align="right" valign="top"><a id="a469adc5b4ae6402f2f762504efcb28f6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#a469adc5b4ae6402f2f762504efcb28f6">MVD_DEFAULT_WORKBUF_SIZE</a>&#160;&#160;&#160;0x9006C8</td></tr>
<tr class="memdesc:a469adc5b4ae6402f2f762504efcb28f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default input size for <a class="el" href="mvd_8h.html#ab03653fc6535a3eea8df35fd232a6074" title="Initializes MVDSTD.">mvdstdInit()</a>. This is what the New3DS Internet Browser uses, from the MVDSTD:CalculateWorkBufSize output. <br /></td></tr>
<tr class="separator:a469adc5b4ae6402f2f762504efcb28f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a3a1b3742822153a4f62c1f79d228a861"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861">MVDSTD_Mode</a> { <br />
&#160;&#160;<a class="el" href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861a60d87a7f2151cd67f8b0710ec39f7583">MVDMODE_COLORFORMATCONV</a>
, <br />
&#160;&#160;<a class="el" href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861a4a87a822d91b28e9468c0147c90be30f">MVDMODE_VIDEOPROCESSING</a>
<br />
}</td></tr>
<tr class="memdesc:a3a1b3742822153a4f62c1f79d228a861"><td class="mdescLeft">&#160;</td><td class="mdescRight">Processing mode. <a href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861">More...</a><br /></td></tr>
<tr class="separator:a3a1b3742822153a4f62c1f79d228a861"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcd3d62338d21a3b7d26bd96fd850f29"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29">MVDSTD_InputFormat</a> { <br />
&#160;&#160;<a class="el" href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29aacf22aec18ff7e379b7b1578f9e10b12">MVD_INPUT_YUYV422</a> = 0x00010001
, <br />
&#160;&#160;<a class="el" href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29a8487699e0ef9c80df41d1ae321a509ac">MVD_INPUT_H264</a> = 0x00020001
<br />
}</td></tr>
<tr class="memdesc:abcd3d62338d21a3b7d26bd96fd850f29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input format. <a href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29">More...</a><br /></td></tr>
<tr class="separator:abcd3d62338d21a3b7d26bd96fd850f29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac91b4c4db9f9763dc972e0ca9dc70644"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644">MVDSTD_OutputFormat</a> { <br />
&#160;&#160;<a class="el" href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644ac3c8c4b72f05742531a4135ccd80e71e">MVD_OUTPUT_YUYV422</a> = 0x00010001
, <br />
&#160;&#160;<a class="el" href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644abc211cc1ddeb33aa942e33bbada487b6">MVD_OUTPUT_BGR565</a> = 0x00040002
, <br />
&#160;&#160;<a class="el" href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644a46a87383a22fc66ee051a77455f774b3">MVD_OUTPUT_RGB565</a> = 0x00040004
<br />
}</td></tr>
<tr class="memdesc:ac91b4c4db9f9763dc972e0ca9dc70644"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output format. <a href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644">More...</a><br /></td></tr>
<tr class="separator:ac91b4c4db9f9763dc972e0ca9dc70644"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ab03653fc6535a3eea8df35fd232a6074"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#ab03653fc6535a3eea8df35fd232a6074">mvdstdInit</a> (<a class="el" href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861">MVDSTD_Mode</a> mode, <a class="el" href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29">MVDSTD_InputFormat</a> input_type, <a class="el" href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644">MVDSTD_OutputFormat</a> output_type, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size, <a class="el" href="structMVDSTD__InitStruct.html">MVDSTD_InitStruct</a> *initstruct)</td></tr>
<tr class="memdesc:ab03653fc6535a3eea8df35fd232a6074"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes MVDSTD. <a href="mvd_8h.html#ab03653fc6535a3eea8df35fd232a6074">More...</a><br /></td></tr>
<tr class="separator:ab03653fc6535a3eea8df35fd232a6074"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0268fc860c200937a3519b8aba79af95"><td class="memItemLeft" align="right" valign="top"><a id="a0268fc860c200937a3519b8aba79af95"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#a0268fc860c200937a3519b8aba79af95">mvdstdExit</a> (void)</td></tr>
<tr class="memdesc:a0268fc860c200937a3519b8aba79af95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shuts down MVDSTD. <br /></td></tr>
<tr class="separator:a0268fc860c200937a3519b8aba79af95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d335b785a9731e0184c5975c59ed1d8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#a8d335b785a9731e0184c5975c59ed1d8">mvdstdGenerateDefaultConfig</a> (<a class="el" href="structMVDSTD__Config.html">MVDSTD_Config</a> *config, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> input_width, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> input_height, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> output_width, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> output_height, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> *vaddr_colorconv_indata, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> *vaddr_outdata0, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> *vaddr_outdata1)</td></tr>
<tr class="memdesc:a8d335b785a9731e0184c5975c59ed1d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a default MVDSTD configuration. <a href="mvd_8h.html#a8d335b785a9731e0184c5975c59ed1d8">More...</a><br /></td></tr>
<tr class="separator:a8d335b785a9731e0184c5975c59ed1d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0dbfd085a2f01e66820d2883a5e6231"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#af0dbfd085a2f01e66820d2883a5e6231">mvdstdConvertImage</a> (<a class="el" href="structMVDSTD__Config.html">MVDSTD_Config</a> *config)</td></tr>
<tr class="memdesc:af0dbfd085a2f01e66820d2883a5e6231"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run color-format-conversion. <a href="mvd_8h.html#af0dbfd085a2f01e66820d2883a5e6231">More...</a><br /></td></tr>
<tr class="separator:af0dbfd085a2f01e66820d2883a5e6231"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa23e5c76c315a032cf010a335669015"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#afa23e5c76c315a032cf010a335669015">mvdstdProcessVideoFrame</a> (void *inbuf_vaddr, size_t size, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> flag, <a class="el" href="structMVDSTD__ProcessNALUnitOut.html">MVDSTD_ProcessNALUnitOut</a> *out)</td></tr>
<tr class="memdesc:afa23e5c76c315a032cf010a335669015"><td class="mdescLeft">&#160;</td><td class="mdescRight">Processes a video frame(specifically a NAL-unit). <a href="mvd_8h.html#afa23e5c76c315a032cf010a335669015">More...</a><br /></td></tr>
<tr class="separator:afa23e5c76c315a032cf010a335669015"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a540d504cc4bbe5f199bc32d32a5a87e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#a540d504cc4bbe5f199bc32d32a5a87e1">mvdstdRenderVideoFrame</a> (<a class="el" href="structMVDSTD__Config.html">MVDSTD_Config</a> *config, bool wait)</td></tr>
<tr class="memdesc:a540d504cc4bbe5f199bc32d32a5a87e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Renders the video frame. <a href="mvd_8h.html#a540d504cc4bbe5f199bc32d32a5a87e1">More...</a><br /></td></tr>
<tr class="separator:a540d504cc4bbe5f199bc32d32a5a87e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d0db5e2224e50518ceb498847a0f17b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#a0d0db5e2224e50518ceb498847a0f17b">MVDSTD_SetConfig</a> (<a class="el" href="structMVDSTD__Config.html">MVDSTD_Config</a> *config)</td></tr>
<tr class="memdesc:a0d0db5e2224e50518ceb498847a0f17b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the current configuration of MVDSTD. <a href="mvd_8h.html#a0d0db5e2224e50518ceb498847a0f17b">More...</a><br /></td></tr>
<tr class="separator:a0d0db5e2224e50518ceb498847a0f17b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200b8c00ddffc127e6d7f47152974d54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#a200b8c00ddffc127e6d7f47152974d54">mvdstdSetupOutputBuffers</a> (<a class="el" href="structMVDSTD__OutputBuffersEntryList.html">MVDSTD_OutputBuffersEntryList</a> *entrylist, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> bufsize)</td></tr>
<tr class="memdesc:a200b8c00ddffc127e6d7f47152974d54"><td class="mdescLeft">&#160;</td><td class="mdescRight">New3DS Internet Browser doesn't use this. <a href="mvd_8h.html#a200b8c00ddffc127e6d7f47152974d54">More...</a><br /></td></tr>
<tr class="separator:a200b8c00ddffc127e6d7f47152974d54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb7636ba2c6192d82923f13b6d4c73ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mvd_8h.html#adb7636ba2c6192d82923f13b6d4c73ea">mvdstdOverrideOutputBuffers</a> (void *cur_outdata0, void *cur_outdata1, void *new_outdata0, void *new_outdata1)</td></tr>
<tr class="memdesc:adb7636ba2c6192d82923f13b6d4c73ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">New3DS Internet Browser doesn't use this. <a href="mvd_8h.html#adb7636ba2c6192d82923f13b6d4c73ea">More...</a><br /></td></tr>
<tr class="separator:adb7636ba2c6192d82923f13b6d4c73ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>MVD service. </p>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="abcd3d62338d21a3b7d26bd96fd850f29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcd3d62338d21a3b7d26bd96fd850f29">&#9670;&nbsp;</a></span>MVDSTD_InputFormat</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29">MVDSTD_InputFormat</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Input format. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="abcd3d62338d21a3b7d26bd96fd850f29aacf22aec18ff7e379b7b1578f9e10b12"></a>MVD_INPUT_YUYV422&#160;</td><td class="fielddoc"><p>YUYV422. </p>
</td></tr>
<tr><td class="fieldname"><a id="abcd3d62338d21a3b7d26bd96fd850f29a8487699e0ef9c80df41d1ae321a509ac"></a>MVD_INPUT_H264&#160;</td><td class="fielddoc"><p>H264. </p>
</td></tr>
</table>
</div>
</div>
<a id="a3a1b3742822153a4f62c1f79d228a861"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a1b3742822153a4f62c1f79d228a861">&#9670;&nbsp;</a></span>MVDSTD_Mode</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861">MVDSTD_Mode</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Processing mode. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a3a1b3742822153a4f62c1f79d228a861a60d87a7f2151cd67f8b0710ec39f7583"></a>MVDMODE_COLORFORMATCONV&#160;</td><td class="fielddoc"><p>Converting color formats. </p>
</td></tr>
<tr><td class="fieldname"><a id="a3a1b3742822153a4f62c1f79d228a861a4a87a822d91b28e9468c0147c90be30f"></a>MVDMODE_VIDEOPROCESSING&#160;</td><td class="fielddoc"><p>Processing video. </p>
</td></tr>
</table>
</div>
</div>
<a id="ac91b4c4db9f9763dc972e0ca9dc70644"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac91b4c4db9f9763dc972e0ca9dc70644">&#9670;&nbsp;</a></span>MVDSTD_OutputFormat</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644">MVDSTD_OutputFormat</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Output format. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ac91b4c4db9f9763dc972e0ca9dc70644ac3c8c4b72f05742531a4135ccd80e71e"></a>MVD_OUTPUT_YUYV422&#160;</td><td class="fielddoc"><p>YUYV422. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac91b4c4db9f9763dc972e0ca9dc70644abc211cc1ddeb33aa942e33bbada487b6"></a>MVD_OUTPUT_BGR565&#160;</td><td class="fielddoc"><p>BGR565. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac91b4c4db9f9763dc972e0ca9dc70644a46a87383a22fc66ee051a77455f774b3"></a>MVD_OUTPUT_RGB565&#160;</td><td class="fielddoc"><p>RGB565. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a0d0db5e2224e50518ceb498847a0f17b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d0db5e2224e50518ceb498847a0f17b">&#9670;&nbsp;</a></span>MVDSTD_SetConfig()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> MVDSTD_SetConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structMVDSTD__Config.html">MVDSTD_Config</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the current configuration of MVDSTD. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to the configuration to set. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="af0dbfd085a2f01e66820d2883a5e6231"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af0dbfd085a2f01e66820d2883a5e6231">&#9670;&nbsp;</a></span>mvdstdConvertImage()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> mvdstdConvertImage </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structMVDSTD__Config.html">MVDSTD_Config</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Run color-format-conversion. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to the configuration to use. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="mvd_2source_2main_8c-example.html#a11">mvd/source/main.c</a>.</dd>
</dl>
</div>
</div>
<a id="a8d335b785a9731e0184c5975c59ed1d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d335b785a9731e0184c5975c59ed1d8">&#9670;&nbsp;</a></span>mvdstdGenerateDefaultConfig()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void mvdstdGenerateDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structMVDSTD__Config.html">MVDSTD_Config</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>input_width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>input_height</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>output_width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>output_height</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> *&#160;</td>
<td class="paramname"><em>vaddr_colorconv_indata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> *&#160;</td>
<td class="paramname"><em>vaddr_outdata0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> *&#160;</td>
<td class="paramname"><em>vaddr_outdata1</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates a default MVDSTD configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to output the generated config to. </td></tr>
<tr><td class="paramname">input_width</td><td>Input width. </td></tr>
<tr><td class="paramname">input_height</td><td>Input height. </td></tr>
<tr><td class="paramname">output_width</td><td>Output width. </td></tr>
<tr><td class="paramname">output_height</td><td>Output height. </td></tr>
<tr><td class="paramname">vaddr_colorconv_indata</td><td>Virtual address of the color conversion input data. </td></tr>
<tr><td class="paramname">vaddr_outdata0</td><td>Virtual address of the output data. </td></tr>
<tr><td class="paramname">vaddr_outdata1</td><td>Additional virtual address for output data, only used when the output format type is value 0x00020001. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="mvd_2source_2main_8c-example.html#a10">mvd/source/main.c</a>.</dd>
</dl>
</div>
</div>
<a id="ab03653fc6535a3eea8df35fd232a6074"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab03653fc6535a3eea8df35fd232a6074">&#9670;&nbsp;</a></span>mvdstdInit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> mvdstdInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861">MVDSTD_Mode</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29">MVDSTD_InputFormat</a>&#160;</td>
<td class="paramname"><em>input_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644">MVDSTD_OutputFormat</a>&#160;</td>
<td class="paramname"><em>output_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structMVDSTD__InitStruct.html">MVDSTD_InitStruct</a> *&#160;</td>
<td class="paramname"><em>initstruct</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes MVDSTD. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mode</td><td>Mode to initialize MVDSTD to. </td></tr>
<tr><td class="paramname">input_type</td><td>Type of input to process. </td></tr>
<tr><td class="paramname">output_type</td><td>Type of output to produce. </td></tr>
<tr><td class="paramname">size</td><td>Size of the work buffer, MVD_DEFAULT_WORKBUF_SIZE can be used for this. Only used when type == MVDMODE_VIDEOPROCESSING. </td></tr>
<tr><td class="paramname">initstruct</td><td>Optional <a class="el" href="structMVDSTD__InitStruct.html" title="This can be used to override the default input values for MVDSTD commands during initialization with ...">MVDSTD_InitStruct</a>, this should be NULL normally. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="mvd_2source_2main_8c-example.html#a6">mvd/source/main.c</a>.</dd>
</dl>
</div>
</div>
<a id="adb7636ba2c6192d82923f13b6d4c73ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb7636ba2c6192d82923f13b6d4c73ea">&#9670;&nbsp;</a></span>mvdstdOverrideOutputBuffers()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> mvdstdOverrideOutputBuffers </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>cur_outdata0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>cur_outdata1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>new_outdata0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>new_outdata1</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>New3DS Internet Browser doesn't use this. </p>
<p>This overrides the entry0 output buffers originally setup by <a class="el" href="mvd_8h.html#a200b8c00ddffc127e6d7f47152974d54" title="New3DS Internet Browser doesn&#39;t use this.">mvdstdSetupOutputBuffers()</a>. See also here: <a href="https://www.3dbrew.org/wiki/MVDSTD:OverrideOutputBuffers">https://www.3dbrew.org/wiki/MVDSTD:OverrideOutputBuffers</a> </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cur_outdata0</td><td>Linearmem vaddr. The current outdata0 for this entry must match this value. </td></tr>
<tr><td class="paramname">cur_outdata1</td><td>Linearmem vaddr. The current outdata1 for this entry must match this value. </td></tr>
<tr><td class="paramname">new_outdata0</td><td>Linearmem vaddr. This is the new address to use for outaddr0. </td></tr>
<tr><td class="paramname">new_outdata1</td><td>Linearmem vaddr. This is the new address to use for outaddr1. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="afa23e5c76c315a032cf010a335669015"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa23e5c76c315a032cf010a335669015">&#9670;&nbsp;</a></span>mvdstdProcessVideoFrame()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> mvdstdProcessVideoFrame </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>inbuf_vaddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>flag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structMVDSTD__ProcessNALUnitOut.html">MVDSTD_ProcessNALUnitOut</a> *&#160;</td>
<td class="paramname"><em>out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Processes a video frame(specifically a NAL-unit). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">inbuf_vaddr</td><td>Input NAL-unit starting with the 3-byte "00 00 01" prefix. Must be located in linearmem. </td></tr>
<tr><td class="paramname">size</td><td>Size of the input buffer. </td></tr>
<tr><td class="paramname">flag</td><td>See here regarding this input flag: <a href="https://www.3dbrew.org/wiki/MVDSTD:ProcessNALUnit">https://www.3dbrew.org/wiki/MVDSTD:ProcessNALUnit</a> </td></tr>
<tr><td class="paramname">out</td><td>Optional output <a class="el" href="structMVDSTD__ProcessNALUnitOut.html">MVDSTD_ProcessNALUnitOut</a> structure. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="mvd_2source_2main_8c-example.html#a20">mvd/source/main.c</a>.</dd>
</dl>
</div>
</div>
<a id="a540d504cc4bbe5f199bc32d32a5a87e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a540d504cc4bbe5f199bc32d32a5a87e1">&#9670;&nbsp;</a></span>mvdstdRenderVideoFrame()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> mvdstdRenderVideoFrame </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structMVDSTD__Config.html">MVDSTD_Config</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>wait</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Renders the video frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Optional pointer to the configuration to use. When NULL, <a class="el" href="mvd_8h.html#a0d0db5e2224e50518ceb498847a0f17b" title="Sets the current configuration of MVDSTD.">MVDSTD_SetConfig()</a> should have been used previously for this video. </td></tr>
<tr><td class="paramname">wait</td><td>When true, wait for rendering to finish. When false, you can manually call this function repeatedly until it stops returning MVD_STATUS_BUSY. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="mvd_2source_2main_8c-example.html#a25">mvd/source/main.c</a>.</dd>
</dl>
</div>
</div>
<a id="a200b8c00ddffc127e6d7f47152974d54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a200b8c00ddffc127e6d7f47152974d54">&#9670;&nbsp;</a></span>mvdstdSetupOutputBuffers()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> mvdstdSetupOutputBuffers </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structMVDSTD__OutputBuffersEntryList.html">MVDSTD_OutputBuffersEntryList</a> *&#160;</td>
<td class="paramname"><em>entrylist</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>bufsize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>New3DS Internet Browser doesn't use this. </p>
<p>Once done, rendered frames will be written to the output buffers specified by the entrylist instead of the output specified by configuration. See here: <a href="https://www.3dbrew.org/wiki/MVDSTD:SetupOutputBuffers">https://www.3dbrew.org/wiki/MVDSTD:SetupOutputBuffers</a> </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entrylist</td><td>Input entrylist. </td></tr>
<tr><td class="paramname">bufsize</td><td>Size of each buffer from the entrylist. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>