media/docs/doc/reference-v1/com/google/android/exoplayer/util/CodecSpecificDataUtil.html
2021-04-20 16:18:09 +01:00

353 lines
16 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_101) on Wed Dec 14 17:18:29 GMT 2016 -->
<title>CodecSpecificDataUtil (ExoPlayer library)</title>
<meta name="date" content="2016-12-14">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="CodecSpecificDataUtil (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../com/google/android/exoplayer/util/Clock.html" title="interface in com.google.android.exoplayer.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../com/google/android/exoplayer/util/DebugTextViewHelper.html" title="class in com.google.android.exoplayer.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/google/android/exoplayer/util/CodecSpecificDataUtil.html" target="_top">Frames</a></li>
<li><a href="CodecSpecificDataUtil.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.google.android.exoplayer.util</div>
<h2 title="Class CodecSpecificDataUtil" class="title">Class CodecSpecificDataUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.google.android.exoplayer.util.CodecSpecificDataUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="typeNameLabel">CodecSpecificDataUtil</span>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Provides static utility methods for manipulating various types of codec specific data.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/CodecSpecificDataUtil.html#buildAacAudioSpecificConfig-int-int-">buildAacAudioSpecificConfig</a></span>(int&nbsp;sampleRate,
int&nbsp;numChannels)</code>
<div class="block">Builds a simple HE-AAC LC AudioSpecificConfig, as defined in ISO 14496-3 1.6.2.1</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/CodecSpecificDataUtil.html#buildAacAudioSpecificConfig-int-int-int-">buildAacAudioSpecificConfig</a></span>(int&nbsp;audioObjectType,
int&nbsp;sampleRateIndex,
int&nbsp;channelConfig)</code>
<div class="block">Builds a simple AudioSpecificConfig, as defined in ISO 14496-3 1.6.2.1</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/CodecSpecificDataUtil.html#buildNalUnit-byte:A-int-int-">buildNalUnit</a></span>(byte[]&nbsp;data,
int&nbsp;offset,
int&nbsp;length)</code>
<div class="block">Constructs a NAL unit consisting of the NAL start code followed by the specified data.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/android/util/Pair.html?is-external=true" title="class or interface in android.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/CodecSpecificDataUtil.html#parseAacAudioSpecificConfig-byte:A-">parseAacAudioSpecificConfig</a></span>(byte[]&nbsp;audioSpecificConfig)</code>
<div class="block">Parses an AudioSpecificConfig, as defined in ISO 14496-3 1.6.2.1</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static byte[][]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/google/android/exoplayer/util/CodecSpecificDataUtil.html#splitNalUnits-byte:A-">splitNalUnits</a></span>(byte[]&nbsp;data)</code>
<div class="block">Splits an array of NAL units.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="parseAacAudioSpecificConfig-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseAacAudioSpecificConfig</h4>
<pre>public static&nbsp;<a href="https://developer.android.com/reference/android/util/Pair.html?is-external=true" title="class or interface in android.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;parseAacAudioSpecificConfig(byte[]&nbsp;audioSpecificConfig)</pre>
<div class="block">Parses an AudioSpecificConfig, as defined in ISO 14496-3 1.6.2.1</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioSpecificConfig</code> - The AudioSpecificConfig to parse.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A pair consisting of the sample rate in Hz and the channel count.</dd>
</dl>
</li>
</ul>
<a name="buildAacAudioSpecificConfig-int-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildAacAudioSpecificConfig</h4>
<pre>public static&nbsp;byte[]&nbsp;buildAacAudioSpecificConfig(int&nbsp;audioObjectType,
int&nbsp;sampleRateIndex,
int&nbsp;channelConfig)</pre>
<div class="block">Builds a simple AudioSpecificConfig, as defined in ISO 14496-3 1.6.2.1</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>audioObjectType</code> - The audio object type.</dd>
<dd><code>sampleRateIndex</code> - The sample rate index.</dd>
<dd><code>channelConfig</code> - The channel configuration.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The AudioSpecificConfig.</dd>
</dl>
</li>
</ul>
<a name="buildAacAudioSpecificConfig-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildAacAudioSpecificConfig</h4>
<pre>public static&nbsp;byte[]&nbsp;buildAacAudioSpecificConfig(int&nbsp;sampleRate,
int&nbsp;numChannels)</pre>
<div class="block">Builds a simple HE-AAC LC AudioSpecificConfig, as defined in ISO 14496-3 1.6.2.1</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sampleRate</code> - The sample rate in Hz.</dd>
<dd><code>numChannels</code> - The number of channels.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The AudioSpecificConfig.</dd>
</dl>
</li>
</ul>
<a name="buildNalUnit-byte:A-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildNalUnit</h4>
<pre>public static&nbsp;byte[]&nbsp;buildNalUnit(byte[]&nbsp;data,
int&nbsp;offset,
int&nbsp;length)</pre>
<div class="block">Constructs a NAL unit consisting of the NAL start code followed by the specified data.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>data</code> - An array containing the data that should follow the NAL start code.</dd>
<dd><code>offset</code> - The start offset into <code>data</code>.</dd>
<dd><code>length</code> - The number of bytes to copy from <code>data</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The constructed NAL unit.</dd>
</dl>
</li>
</ul>
<a name="splitNalUnits-byte:A-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>splitNalUnits</h4>
<pre>public static&nbsp;byte[][]&nbsp;splitNalUnits(byte[]&nbsp;data)</pre>
<div class="block">Splits an array of NAL units.
<p>
If the input consists of NAL start code delimited units, then the returned array consists of
the split NAL units, each of which is still prefixed with the NAL start code. For any other
input, null is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>data</code> - An array of data.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The individual NAL units, or null if the input did not consist of NAL start code
delimited units.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../com/google/android/exoplayer/util/Clock.html" title="interface in com.google.android.exoplayer.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../com/google/android/exoplayer/util/DebugTextViewHelper.html" title="class in com.google.android.exoplayer.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?com/google/android/exoplayer/util/CodecSpecificDataUtil.html" target="_top">Frames</a></li>
<li><a href="CodecSpecificDataUtil.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>