428 lines
47 KiB
HTML
428 lines
47 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: mvd/source/main.c</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
|
|
 <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&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&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>
|
|
</div><!-- top -->
|
|
<!-- 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 class="header">
|
|
<div class="headertitle">
|
|
<div class="title">mvd/source/main.c</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="fragment"><div class="line"><span class="preprocessor">#include <stdio.h></span></div>
|
|
<div class="line"><span class="preprocessor">#include <string.h></span></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="preprocessor">#include <<a class="code" href="3ds_8h.html">3ds.h</a>></span></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>* inaddr;</div>
|
|
<div class="line"><a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>* outaddr;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="keywordtype">void</span> mvd_colorconvert()</div>
|
|
<div class="line">{</div>
|
|
<div class="line"> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> ret;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> FILE *f = NULL;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>* bufAdr = <a name="a0"></a><a class="code" href="gfx_8h.html#a332447352568e250a75397a1b2e452db">gfxGetFramebuffer</a>(<a name="a1"></a><a class="code" href="gfx_8h.html#a356112d87f5cf6bbba3ea3b6b010e09cac1be8c2dee1ab5520b30ba069afa7541">GFX_BOTTOM</a>, <a name="a2"></a><a class="code" href="gfx_8h.html#ab9bacc1d598f0f6e4d5ef8bbeb466b03a1bfda6a35adc49eb4631246ea4e637e1">GFX_LEFT</a>, NULL, NULL);</div>
|
|
<div class="line"> <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>* gfxtopadr = <a class="code" href="gfx_8h.html#a332447352568e250a75397a1b2e452db">gfxGetFramebuffer</a>(<a name="a3"></a><a class="code" href="gfx_8h.html#a356112d87f5cf6bbba3ea3b6b010e09caf9d44178134d07cf9c5923200e14af09">GFX_TOP</a>, <a class="code" href="gfx_8h.html#ab9bacc1d598f0f6e4d5ef8bbeb466b03a1bfda6a35adc49eb4631246ea4e637e1">GFX_LEFT</a>, NULL, NULL);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a name="_a4"></a><a class="code" href="structMVDSTD__Config.html">MVDSTD_Config</a> config;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> printf(<span class="stringliteral">"mvd color-format-conversion example.\n"</span>);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> f = fopen(<span class="stringliteral">"sdmc:/mvd_indata.bin"</span>, <span class="stringliteral">"r"</span>);</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(f)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> fread(inaddr, 1, 0x46500, f);</div>
|
|
<div class="line"> fclose(f);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> <span class="keywordflow">else</span></div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> memcpy(inaddr, bufAdr, 320*240*3);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> memset(gfxtopadr, 0, 0x46500);</div>
|
|
<div class="line"> <a name="a5"></a><a class="code" href="gspgpu_8h.html#a24f1c78fad4e1108ddc56fb3674cdba2">GSPGPU_FlushDataCache</a>(inaddr, 0x46500);</div>
|
|
<div class="line"> <a class="code" href="gspgpu_8h.html#a24f1c78fad4e1108ddc56fb3674cdba2">GSPGPU_FlushDataCache</a>(gfxtopadr, 0x46500);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> ret = <a name="a6"></a><a class="code" href="mvd_8h.html#ab03653fc6535a3eea8df35fd232a6074">mvdstdInit</a>(<a name="a7"></a><a class="code" href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861a60d87a7f2151cd67f8b0710ec39f7583">MVDMODE_COLORFORMATCONV</a>, <a name="a8"></a><a class="code" href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29aacf22aec18ff7e379b7b1578f9e10b12">MVD_INPUT_YUYV422</a>, <a name="a9"></a><a class="code" href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644abc211cc1ddeb33aa942e33bbada487b6">MVD_OUTPUT_BGR565</a>, 0, NULL);</div>
|
|
<div class="line"> printf(<span class="stringliteral">"mvdstdInit(): 0x%08x\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)ret);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(ret==0)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <a name="a10"></a><a class="code" href="mvd_8h.html#a8d335b785a9731e0184c5975c59ed1d8">mvdstdGenerateDefaultConfig</a>(&config, 320, 240, 320, 240, (<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>*)inaddr, (<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>*)outaddr, (<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>*)&outaddr[0x12c00]);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> ret = <a name="a11"></a><a class="code" href="mvd_8h.html#af0dbfd085a2f01e66820d2883a5e6231">mvdstdConvertImage</a>(&config);</div>
|
|
<div class="line"> printf(<span class="stringliteral">"mvdstdConvertImage(): 0x%08x\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)ret);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> f = fopen(<span class="stringliteral">"sdmc:/mvd_outdata.bin"</span>, <span class="stringliteral">"w"</span>);</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(f)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> fwrite(outaddr, 1, 0x100000, f);</div>
|
|
<div class="line"> fclose(f);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> memcpy(gfxtopadr, outaddr, 0x46500);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a name="a12"></a><a class="code" href="mvd_8h.html#a0268fc860c200937a3519b8aba79af95">mvdstdExit</a>();</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a name="a13"></a><a class="code" href="gfx_8h.html#aea1808bd74fe0c00f9794e455fc8499b">gfxFlushBuffers</a>();</div>
|
|
<div class="line"> <a name="a14"></a><a class="code" href="gfx_8h.html#a3306df28835a647734cf8e299f041527">gfxSwapBuffersGpu</a>();</div>
|
|
<div class="line"> <a name="a15"></a><a class="code" href="gspgpu_8h.html#abf0a992835649b5fe90e95d8a58b8c45">gspWaitForVBlank</a>();</div>
|
|
<div class="line">}</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="keywordtype">void</span> mvd_video()</div>
|
|
<div class="line">{</div>
|
|
<div class="line"> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> ret;</div>
|
|
<div class="line"> <span class="keywordtype">size_t</span> video_size, nalunitsize;</div>
|
|
<div class="line"> <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> video_pos=0;</div>
|
|
<div class="line"> <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> cur_nalunit_pos=0, prev_nalunit_pos=0;</div>
|
|
<div class="line"> <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> nalcount=0;</div>
|
|
<div class="line"> <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> *video;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> flagval=0;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> FILE *f = NULL;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>* gfxtopadr=NULL;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a class="code" href="structMVDSTD__Config.html">MVDSTD_Config</a> config;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> prefix_offset;</div>
|
|
<div class="line"> <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> prefix[4] = {0x00, 0x00, 0x00, 0x01};</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> printf(<span class="stringliteral">"Loading video...\n"</span>);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="comment">//This loads the entire video into memory, normally you'd use a library to stream it.</span></div>
|
|
<div class="line"> f = fopen(<span class="stringliteral">"romfs:/video.h264"</span>, <span class="stringliteral">"r"</span>);</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(f==NULL)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> printf(<span class="stringliteral">"Faile to open the video in romfs.\n"</span>);</div>
|
|
<div class="line"> <span class="keywordflow">return</span>;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> video = &inaddr[0x100000];</div>
|
|
<div class="line"> video_size = fread(video, 1, 0xF00000, f);</div>
|
|
<div class="line"> fclose(f);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(video_size==0 || video_size>=0xF00000)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> printf(<span class="stringliteral">"Failed to read video / video is too large.\n"</span>);</div>
|
|
<div class="line"> <span class="keywordflow">return</span>;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> ret = <a class="code" href="mvd_8h.html#ab03653fc6535a3eea8df35fd232a6074">mvdstdInit</a>(<a name="a16"></a><a class="code" href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861a4a87a822d91b28e9468c0147c90be30f">MVDMODE_VIDEOPROCESSING</a>, <a name="a17"></a><a class="code" href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29a8487699e0ef9c80df41d1ae321a509ac">MVD_INPUT_H264</a>, <a class="code" href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644abc211cc1ddeb33aa942e33bbada487b6">MVD_OUTPUT_BGR565</a>, <a name="a18"></a><a class="code" href="mvd_8h.html#a469adc5b4ae6402f2f762504efcb28f6">MVD_DEFAULT_WORKBUF_SIZE</a>, NULL);</div>
|
|
<div class="line"> printf(<span class="stringliteral">"mvdstdInit(): 0x%08x\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)ret);</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(ret!=0)<span class="keywordflow">return</span>;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> printf(<span class="stringliteral">"Processing 0x%08x-byte video...\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)video_size);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a class="code" href="mvd_8h.html#a8d335b785a9731e0184c5975c59ed1d8">mvdstdGenerateDefaultConfig</a>(&config, 240, 400, 240, 400, NULL, (<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>*)outaddr, (<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>*)outaddr);<span class="comment">//Normally you'd set the input dimensions here to dimensions loaded from the actual video.</span></div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="comment">//Normally you'd use a library to load each NAL-unit, this example just parses the data manually.</span></div>
|
|
<div class="line"> <span class="keywordflow">while</span>(video_pos < video_size+1)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> cur_nalunit_pos = video_pos;</div>
|
|
<div class="line"> video_pos++;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> prefix_offset = 1;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(cur_nalunit_pos<video_size)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="comment">/*</span></div>
|
|
<div class="line"><span class="comment"> {</span></div>
|
|
<div class="line"><span class="comment"> if(memcmp(&video[cur_nalunit_pos], &prefix[1], 3)==0 && cur_nalunit_pos==0x2dd)</span></div>
|
|
<div class="line"><span class="comment"> {</span></div>
|
|
<div class="line"><span class="comment"> prefix_offset = 0;</span></div>
|
|
<div class="line"><span class="comment"> }</span></div>
|
|
<div class="line"><span class="comment"> }</span></div>
|
|
<div class="line"><span class="comment"> if(prefix_offset)*/</span></div>
|
|
<div class="line"> <span class="comment">//else</span></div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(memcmp(&video[cur_nalunit_pos], prefix, 4))</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="keywordflow">continue</span>;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> <span class="keywordflow">else</span></div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> video_pos++;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(nalcount && prev_nalunit_pos!=cur_nalunit_pos)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> nalunitsize = cur_nalunit_pos - prev_nalunit_pos - prefix_offset;</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(nalunitsize > 0x100000)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> printf(<span class="stringliteral">"The NAL-unit at offset 0x%08x is too large.\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)nalunitsize);</div>
|
|
<div class="line"> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> memcpy(inaddr, &video[prev_nalunit_pos+prefix_offset], nalunitsize);</div>
|
|
<div class="line"> <a class="code" href="gspgpu_8h.html#a24f1c78fad4e1108ddc56fb3674cdba2">GSPGPU_FlushDataCache</a>(inaddr, nalunitsize);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a name="_a19"></a><a class="code" href="structMVDSTD__ProcessNALUnitOut.html">MVDSTD_ProcessNALUnitOut</a> tmpout;<span class="comment">//Normally you don't really need to use this.</span></div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="comment">//printf("Processing NAL-unit at offset 0x%08x size 0x%08x...\n", (unsigned int)prev_nalunit_pos, (unsigned int)nalunitsize);</span></div>
|
|
<div class="line"> ret = <a name="a20"></a><a class="code" href="mvd_8h.html#afa23e5c76c315a032cf010a335669015">mvdstdProcessVideoFrame</a>(inaddr, nalunitsize, flagval, &tmpout);</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(!<a name="a21"></a><a class="code" href="mvd_8h.html#a788267f8f5eaba57aeaea4b7c514a90d">MVD_CHECKNALUPROC_SUCCESS</a>(ret))</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> printf(<span class="stringliteral">"mvdstdProcessVideoFrame() at NAL-unit offset 0x%08x size 0x%08x returned: 0x%08x. remaining_size=0x%08x.\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)prev_nalunit_pos, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)nalunitsize, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)ret, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)tmpout.<a name="a22"></a>remaining_size);</div>
|
|
<div class="line"> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(ret!=MVD_STATUS_PARAMSET && ret!=MVD_STATUS_INCOMPLETEPROCESSING)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> gfxtopadr = <a class="code" href="gfx_8h.html#a332447352568e250a75397a1b2e452db">gfxGetFramebuffer</a>(<a class="code" href="gfx_8h.html#a356112d87f5cf6bbba3ea3b6b010e09caf9d44178134d07cf9c5923200e14af09">GFX_TOP</a>, <a class="code" href="gfx_8h.html#ab9bacc1d598f0f6e4d5ef8bbeb466b03a1bfda6a35adc49eb4631246ea4e637e1">GFX_LEFT</a>, NULL, NULL);</div>
|
|
<div class="line"> config.<a name="a23"></a><a class="code" href="structMVDSTD__Config.html#a64d63a72354a8696d771d406339d1fc6">physaddr_outdata0</a> = <a name="a24"></a><a class="code" href="os_8h.html#ad5be83050dcdaf4ba7824a2afd420866">osConvertVirtToPhys</a>(gfxtopadr);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="comment">//This sets the MVD output to the framebuffer directly. This is to avoid doing the video->framebuffer image rotation on the ARM11.</span></div>
|
|
<div class="line"> <span class="comment">//Normally you'd use a seperate MVD output buffer, then transfer that to the framebuffer(such as with GPU rendering).</span></div>
|
|
<div class="line"> </div>
|
|
<div class="line"> ret = <a name="a25"></a><a class="code" href="mvd_8h.html#a540d504cc4bbe5f199bc32d32a5a87e1">mvdstdRenderVideoFrame</a>(&config, <span class="keyword">true</span>);</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(ret!=<a name="a26"></a><a class="code" href="mvd_8h.html#a6bf61258865ef1ef89c538f128a2ad7b">MVD_STATUS_OK</a>)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> printf(<span class="stringliteral">"mvdstdRenderVideoFrame() at NAL-unit offset 0x%08x returned: 0x%08x\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)prev_nalunit_pos, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)ret);</div>
|
|
<div class="line"> <span class="keywordflow">break</span>;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a name="a27"></a><a class="code" href="hid_8h.html#abbbf0e1f3a79a75e459e19f85a66bee6">hidScanInput</a>();</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(<a name="a28"></a><a class="code" href="hid_8h.html#aa2cababf764bf0b4297dc2e2fffe2a76">hidKeysDown</a>() & <a name="a29"></a><a class="code" href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493a10072b5ee7aa1faf316434ecc9e2bb3a">KEY_B</a>)<span class="keywordflow">break</span>;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="comment">//Enable/disable the flag passed to mvdstdProcessVideoFrame().</span></div>
|
|
<div class="line"> <span class="keywordflow">if</span>(<a class="code" href="hid_8h.html#aa2cababf764bf0b4297dc2e2fffe2a76">hidKeysDown</a>() & <a name="a30"></a><a class="code" href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493aa9cdac7967bf7d88fdb761138a2a3416">KEY_DOWN</a>)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> flagval-= 0x1;</div>
|
|
<div class="line"> printf(<span class="stringliteral">"0x%08x\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)flagval);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(<a class="code" href="hid_8h.html#aa2cababf764bf0b4297dc2e2fffe2a76">hidKeysDown</a>() & <a name="a31"></a><a class="code" href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493a0848a442d907968b211b97bc2bd88acd">KEY_UP</a>)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> flagval+= 0x1;</div>
|
|
<div class="line"> printf(<span class="stringliteral">"0x%08x\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)flagval);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="comment">//gspWaitForVBlank();//Can't use this under this example without a major slowdown. This is due to this example not doing any buffering for the frames.</span></div>
|
|
<div class="line"> <a class="code" href="gfx_8h.html#a3306df28835a647734cf8e299f041527">gfxSwapBuffersGpu</a>();</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> nalcount++;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> prev_nalunit_pos = cur_nalunit_pos;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a class="code" href="mvd_8h.html#a0268fc860c200937a3519b8aba79af95">mvdstdExit</a>();</div>
|
|
<div class="line">}</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="keywordtype">int</span> main()</div>
|
|
<div class="line">{</div>
|
|
<div class="line"> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> ret=0;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordtype">int</span> draw=1;</div>
|
|
<div class="line"> <span class="keywordtype">int</span> ready=0;</div>
|
|
<div class="line"> <span class="keywordtype">int</span> type=0;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a name="a32"></a><a class="code" href="gfx_8h.html#a1364b0796016b3b87ce005c7d3199519">gfxInit</a>(<a name="a33"></a><a class="code" href="gspgpu_8h.html#ade9eea08a2ad835b9c5d0f7a9164f36baf2acd7de248add1481404d4cd1fdf816">GSP_RGB565_OES</a>,<a name="a34"></a><a class="code" href="gspgpu_8h.html#ade9eea08a2ad835b9c5d0f7a9164f36ba7e2e54f5d000504cd971d23bf2d2b58f">GSP_BGR8_OES</a>,<span class="keyword">false</span>);</div>
|
|
<div class="line"> <a name="a35"></a><a class="code" href="console_8h.html#a8e014e84f81ff901ca62d7669a8c8de8">consoleInit</a>(<a class="code" href="gfx_8h.html#a356112d87f5cf6bbba3ea3b6b010e09cac1be8c2dee1ab5520b30ba069afa7541">GFX_BOTTOM</a>, NULL);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> ret = <a name="a36"></a><a class="code" href="romfs_8h.html#a12e06b453b9b7bc98333702553572574">romfsInit</a>();</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(<a name="a37"></a><a class="code" href="result_8h.html#a0040b35f38c0d2fef6766d5b284fefc7">R_FAILED</a>(ret))</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> printf(<span class="stringliteral">"romfsInit() failed: 0x%08x\n"</span>, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)ret);</div>
|
|
<div class="line"> ready = -1;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(ready==0)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> inaddr = <a name="a38"></a><a class="code" href="linear_8h.html#a9fe68cfcd17878cbcd7f6d08d846798d">linearMemAlign</a>(0x1000000, 0x40);</div>
|
|
<div class="line"> outaddr = <a class="code" href="linear_8h.html#a9fe68cfcd17878cbcd7f6d08d846798d">linearMemAlign</a>(0x100000, 0x40);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(!(inaddr && outaddr))</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> ready = -2;</div>
|
|
<div class="line"> printf(<span class="stringliteral">"Failed to allocate memory.\n"</span>);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="comment">// Main loop</span></div>
|
|
<div class="line"> <span class="keywordflow">while</span> (<a name="a39"></a><a class="code" href="apt_8h.html#a84808c36d9a8c389896ecf241c7f89cb">aptMainLoop</a>())</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <a class="code" href="gspgpu_8h.html#abf0a992835649b5fe90e95d8a58b8c45">gspWaitForVBlank</a>();</div>
|
|
<div class="line"> <a class="code" href="hid_8h.html#abbbf0e1f3a79a75e459e19f85a66bee6">hidScanInput</a>();</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(draw && type==0)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <a name="a40"></a><a class="code" href="console_8h.html#ac62c34a3fa2a6403c690dd80022b3e34">consoleClear</a>();</div>
|
|
<div class="line"> draw = 0;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(ready==0)printf(<span class="stringliteral">"mvd example\n"</span>);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> printf(<span class="stringliteral">"Press START to exit.\n"</span>);</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(ready==0)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> printf(<span class="stringliteral">"Press A for color-format-conversion.\n"</span>);</div>
|
|
<div class="line"> printf(<span class="stringliteral">"Press B for video(no sound).\n"</span>);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> kDown = <a class="code" href="hid_8h.html#aa2cababf764bf0b4297dc2e2fffe2a76">hidKeysDown</a>();</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(type)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(kDown & <a name="a41"></a><a class="code" href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493aa7b3a3d0503a46bec51c6e3da95747cc">KEY_A</a>)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> type = 0;</div>
|
|
<div class="line"> <span class="keywordflow">continue</span>;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(type)<span class="keywordflow">continue</span>;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span> (kDown & <a name="a42"></a><a class="code" href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493a616a1f5c4ed36080ca954453084aea3b">KEY_START</a>)</div>
|
|
<div class="line"> <span class="keywordflow">break</span>; <span class="comment">// break in order to return to hbmenu</span></div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(ready==0)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> type = 0;</div>
|
|
<div class="line"> <span class="keywordflow">if</span> (kDown & <a class="code" href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493aa7b3a3d0503a46bec51c6e3da95747cc">KEY_A</a>)type = 1;</div>
|
|
<div class="line"> <span class="keywordflow">if</span> (kDown & <a class="code" href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493a10072b5ee7aa1faf316434ecc9e2bb3a">KEY_B</a>)type = 2;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(type)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> memset(inaddr, 0, 0x100000);</div>
|
|
<div class="line"> memset(outaddr, 0, 0x100000);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(type==1)mvd_colorconvert();</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(type==2)mvd_video();</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> draw = 1;</div>
|
|
<div class="line"> printf(<span class="stringliteral">"Press A to continue.\n"</span>);</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(inaddr)<a name="a43"></a><a class="code" href="linear_8h.html#aeb28d4069fd209e0067ac185fb9b83e2">linearFree</a>(inaddr);</div>
|
|
<div class="line"> <span class="keywordflow">if</span>(outaddr)<a class="code" href="linear_8h.html#aeb28d4069fd209e0067ac185fb9b83e2">linearFree</a>(outaddr);</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span>(ready!=-1)<a name="a44"></a><a class="code" href="romfs_8h.html#ab0b28376bd1c13790398fc00fedd2feb">romfsExit</a>();</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <a name="a45"></a><a class="code" href="gfx_8h.html#aa446ccfdfdd4c575e648956ae96f2a3b">gfxExit</a>();</div>
|
|
<div class="line"> <span class="keywordflow">return</span> 0;</div>
|
|
<div class="line">}</div>
|
|
<div class="line"> </div>
|
|
<div class="ttc" id="a3ds_8h_html"><div class="ttname"><a href="3ds_8h.html">3ds.h</a></div><div class="ttdoc">Central 3DS header.</div></div>
|
|
<div class="ttc" id="aapt_8h_html_a84808c36d9a8c389896ecf241c7f89cb"><div class="ttname"><a href="apt_8h.html#a84808c36d9a8c389896ecf241c7f89cb">aptMainLoop</a></div><div class="ttdeci">bool aptMainLoop(void)</div><div class="ttdoc">Main function which handles sleep mode and HOME/power buttons - call this at the beginning of every f...</div></div>
|
|
<div class="ttc" id="aconsole_8h_html_a8e014e84f81ff901ca62d7669a8c8de8"><div class="ttname"><a href="console_8h.html#a8e014e84f81ff901ca62d7669a8c8de8">consoleInit</a></div><div class="ttdeci">PrintConsole * consoleInit(gfxScreen_t screen, PrintConsole *console)</div><div class="ttdoc">Initialise the console.</div></div>
|
|
<div class="ttc" id="aconsole_8h_html_ac62c34a3fa2a6403c690dd80022b3e34"><div class="ttname"><a href="console_8h.html#ac62c34a3fa2a6403c690dd80022b3e34">consoleClear</a></div><div class="ttdeci">void consoleClear(void)</div><div class="ttdoc">Clears the screen by using iprintf("\x1b[2J");.</div></div>
|
|
<div class="ttc" id="agfx_8h_html_a1364b0796016b3b87ce005c7d3199519"><div class="ttname"><a href="gfx_8h.html#a1364b0796016b3b87ce005c7d3199519">gfxInit</a></div><div class="ttdeci">void gfxInit(GSPGPU_FramebufferFormat topFormat, GSPGPU_FramebufferFormat bottomFormat, bool vrambuffers)</div><div class="ttdoc">Initializes the LCD framebuffers.</div></div>
|
|
<div class="ttc" id="agfx_8h_html_a3306df28835a647734cf8e299f041527"><div class="ttname"><a href="gfx_8h.html#a3306df28835a647734cf8e299f041527">gfxSwapBuffersGpu</a></div><div class="ttdeci">void gfxSwapBuffersGpu(void)</div><div class="ttdoc">Same as gfxSwapBuffers (formerly different).</div></div>
|
|
<div class="ttc" id="agfx_8h_html_a332447352568e250a75397a1b2e452db"><div class="ttname"><a href="gfx_8h.html#a332447352568e250a75397a1b2e452db">gfxGetFramebuffer</a></div><div class="ttdeci">u8 * gfxGetFramebuffer(gfxScreen_t screen, gfx3dSide_t side, u16 *width, u16 *height)</div><div class="ttdoc">Retrieves the framebuffer of the specified screen to which graphics should be rendered.</div></div>
|
|
<div class="ttc" id="agfx_8h_html_a356112d87f5cf6bbba3ea3b6b010e09cac1be8c2dee1ab5520b30ba069afa7541"><div class="ttname"><a href="gfx_8h.html#a356112d87f5cf6bbba3ea3b6b010e09cac1be8c2dee1ab5520b30ba069afa7541">GFX_BOTTOM</a></div><div class="ttdeci">@ GFX_BOTTOM</div><div class="ttdoc">Bottom screen.</div><div class="ttdef"><b>Definition:</b> gfx.h:27</div></div>
|
|
<div class="ttc" id="agfx_8h_html_a356112d87f5cf6bbba3ea3b6b010e09caf9d44178134d07cf9c5923200e14af09"><div class="ttname"><a href="gfx_8h.html#a356112d87f5cf6bbba3ea3b6b010e09caf9d44178134d07cf9c5923200e14af09">GFX_TOP</a></div><div class="ttdeci">@ GFX_TOP</div><div class="ttdoc">Top screen.</div><div class="ttdef"><b>Definition:</b> gfx.h:26</div></div>
|
|
<div class="ttc" id="agfx_8h_html_aa446ccfdfdd4c575e648956ae96f2a3b"><div class="ttname"><a href="gfx_8h.html#aa446ccfdfdd4c575e648956ae96f2a3b">gfxExit</a></div><div class="ttdeci">void gfxExit(void)</div><div class="ttdoc">Deinitializes and frees the LCD framebuffers.</div></div>
|
|
<div class="ttc" id="agfx_8h_html_ab9bacc1d598f0f6e4d5ef8bbeb466b03a1bfda6a35adc49eb4631246ea4e637e1"><div class="ttname"><a href="gfx_8h.html#ab9bacc1d598f0f6e4d5ef8bbeb466b03a1bfda6a35adc49eb4631246ea4e637e1">GFX_LEFT</a></div><div class="ttdeci">@ GFX_LEFT</div><div class="ttdoc">Left eye framebuffer.</div><div class="ttdef"><b>Definition:</b> gfx.h:37</div></div>
|
|
<div class="ttc" id="agfx_8h_html_aea1808bd74fe0c00f9794e455fc8499b"><div class="ttname"><a href="gfx_8h.html#aea1808bd74fe0c00f9794e455fc8499b">gfxFlushBuffers</a></div><div class="ttdeci">void gfxFlushBuffers(void)</div><div class="ttdoc">Flushes the data cache for the current framebuffers.</div></div>
|
|
<div class="ttc" id="agspgpu_8h_html_a24f1c78fad4e1108ddc56fb3674cdba2"><div class="ttname"><a href="gspgpu_8h.html#a24f1c78fad4e1108ddc56fb3674cdba2">GSPGPU_FlushDataCache</a></div><div class="ttdeci">Result GSPGPU_FlushDataCache(const void *adr, u32 size)</div><div class="ttdoc">Flushes memory from the data cache.</div></div>
|
|
<div class="ttc" id="agspgpu_8h_html_abf0a992835649b5fe90e95d8a58b8c45"><div class="ttname"><a href="gspgpu_8h.html#abf0a992835649b5fe90e95d8a58b8c45">gspWaitForVBlank</a></div><div class="ttdeci">#define gspWaitForVBlank()</div><div class="ttdoc">Waits for VBlank.</div><div class="ttdef"><b>Definition:</b> gspgpu.h:151</div></div>
|
|
<div class="ttc" id="agspgpu_8h_html_ade9eea08a2ad835b9c5d0f7a9164f36ba7e2e54f5d000504cd971d23bf2d2b58f"><div class="ttname"><a href="gspgpu_8h.html#ade9eea08a2ad835b9c5d0f7a9164f36ba7e2e54f5d000504cd971d23bf2d2b58f">GSP_BGR8_OES</a></div><div class="ttdeci">@ GSP_BGR8_OES</div><div class="ttdoc">BGR8. (3 bytes)</div><div class="ttdef"><b>Definition:</b> gspgpu.h:30</div></div>
|
|
<div class="ttc" id="agspgpu_8h_html_ade9eea08a2ad835b9c5d0f7a9164f36baf2acd7de248add1481404d4cd1fdf816"><div class="ttname"><a href="gspgpu_8h.html#ade9eea08a2ad835b9c5d0f7a9164f36baf2acd7de248add1481404d4cd1fdf816">GSP_RGB565_OES</a></div><div class="ttdeci">@ GSP_RGB565_OES</div><div class="ttdoc">RGB565. (2 bytes)</div><div class="ttdef"><b>Definition:</b> gspgpu.h:31</div></div>
|
|
<div class="ttc" id="ahid_8h_html_a531c35e38ede3ea4e5ba5afb24b29493a0848a442d907968b211b97bc2bd88acd"><div class="ttname"><a href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493a0848a442d907968b211b97bc2bd88acd">KEY_UP</a></div><div class="ttdeci">@ KEY_UP</div><div class="ttdoc">D-Pad Up or Circle Pad Up.</div><div class="ttdef"><b>Definition:</b> hid.h:37</div></div>
|
|
<div class="ttc" id="ahid_8h_html_a531c35e38ede3ea4e5ba5afb24b29493a10072b5ee7aa1faf316434ecc9e2bb3a"><div class="ttname"><a href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493a10072b5ee7aa1faf316434ecc9e2bb3a">KEY_B</a></div><div class="ttdeci">@ KEY_B</div><div class="ttdoc">B.</div><div class="ttdef"><b>Definition:</b> hid.h:13</div></div>
|
|
<div class="ttc" id="ahid_8h_html_a531c35e38ede3ea4e5ba5afb24b29493a616a1f5c4ed36080ca954453084aea3b"><div class="ttname"><a href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493a616a1f5c4ed36080ca954453084aea3b">KEY_START</a></div><div class="ttdeci">@ KEY_START</div><div class="ttdoc">Start.</div><div class="ttdef"><b>Definition:</b> hid.h:15</div></div>
|
|
<div class="ttc" id="ahid_8h_html_a531c35e38ede3ea4e5ba5afb24b29493aa7b3a3d0503a46bec51c6e3da95747cc"><div class="ttname"><a href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493aa7b3a3d0503a46bec51c6e3da95747cc">KEY_A</a></div><div class="ttdeci">@ KEY_A</div><div class="ttdoc">A.</div><div class="ttdef"><b>Definition:</b> hid.h:12</div></div>
|
|
<div class="ttc" id="ahid_8h_html_a531c35e38ede3ea4e5ba5afb24b29493aa9cdac7967bf7d88fdb761138a2a3416"><div class="ttname"><a href="hid_8h.html#a531c35e38ede3ea4e5ba5afb24b29493aa9cdac7967bf7d88fdb761138a2a3416">KEY_DOWN</a></div><div class="ttdeci">@ KEY_DOWN</div><div class="ttdoc">D-Pad Down or Circle Pad Down.</div><div class="ttdef"><b>Definition:</b> hid.h:38</div></div>
|
|
<div class="ttc" id="ahid_8h_html_aa2cababf764bf0b4297dc2e2fffe2a76"><div class="ttname"><a href="hid_8h.html#aa2cababf764bf0b4297dc2e2fffe2a76">hidKeysDown</a></div><div class="ttdeci">u32 hidKeysDown(void)</div><div class="ttdoc">Returns a bitmask of newly pressed buttons, this frame.</div></div>
|
|
<div class="ttc" id="ahid_8h_html_abbbf0e1f3a79a75e459e19f85a66bee6"><div class="ttname"><a href="hid_8h.html#abbbf0e1f3a79a75e459e19f85a66bee6">hidScanInput</a></div><div class="ttdeci">void hidScanInput(void)</div><div class="ttdoc">Scans HID for input data.</div></div>
|
|
<div class="ttc" id="alinear_8h_html_a9fe68cfcd17878cbcd7f6d08d846798d"><div class="ttname"><a href="linear_8h.html#a9fe68cfcd17878cbcd7f6d08d846798d">linearMemAlign</a></div><div class="ttdeci">void * linearMemAlign(size_t size, size_t alignment)</div><div class="ttdoc">Allocates a buffer aligned to the given size.</div></div>
|
|
<div class="ttc" id="alinear_8h_html_aeb28d4069fd209e0067ac185fb9b83e2"><div class="ttname"><a href="linear_8h.html#aeb28d4069fd209e0067ac185fb9b83e2">linearFree</a></div><div class="ttdeci">void linearFree(void *mem)</div><div class="ttdoc">Frees a buffer.</div></div>
|
|
<div class="ttc" id="amvd_8h_html_a0268fc860c200937a3519b8aba79af95"><div class="ttname"><a href="mvd_8h.html#a0268fc860c200937a3519b8aba79af95">mvdstdExit</a></div><div class="ttdeci">void mvdstdExit(void)</div><div class="ttdoc">Shuts down MVDSTD.</div></div>
|
|
<div class="ttc" id="amvd_8h_html_a3a1b3742822153a4f62c1f79d228a861a4a87a822d91b28e9468c0147c90be30f"><div class="ttname"><a href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861a4a87a822d91b28e9468c0147c90be30f">MVDMODE_VIDEOPROCESSING</a></div><div class="ttdeci">@ MVDMODE_VIDEOPROCESSING</div><div class="ttdoc">Processing video.</div><div class="ttdef"><b>Definition:</b> mvd.h:26</div></div>
|
|
<div class="ttc" id="amvd_8h_html_a3a1b3742822153a4f62c1f79d228a861a60d87a7f2151cd67f8b0710ec39f7583"><div class="ttname"><a href="mvd_8h.html#a3a1b3742822153a4f62c1f79d228a861a60d87a7f2151cd67f8b0710ec39f7583">MVDMODE_COLORFORMATCONV</a></div><div class="ttdeci">@ MVDMODE_COLORFORMATCONV</div><div class="ttdoc">Converting color formats.</div><div class="ttdef"><b>Definition:</b> mvd.h:25</div></div>
|
|
<div class="ttc" id="amvd_8h_html_a469adc5b4ae6402f2f762504efcb28f6"><div class="ttname"><a href="mvd_8h.html#a469adc5b4ae6402f2f762504efcb28f6">MVD_DEFAULT_WORKBUF_SIZE</a></div><div class="ttdeci">#define MVD_DEFAULT_WORKBUF_SIZE</div><div class="ttdoc">Default input size for mvdstdInit(). This is what the New3DS Internet Browser uses,...</div><div class="ttdef"><b>Definition:</b> mvd.h:21</div></div>
|
|
<div class="ttc" id="amvd_8h_html_a540d504cc4bbe5f199bc32d32a5a87e1"><div class="ttname"><a href="mvd_8h.html#a540d504cc4bbe5f199bc32d32a5a87e1">mvdstdRenderVideoFrame</a></div><div class="ttdeci">Result mvdstdRenderVideoFrame(MVDSTD_Config *config, bool wait)</div><div class="ttdoc">Renders the video frame.</div></div>
|
|
<div class="ttc" id="amvd_8h_html_a6bf61258865ef1ef89c538f128a2ad7b"><div class="ttname"><a href="mvd_8h.html#a6bf61258865ef1ef89c538f128a2ad7b">MVD_STATUS_OK</a></div><div class="ttdeci">#define MVD_STATUS_OK</div><div class="ttdoc">These values are the data returned as "result-codes" by MVDSTD.</div><div class="ttdef"><b>Definition:</b> mvd.h:10</div></div>
|
|
<div class="ttc" id="amvd_8h_html_a788267f8f5eaba57aeaea4b7c514a90d"><div class="ttname"><a href="mvd_8h.html#a788267f8f5eaba57aeaea4b7c514a90d">MVD_CHECKNALUPROC_SUCCESS</a></div><div class="ttdeci">#define MVD_CHECKNALUPROC_SUCCESS(x)</div><div class="ttdoc">This can be used to check whether mvdstdProcessVideoFrame() was successful.</div><div class="ttdef"><b>Definition:</b> mvd.h:18</div></div>
|
|
<div class="ttc" id="amvd_8h_html_a8d335b785a9731e0184c5975c59ed1d8"><div class="ttname"><a href="mvd_8h.html#a8d335b785a9731e0184c5975c59ed1d8">mvdstdGenerateDefaultConfig</a></div><div class="ttdeci">void mvdstdGenerateDefaultConfig(MVDSTD_Config *config, u32 input_width, u32 input_height, u32 output_width, u32 output_height, u32 *vaddr_colorconv_indata, u32 *vaddr_outdata0, u32 *vaddr_outdata1)</div><div class="ttdoc">Generates a default MVDSTD configuration.</div></div>
|
|
<div class="ttc" id="amvd_8h_html_ab03653fc6535a3eea8df35fd232a6074"><div class="ttname"><a href="mvd_8h.html#ab03653fc6535a3eea8df35fd232a6074">mvdstdInit</a></div><div class="ttdeci">Result mvdstdInit(MVDSTD_Mode mode, MVDSTD_InputFormat input_type, MVDSTD_OutputFormat output_type, u32 size, MVDSTD_InitStruct *initstruct)</div><div class="ttdoc">Initializes MVDSTD.</div></div>
|
|
<div class="ttc" id="amvd_8h_html_abcd3d62338d21a3b7d26bd96fd850f29a8487699e0ef9c80df41d1ae321a509ac"><div class="ttname"><a href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29a8487699e0ef9c80df41d1ae321a509ac">MVD_INPUT_H264</a></div><div class="ttdeci">@ MVD_INPUT_H264</div><div class="ttdoc">H264.</div><div class="ttdef"><b>Definition:</b> mvd.h:32</div></div>
|
|
<div class="ttc" id="amvd_8h_html_abcd3d62338d21a3b7d26bd96fd850f29aacf22aec18ff7e379b7b1578f9e10b12"><div class="ttname"><a href="mvd_8h.html#abcd3d62338d21a3b7d26bd96fd850f29aacf22aec18ff7e379b7b1578f9e10b12">MVD_INPUT_YUYV422</a></div><div class="ttdeci">@ MVD_INPUT_YUYV422</div><div class="ttdoc">YUYV422.</div><div class="ttdef"><b>Definition:</b> mvd.h:31</div></div>
|
|
<div class="ttc" id="amvd_8h_html_ac91b4c4db9f9763dc972e0ca9dc70644abc211cc1ddeb33aa942e33bbada487b6"><div class="ttname"><a href="mvd_8h.html#ac91b4c4db9f9763dc972e0ca9dc70644abc211cc1ddeb33aa942e33bbada487b6">MVD_OUTPUT_BGR565</a></div><div class="ttdeci">@ MVD_OUTPUT_BGR565</div><div class="ttdoc">BGR565.</div><div class="ttdef"><b>Definition:</b> mvd.h:38</div></div>
|
|
<div class="ttc" id="amvd_8h_html_af0dbfd085a2f01e66820d2883a5e6231"><div class="ttname"><a href="mvd_8h.html#af0dbfd085a2f01e66820d2883a5e6231">mvdstdConvertImage</a></div><div class="ttdeci">Result mvdstdConvertImage(MVDSTD_Config *config)</div><div class="ttdoc">Run color-format-conversion.</div></div>
|
|
<div class="ttc" id="amvd_8h_html_afa23e5c76c315a032cf010a335669015"><div class="ttname"><a href="mvd_8h.html#afa23e5c76c315a032cf010a335669015">mvdstdProcessVideoFrame</a></div><div class="ttdeci">Result mvdstdProcessVideoFrame(void *inbuf_vaddr, size_t size, u32 flag, MVDSTD_ProcessNALUnitOut *out)</div><div class="ttdoc">Processes a video frame(specifically a NAL-unit).</div></div>
|
|
<div class="ttc" id="aos_8h_html_ad5be83050dcdaf4ba7824a2afd420866"><div class="ttname"><a href="os_8h.html#ad5be83050dcdaf4ba7824a2afd420866">osConvertVirtToPhys</a></div><div class="ttdeci">u32 osConvertVirtToPhys(const void *vaddr)</div><div class="ttdoc">Converts an address from virtual (process) memory to physical memory.</div></div>
|
|
<div class="ttc" id="aresult_8h_html_a0040b35f38c0d2fef6766d5b284fefc7"><div class="ttname"><a href="result_8h.html#a0040b35f38c0d2fef6766d5b284fefc7">R_FAILED</a></div><div class="ttdeci">#define R_FAILED(res)</div><div class="ttdoc">Checks whether a result code indicates failure.</div><div class="ttdef"><b>Definition:</b> result.h:11</div></div>
|
|
<div class="ttc" id="aromfs_8h_html_a12e06b453b9b7bc98333702553572574"><div class="ttname"><a href="romfs_8h.html#a12e06b453b9b7bc98333702553572574">romfsInit</a></div><div class="ttdeci">static Result romfsInit(void)</div><div class="ttdoc">Wrapper for romfsMountSelf with the default "romfs" device name.</div><div class="ttdef"><b>Definition:</b> romfs.h:84</div></div>
|
|
<div class="ttc" id="aromfs_8h_html_ab0b28376bd1c13790398fc00fedd2feb"><div class="ttname"><a href="romfs_8h.html#ab0b28376bd1c13790398fc00fedd2feb">romfsExit</a></div><div class="ttdeci">static Result romfsExit(void)</div><div class="ttdoc">Wrapper for romfsUnmount with the default "romfs" device name.</div><div class="ttdef"><b>Definition:</b> romfs.h:90</div></div>
|
|
<div class="ttc" id="astructMVDSTD__Config_html"><div class="ttname"><a href="structMVDSTD__Config.html">MVDSTD_Config</a></div><div class="ttdoc">Processing configuration.</div><div class="ttdef"><b>Definition:</b> mvd.h:43</div></div>
|
|
<div class="ttc" id="astructMVDSTD__Config_html_a64d63a72354a8696d771d406339d1fc6"><div class="ttname"><a href="structMVDSTD__Config.html#a64d63a72354a8696d771d406339d1fc6">MVDSTD_Config::physaddr_outdata0</a></div><div class="ttdeci">u32 physaddr_outdata0</div><div class="ttdoc">Physical address of output data.</div><div class="ttdef"><b>Definition:</b> mvd.h:64</div></div>
|
|
<div class="ttc" id="astructMVDSTD__ProcessNALUnitOut_html"><div class="ttname"><a href="structMVDSTD__ProcessNALUnitOut.html">MVDSTD_ProcessNALUnitOut</a></div><div class="ttdef"><b>Definition:</b> mvd.h:75</div></div>
|
|
<div class="ttc" id="atypes_8h_html_a92c50087ca0e64fa93fc59402c55f8ca"><div class="ttname"><a href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a></div><div class="ttdeci">uint8_t u8</div><div class="ttdoc">would be nice if newlib had this already</div><div class="ttdef"><b>Definition:</b> types.h:21</div></div>
|
|
<div class="ttc" id="atypes_8h_html_ac830bf5a4f2cf8273f61ab99a46cf163"><div class="ttname"><a href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a></div><div class="ttdeci">s32 Result</div><div class="ttdoc">Function result.</div><div class="ttdef"><b>Definition:</b> types.h:42</div></div>
|
|
<div class="ttc" id="atypes_8h_html_afaa62991928fb9fb18ff0db62a040aba"><div class="ttname"><a href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a></div><div class="ttdeci">uint32_t u32</div><div class="ttdoc">32-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> types.h:23</div></div>
|
|
</div><!-- fragment --> </div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by <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>
|