shaka-packager/docs/d4/d43/classshaka_1_1media_1_1Chun...

269 lines
29 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.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Shaka Packager SDK: shaka::media::ChunkingHandler Class 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">Shaka Packager SDK
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<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');
/* @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="../../d8/daf/namespaceshaka.html">shaka</a></li><li class="navelem"><b>media</b></li><li class="navelem"><a class="el" href="../../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html">ChunkingHandler</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="../../d2/dd8/classshaka_1_1media_1_1ChunkingHandler-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">shaka::media::ChunkingHandler Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="../../d7/d79/chunking__handler_8h_source.html">chunking_handler.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for shaka::media::ChunkingHandler:</div>
<div class="dyncontent">
<div class="center">
<img src="../../d4/d43/classshaka_1_1media_1_1ChunkingHandler.png" usemap="#shaka::media::ChunkingHandler_map" alt=""/>
<map id="shaka::media::ChunkingHandler_map" name="shaka::media::ChunkingHandler_map">
<area href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html" alt="shaka::media::MediaHandler" shape="rect" coords="0,0,188,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8557544d71622f047977c79ae90b0e8e"><td class="memItemLeft" align="right" valign="top"><a id="a8557544d71622f047977c79ae90b0e8e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ChunkingHandler</b> (const <a class="el" href="../../d2/d1f/structshaka_1_1ChunkingParams.html">ChunkingParams</a> &amp;chunking_params)</td></tr>
<tr class="separator:a8557544d71622f047977c79ae90b0e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classshaka_1_1media_1_1MediaHandler"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classshaka_1_1media_1_1MediaHandler')"><img src="../../closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html">shaka::media::MediaHandler</a></td></tr>
<tr class="memitem:a0fac1fe2d593e78d47244acdfa21759d inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="a0fac1fe2d593e78d47244acdfa21759d"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0fac1fe2d593e78d47244acdfa21759d">SetHandler</a> (size_t output_stream_index, std::shared_ptr&lt; <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html">MediaHandler</a> &gt; handler)</td></tr>
<tr class="memdesc:a0fac1fe2d593e78d47244acdfa21759d inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect downstream handler at the specified output stream index. <br /></td></tr>
<tr class="separator:a0fac1fe2d593e78d47244acdfa21759d inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc48a2450ce50162de18071aef516b6c inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="afc48a2450ce50162de18071aef516b6c"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#afc48a2450ce50162de18071aef516b6c">AddHandler</a> (std::shared_ptr&lt; <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html">MediaHandler</a> &gt; handler)</td></tr>
<tr class="memdesc:afc48a2450ce50162de18071aef516b6c inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect downstream handler to the next available output stream index. <br /></td></tr>
<tr class="separator:afc48a2450ce50162de18071aef516b6c inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed0da512bbd998ec9d0a5c019ad17acb inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#aed0da512bbd998ec9d0a5c019ad17acb">Initialize</a> ()</td></tr>
<tr class="separator:aed0da512bbd998ec9d0a5c019ad17acb inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e169e81344ce4ccfed3194ec5f4a3a1 inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="a0e169e81344ce4ccfed3194ec5f4a3a1"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0e169e81344ce4ccfed3194ec5f4a3a1">IsConnected</a> ()</td></tr>
<tr class="memdesc:a0e169e81344ce4ccfed3194ec5f4a3a1 inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate if the handler is connected to its upstream handler. <br /></td></tr>
<tr class="separator:a0e169e81344ce4ccfed3194ec5f4a3a1 inherit pub_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">MediaHandler implementation overrides.</div></td></tr>
<tr class="memitem:a76a5f4b74da3876cc72f44301c389ebd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html#a76a5f4b74da3876cc72f44301c389ebd">InitializeInternal</a> () override</td></tr>
<tr class="separator:a76a5f4b74da3876cc72f44301c389ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44c30ffd7c283be2ba4347bda7848633"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html#a44c30ffd7c283be2ba4347bda7848633">Process</a> (std::unique_ptr&lt; <a class="el" href="../../d0/d4c/structshaka_1_1media_1_1StreamData.html">StreamData</a> &gt; stream_data) override</td></tr>
<tr class="separator:a44c30ffd7c283be2ba4347bda7848633"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab526bd53e4d49d7209f01d9b10b9ab52"><td class="memItemLeft" align="right" valign="top"><a id="ab526bd53e4d49d7209f01d9b10b9ab52"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html#ab526bd53e4d49d7209f01d9b10b9ab52">OnFlushRequest</a> (size_t input_stream_index) override</td></tr>
<tr class="memdesc:ab526bd53e4d49d7209f01d9b10b9ab52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Event handler for flush request at the specific input stream index. <br /></td></tr>
<tr class="separator:ab526bd53e4d49d7209f01d9b10b9ab52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classshaka_1_1media_1_1MediaHandler"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classshaka_1_1media_1_1MediaHandler')"><img src="../../closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html">shaka::media::MediaHandler</a></td></tr>
<tr class="memitem:abe33a7328099b7917b2b3ba1038997b0 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="abe33a7328099b7917b2b3ba1038997b0"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#abe33a7328099b7917b2b3ba1038997b0">ValidateOutputStreamIndex</a> (size_t stream_index) const</td></tr>
<tr class="memdesc:abe33a7328099b7917b2b3ba1038997b0 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate if the stream at the specified index actually exists. <br /></td></tr>
<tr class="separator:abe33a7328099b7917b2b3ba1038997b0 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe98a4fd19eabe0fc78afc91959c34a6 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#afe98a4fd19eabe0fc78afc91959c34a6">Dispatch</a> (std::unique_ptr&lt; <a class="el" href="../../d0/d4c/structshaka_1_1media_1_1StreamData.html">StreamData</a> &gt; stream_data) const</td></tr>
<tr class="separator:afe98a4fd19eabe0fc78afc91959c34a6 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad165375cd0a2074c5a740b42f847c499 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="ad165375cd0a2074c5a740b42f847c499"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#ad165375cd0a2074c5a740b42f847c499">DispatchStreamInfo</a> (size_t stream_index, std::shared_ptr&lt; const <a class="el" href="../../d5/db1/classshaka_1_1media_1_1StreamInfo.html">StreamInfo</a> &gt; stream_info) const</td></tr>
<tr class="memdesc:ad165375cd0a2074c5a740b42f847c499 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispatch the stream info to downstream handlers. <br /></td></tr>
<tr class="separator:ad165375cd0a2074c5a740b42f847c499 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a74fead95bc16255e73908bbebbced9 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="a9a74fead95bc16255e73908bbebbced9"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a9a74fead95bc16255e73908bbebbced9">DispatchMediaSample</a> (size_t stream_index, std::shared_ptr&lt; const <a class="el" href="../../d7/d6d/classshaka_1_1media_1_1MediaSample.html">MediaSample</a> &gt; media_sample) const</td></tr>
<tr class="memdesc:a9a74fead95bc16255e73908bbebbced9 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispatch the media sample to downstream handlers. <br /></td></tr>
<tr class="separator:a9a74fead95bc16255e73908bbebbced9 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c44df529fead65c007ee27b84ebd32a inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="a9c44df529fead65c007ee27b84ebd32a"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a9c44df529fead65c007ee27b84ebd32a">DispatchTextSample</a> (size_t stream_index, std::shared_ptr&lt; const <a class="el" href="../../db/d1f/classshaka_1_1media_1_1TextSample.html">TextSample</a> &gt; text_sample) const</td></tr>
<tr class="memdesc:a9c44df529fead65c007ee27b84ebd32a inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispatch the text sample to downstream handlers. <br /></td></tr>
<tr class="separator:a9c44df529fead65c007ee27b84ebd32a inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2acc1c84a61aee93229d493aa93308d5 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="a2acc1c84a61aee93229d493aa93308d5"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a2acc1c84a61aee93229d493aa93308d5">DispatchSegmentInfo</a> (size_t stream_index, std::shared_ptr&lt; const <a class="el" href="../../d0/dc0/structshaka_1_1media_1_1SegmentInfo.html">SegmentInfo</a> &gt; segment_info) const</td></tr>
<tr class="memdesc:a2acc1c84a61aee93229d493aa93308d5 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispatch the segment info to downstream handlers. <br /></td></tr>
<tr class="separator:a2acc1c84a61aee93229d493aa93308d5 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaea265e5d6e765b75ad622c5588e09f8 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="aaea265e5d6e765b75ad622c5588e09f8"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#aaea265e5d6e765b75ad622c5588e09f8">DispatchScte35Event</a> (size_t stream_index, std::shared_ptr&lt; const <a class="el" href="../../d1/d41/structshaka_1_1media_1_1Scte35Event.html">Scte35Event</a> &gt; scte35_event) const</td></tr>
<tr class="memdesc:aaea265e5d6e765b75ad622c5588e09f8 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispatch the scte35 event to downstream handlers. <br /></td></tr>
<tr class="separator:aaea265e5d6e765b75ad622c5588e09f8 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dcba8fa849d5f031ab3e2b4803a7804 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="a0dcba8fa849d5f031ab3e2b4803a7804"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0dcba8fa849d5f031ab3e2b4803a7804">DispatchCueEvent</a> (size_t stream_index, std::shared_ptr&lt; const <a class="el" href="../../da/d93/structshaka_1_1media_1_1CueEvent.html">CueEvent</a> &gt; cue_event) const</td></tr>
<tr class="memdesc:a0dcba8fa849d5f031ab3e2b4803a7804 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispatch the cue event to downstream handlers. <br /></td></tr>
<tr class="separator:a0dcba8fa849d5f031ab3e2b4803a7804 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5001bf12073101a949b062943769f5b inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="ad5001bf12073101a949b062943769f5b"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#ad5001bf12073101a949b062943769f5b">FlushDownstream</a> (size_t output_stream_index)</td></tr>
<tr class="memdesc:ad5001bf12073101a949b062943769f5b inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flush the downstream connected at the specified output stream index. <br /></td></tr>
<tr class="separator:ad5001bf12073101a949b062943769f5b inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab644ca7b0a0dbcbc42936f2dfb979ca5 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="ab644ca7b0a0dbcbc42936f2dfb979ca5"></a>
<a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#ab644ca7b0a0dbcbc42936f2dfb979ca5">FlushAllDownstreams</a> ()</td></tr>
<tr class="memdesc:ab644ca7b0a0dbcbc42936f2dfb979ca5 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flush all connected downstream handlers. <br /></td></tr>
<tr class="separator:ab644ca7b0a0dbcbc42936f2dfb979ca5 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb64985e305009df53bd60a5b4ff3122 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="aeb64985e305009df53bd60a5b4ff3122"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>initialized</b> ()</td></tr>
<tr class="separator:aeb64985e305009df53bd60a5b4ff3122 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9090654f2a7355517f4a80bc6ce868d inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="ad9090654f2a7355517f4a80bc6ce868d"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>num_input_streams</b> () const</td></tr>
<tr class="separator:ad9090654f2a7355517f4a80bc6ce868d inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d80c96b3c6824532733c73672185ba9 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="a8d80c96b3c6824532733c73672185ba9"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>next_output_stream_index</b> () const</td></tr>
<tr class="separator:a8d80c96b3c6824532733c73672185ba9 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a665eb29cf9704481a490c5a912083104 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="a665eb29cf9704481a490c5a912083104"></a>
const std::map&lt; size_t, std::pair&lt; std::shared_ptr&lt; <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html">MediaHandler</a> &gt;, size_t &gt; &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>output_handlers</b> ()</td></tr>
<tr class="separator:a665eb29cf9704481a490c5a912083104 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a2c0bf3b08ac78ebaa87687991c9ca542"><td class="memItemLeft" align="right" valign="top"><a id="a2c0bf3b08ac78ebaa87687991c9ca542"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>ChunkingHandlerTest</b></td></tr>
<tr class="separator:a2c0bf3b08ac78ebaa87687991c9ca542"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_classshaka_1_1media_1_1MediaHandler"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classshaka_1_1media_1_1MediaHandler')"><img src="../../closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html">shaka::media::MediaHandler</a></td></tr>
<tr class="memitem:a393473d421c1cb5f37a4fdd5702681ed inherit pub_static_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a id="a393473d421c1cb5f37a4fdd5702681ed"></a>
static <a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Chain</b> (const std::vector&lt; std::shared_ptr&lt; <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html">MediaHandler</a> &gt;&gt; &amp;list)</td></tr>
<tr class="separator:a393473d421c1cb5f37a4fdd5702681ed inherit pub_static_methods_classshaka_1_1media_1_1MediaHandler"><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><a class="el" href="../../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html">ChunkingHandler</a> splits the samples into segments / subsegments based on the specified chunking params. This handler is a one-in one-out handler. There can be multiple chunking handler running in different threads or even different processes, we use the "consistent chunking algorithm" to make sure the chunks in different streams are aligned without explicit communcating with each other - which is not efficient and often difficult.</p>
<p>Consistent Chunking Algorithm:</p><ol type="1">
<li>Find the consistent chunkable boundary Let the timestamps for video frames be (t1, t2, t3, ...). Then a consistent chunkable boundary is simply the first chunkable boundary after (tk / N) != (tk-1 / N), where '/' denotes integer division, and N is the intended chunk duration.</li>
<li>Chunk only at the consistent chunkable boundary</li>
</ol>
<p>This algorithm will make sure the chunks from different video streams are aligned if they have aligned GoPs. </p>
<p class="definition">Definition at line <a class="el" href="../../d7/d79/chunking__handler_8h_source.html#l00039">39</a> of file <a class="el" href="../../d7/d79/chunking__handler_8h_source.html">chunking_handler.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a76a5f4b74da3876cc72f44301c389ebd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76a5f4b74da3876cc72f44301c389ebd">&#9670;&nbsp;</a></span>InitializeInternal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a> shaka::media::ChunkingHandler::InitializeInternal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Internal implementation of initialize. Note that it should only initialize the <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html">MediaHandler</a> itself. Downstream handlers are handled in <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#aed0da512bbd998ec9d0a5c019ad17acb">Initialize()</a>. </p>
<p>Implements <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a0e05325d62bfb66318301c1ed790a46e">shaka::media::MediaHandler</a>.</p>
<p class="definition">Definition at line <a class="el" href="../../d9/d12/chunking__handler_8cc_source.html#l00036">36</a> of file <a class="el" href="../../d9/d12/chunking__handler_8cc_source.html">chunking_handler.cc</a>.</p>
</div>
</div>
<a id="a44c30ffd7c283be2ba4347bda7848633"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44c30ffd7c283be2ba4347bda7848633">&#9670;&nbsp;</a></span>Process()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../d2/d20/classshaka_1_1Status.html">Status</a> shaka::media::ChunkingHandler::Process </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="../../d0/d4c/structshaka_1_1media_1_1StreamData.html">StreamData</a> &gt;&#160;</td>
<td class="paramname"><em>stream_data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Process the incoming stream data. Note that (1) stream_data.stream_index should be the input stream index; (2) The implementation needs to call DispatchXxx to dispatch the processed stream data to the downstream handlers after finishing processing if needed. </p>
<p>Implements <a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#acb614e9f43e1eb6f837801b15b78c0b4">shaka::media::MediaHandler</a>.</p>
<p class="definition">Definition at line <a class="el" href="../../d9/d12/chunking__handler_8cc_source.html#l00044">44</a> of file <a class="el" href="../../d9/d12/chunking__handler_8cc_source.html">chunking_handler.cc</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>packager/media/chunking/<a class="el" href="../../d7/d79/chunking__handler_8h_source.html">chunking_handler.h</a></li>
<li>packager/media/chunking/<a class="el" href="../../d9/d12/chunking__handler_8cc_source.html">chunking_handler.cc</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 22 2021 00:16:05 for Shaka Packager SDK by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>