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

282 lines
29 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.6"/>
<title>DASH Media Packaging 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/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</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 style="padding-left: 0.5em;">
<div id="projectname">DASH Media Packaging SDK
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="../../index.html"><span>Main&#160;Page</span></a></li>
<li><a href="../../namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="../../annotated.html"><span>Classes</span></a></li>
<li><a href="../../files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="../../search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="../../annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="../../classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="../../hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="../../functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></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:a29ee238e2b9f8051ead89143c943e989"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29ee238e2b9f8051ead89143c943e989"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ChunkingHandler</b> (const <a class="el" href="../../db/d02/structshaka_1_1media_1_1ChunkingOptions.html">ChunkingOptions</a> &amp;chunking_options)</td></tr>
<tr class="separator:a29ee238e2b9f8051ead89143c943e989"><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 class="anchor" id="a0fac1fe2d593e78d47244acdfa21759d"></a>
Status&#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 class="anchor" id="afc48a2450ce50162de18071aef516b6c"></a>
Status&#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 availble 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">Status&#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 class="anchor" 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">Status&#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">Status&#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 class="anchor" id="ab526bd53e4d49d7209f01d9b10b9ab52"></a>
Status&#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:a71df357be46c02dc0e71b2eabb034c10 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a71df357be46c02dc0e71b2eabb034c10"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a71df357be46c02dc0e71b2eabb034c10">ValidateOutputStreamIndex</a> (size_t stream_index) const </td></tr>
<tr class="memdesc:a71df357be46c02dc0e71b2eabb034c10 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:a71df357be46c02dc0e71b2eabb034c10 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accd62dd4def920571f95f4e1a98ab7ca inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top">Status&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#accd62dd4def920571f95f4e1a98ab7ca">Dispatch</a> (std::unique_ptr&lt; <a class="el" href="../../d0/d4c/structshaka_1_1media_1_1StreamData.html">StreamData</a> &gt; stream_data)</td></tr>
<tr class="separator:accd62dd4def920571f95f4e1a98ab7ca inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5c28b9b8e5aa8471186b35f005986a1 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac5c28b9b8e5aa8471186b35f005986a1"></a>
Status&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#ac5c28b9b8e5aa8471186b35f005986a1">DispatchPeriodInfo</a> (size_t stream_index, std::shared_ptr&lt; <a class="el" href="../../d7/d58/structshaka_1_1media_1_1PeriodInfo.html">PeriodInfo</a> &gt; period_info)</td></tr>
<tr class="memdesc:ac5c28b9b8e5aa8471186b35f005986a1 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispatch the period info to downstream handlers. <br/></td></tr>
<tr class="separator:ac5c28b9b8e5aa8471186b35f005986a1 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a855263bdfc4c0e24d94277dc4a1b415f inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a855263bdfc4c0e24d94277dc4a1b415f"></a>
Status&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a855263bdfc4c0e24d94277dc4a1b415f">DispatchStreamInfo</a> (size_t stream_index, std::shared_ptr&lt; <a class="el" href="../../d5/db1/classshaka_1_1media_1_1StreamInfo.html">StreamInfo</a> &gt; stream_info)</td></tr>
<tr class="memdesc:a855263bdfc4c0e24d94277dc4a1b415f 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:a855263bdfc4c0e24d94277dc4a1b415f inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73dfbc5de4901830cfd25775e2e4fcff inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a73dfbc5de4901830cfd25775e2e4fcff"></a>
Status&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a73dfbc5de4901830cfd25775e2e4fcff">DispatchMediaSample</a> (size_t stream_index, std::shared_ptr&lt; <a class="el" href="../../d7/d6d/classshaka_1_1media_1_1MediaSample.html">MediaSample</a> &gt; media_sample)</td></tr>
<tr class="memdesc:a73dfbc5de4901830cfd25775e2e4fcff 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:a73dfbc5de4901830cfd25775e2e4fcff inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa32bfd69f26d5f81a874d6442584691b inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa32bfd69f26d5f81a874d6442584691b"></a>
Status&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#aa32bfd69f26d5f81a874d6442584691b">DispatchTextSample</a> (size_t stream_index, std::shared_ptr&lt; <a class="el" href="../../db/d1f/classshaka_1_1media_1_1TextSample.html">TextSample</a> &gt; text_sample)</td></tr>
<tr class="memdesc:aa32bfd69f26d5f81a874d6442584691b inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispatch the text sample to downsream handlers. <br/></td></tr>
<tr class="separator:aa32bfd69f26d5f81a874d6442584691b inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a860716d6beae66729df7bb86b19aa81d inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a860716d6beae66729df7bb86b19aa81d"></a>
Status&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a860716d6beae66729df7bb86b19aa81d">DispatchMediaEvent</a> (size_t stream_index, std::shared_ptr&lt; <a class="el" href="../../df/dd3/structshaka_1_1media_1_1MediaEvent.html">MediaEvent</a> &gt; media_event)</td></tr>
<tr class="memdesc:a860716d6beae66729df7bb86b19aa81d inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dispatch the media event to downstream handlers. <br/></td></tr>
<tr class="separator:a860716d6beae66729df7bb86b19aa81d inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a505c70d5e911e45ebcabcce09e2658f9 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a505c70d5e911e45ebcabcce09e2658f9"></a>
Status&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dfd/classshaka_1_1media_1_1MediaHandler.html#a505c70d5e911e45ebcabcce09e2658f9">DispatchSegmentInfo</a> (size_t stream_index, std::shared_ptr&lt; <a class="el" href="../../d0/dc0/structshaka_1_1media_1_1SegmentInfo.html">SegmentInfo</a> &gt; segment_info)</td></tr>
<tr class="memdesc:a505c70d5e911e45ebcabcce09e2658f9 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:a505c70d5e911e45ebcabcce09e2658f9 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 class="anchor" id="ad5001bf12073101a949b062943769f5b"></a>
Status&#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 class="anchor" id="ab644ca7b0a0dbcbc42936f2dfb979ca5"></a>
Status&#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 downstreams. <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 class="anchor" 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:adcaba8387322b6ed0d490315876896b3 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adcaba8387322b6ed0d490315876896b3"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>num_input_streams</b> () const </td></tr>
<tr class="separator:adcaba8387322b6ed0d490315876896b3 inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67286928ab5b7a3b3ff39db3735fefac inherit pro_methods_classshaka_1_1media_1_1MediaHandler"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67286928ab5b7a3b3ff39db3735fefac"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>next_output_stream_index</b> () const </td></tr>
<tr class="separator:a67286928ab5b7a3b3ff39db3735fefac 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 class="anchor" id="a665eb29cf9704481a490c5a912083104"></a>
const std::map&lt; size_t, <br class="typebreak"/>
std::pair&lt; std::shared_ptr<br class="typebreak"/>
&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 class="anchor" 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>
<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 options. This handler is a multi-in multi-out handler. If more than one input is provided, there should be one and only one video stream; also, all inputs should come from the same thread and are synchronized. 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. However, this algorithm will only work for video streams. To be able to chunk non video streams at similar positions as video streams, <a class="el" href="../../d4/d43/classshaka_1_1media_1_1ChunkingHandler.html">ChunkingHandler</a> is designed to accept one video input and multiple non video inputs, the non video inputs are chunked when the video input is chunked. If the inputs are synchronized - which is true if the inputs come from the same demuxer, the video and non video chunks are aligned. </p>
<p>Definition at line <a class="el" href="../../d7/d79/chunking__handler_8h_source.html#l00061">61</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 class="anchor" id="a76a5f4b74da3876cc72f44301c389ebd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Status 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>Definition at line <a class="el" href="../../d9/d12/chunking__handler_8cc_source.html#l00028">28</a> of file <a class="el" href="../../d9/d12/chunking__handler_8cc_source.html">chunking_handler.cc</a>.</p>
</div>
</div>
<a class="anchor" id="a44c30ffd7c283be2ba4347bda7848633"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Status 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>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>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>media/chunking/<a class="el" href="../../d7/d79/chunking__handler_8h_source.html">chunking_handler.h</a></li>
<li>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 Aug 8 2017 17:39:40 for DASH Media Packaging SDK by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>