Full Code of timsu/android-aac-enc for AI

master 5118c97300f7 cached
363 files
1.6 MB
474.4k tokens
2761 symbols
1 requests
Download .txt
Showing preview only (1,729K chars total). Download the full file or copy to clipboard to get everything.
Repository: timsu/android-aac-enc
Branch: master
Commit: 5118c97300f7
Files: 363
Total size: 1.6 MB

Directory structure:
gitextract_gzc8yv_e/

├── .classpath
├── .gitignore
├── .project
├── AndroidManifest.xml
├── README.md
├── build.xml
├── jni/
│   ├── Android.mk
│   ├── Config.mk
│   ├── aac-enc.c
│   ├── basic_op/
│   │   ├── basicop2.c
│   │   └── oper_32b.c
│   ├── inc/
│   │   ├── aac_rom.h
│   │   ├── aacenc_core.h
│   │   ├── adj_thr.h
│   │   ├── adj_thr_data.h
│   │   ├── band_nrg.h
│   │   ├── basic_op.h
│   │   ├── bit_cnt.h
│   │   ├── bitbuffer.h
│   │   ├── bitenc.h
│   │   ├── block_switch.h
│   │   ├── channel_map.h
│   │   ├── cmnMemory.h
│   │   ├── config.h
│   │   ├── dyn_bits.h
│   │   ├── grp_data.h
│   │   ├── interface.h
│   │   ├── line_pe.h
│   │   ├── memalign.h
│   │   ├── ms_stereo.h
│   │   ├── oper_32b.h
│   │   ├── pre_echo_control.h
│   │   ├── psy_configuration.h
│   │   ├── psy_const.h
│   │   ├── psy_data.h
│   │   ├── psy_main.h
│   │   ├── qc_data.h
│   │   ├── qc_main.h
│   │   ├── quantize.h
│   │   ├── sf_estim.h
│   │   ├── spreading.h
│   │   ├── stat_bits.h
│   │   ├── tns.h
│   │   ├── tns_func.h
│   │   ├── tns_param.h
│   │   ├── transform.h
│   │   ├── typedef.h
│   │   ├── typedefs.h
│   │   ├── voAAC.h
│   │   ├── voAMRWB.h
│   │   ├── voAudio.h
│   │   ├── voIndex.h
│   │   ├── voMem.h
│   │   └── voType.h
│   ├── patent_disclaimer.txt
│   └── src/
│       ├── aac_rom.c
│       ├── aacenc.c
│       ├── aacenc_core.c
│       ├── adj_thr.c
│       ├── asm/
│       │   ├── ARMV5E/
│       │   │   ├── AutoCorrelation_v5.s
│       │   │   ├── CalcWindowEnergy_v5.s
│       │   │   ├── PrePostMDCT_v5.s
│       │   │   ├── R4R8First_v5.s
│       │   │   ├── Radix4FFT_v5.s
│       │   │   └── band_nrg_v5.s
│       │   └── ARMV7/
│       │       ├── PrePostMDCT_v7.s
│       │       ├── R4R8First_v7.s
│       │       └── Radix4FFT_v7.s
│       ├── band_nrg.c
│       ├── bit_cnt.c
│       ├── bitbuffer.c
│       ├── bitenc.c
│       ├── block_switch.c
│       ├── channel_map.c
│       ├── cmnMemory.c
│       ├── dyn_bits.c
│       ├── grp_data.c
│       ├── interface.c
│       ├── line_pe.c
│       ├── memalign.c
│       ├── ms_stereo.c
│       ├── pre_echo_control.c
│       ├── psy_configuration.c
│       ├── psy_main.c
│       ├── qc_main.c
│       ├── quantize.c
│       ├── sf_estim.c
│       ├── spreading.c
│       ├── stat_bits.c
│       ├── tns.c
│       └── transform.c
├── libs/
│   └── xom-1.2.7.jar
├── local.properties
├── proguard.cfg
├── project.properties
├── res/
│   ├── layout/
│   │   └── main.xml
│   ├── raw/
│   │   └── isoparser.properties
│   └── values/
│       └── strings.xml
└── src/
    └── com/
        ├── coremedia/
        │   └── iso/
        │       ├── AbstractBoxParser.java
        │       ├── Ascii.java
        │       ├── BoxParser.java
        │       ├── ChannelHelper.java
        │       ├── Hex.java
        │       ├── IsoFile.java
        │       ├── IsoFileConvenienceHelper.java
        │       ├── IsoTypeReader.java
        │       ├── IsoTypeReaderVariable.java
        │       ├── IsoTypeWriter.java
        │       ├── IsoTypeWriterVariable.java
        │       ├── PropertyBoxParserImpl.java
        │       ├── Utf8.java
        │       └── boxes/
        │           ├── AbstractMediaHeaderBox.java
        │           ├── AlbumBox.java
        │           ├── AuthorBox.java
        │           ├── BitRateBox.java
        │           ├── Box.java
        │           ├── ChunkOffset64BitBox.java
        │           ├── ChunkOffsetBox.java
        │           ├── ClassificationBox.java
        │           ├── CompositionShiftLeastGreatestAtom.java
        │           ├── CompositionTimeToSample.java
        │           ├── ContainerBox.java
        │           ├── CopyrightBox.java
        │           ├── DataEntryUrlBox.java
        │           ├── DataEntryUrnBox.java
        │           ├── DataInformationBox.java
        │           ├── DataReferenceBox.java
        │           ├── DescriptionBox.java
        │           ├── EditBox.java
        │           ├── EditListBox.java
        │           ├── FileTypeBox.java
        │           ├── FreeBox.java
        │           ├── FreeSpaceBox.java
        │           ├── FullBox.java
        │           ├── GenericMediaHeaderBoxImpl.java
        │           ├── GenreBox.java
        │           ├── HandlerBox.java
        │           ├── HintMediaHeaderBox.java
        │           ├── ItemDataBox.java
        │           ├── ItemLocationBox.java
        │           ├── ItemProtectionBox.java
        │           ├── KeywordsBox.java
        │           ├── MediaBox.java
        │           ├── MediaHeaderBox.java
        │           ├── MediaInformationBox.java
        │           ├── MetaBox.java
        │           ├── MovieBox.java
        │           ├── MovieHeaderBox.java
        │           ├── NullMediaHeaderBox.java
        │           ├── ObjectDescriptorBox.java
        │           ├── OmaDrmAccessUnitFormatBox.java
        │           ├── OriginalFormatBox.java
        │           ├── PerformerBox.java
        │           ├── ProgressiveDownloadInformationBox.java
        │           ├── ProtectionSchemeInformationBox.java
        │           ├── RatingBox.java
        │           ├── RecordingYearBox.java
        │           ├── SampleAuxiliaryInformationOffsetsBox.java
        │           ├── SampleAuxiliaryInformationSizesBox.java
        │           ├── SampleDependencyTypeBox.java
        │           ├── SampleDescriptionBox.java
        │           ├── SampleSizeBox.java
        │           ├── SampleTableBox.java
        │           ├── SampleToChunkBox.java
        │           ├── SampleToGroupBox.java
        │           ├── SchemeInformationBox.java
        │           ├── SchemeTypeBox.java
        │           ├── SoundMediaHeaderBox.java
        │           ├── StaticChunkOffsetBox.java
        │           ├── SubSampleInformationBox.java
        │           ├── SubtitleMediaHeaderBox.java
        │           ├── SyncSampleBox.java
        │           ├── TimeToSampleBox.java
        │           ├── TitleBox.java
        │           ├── TrackBox.java
        │           ├── TrackHeaderBox.java
        │           ├── TrackReferenceBox.java
        │           ├── TrackReferenceTypeBox.java
        │           ├── UnknownBox.java
        │           ├── UserBox.java
        │           ├── UserDataBox.java
        │           ├── VideoMediaHeaderBox.java
        │           ├── WriteListener.java
        │           ├── XmlBox.java
        │           ├── apple/
        │           │   ├── AbstractAppleMetaDataBox.java
        │           │   ├── AppleAlbumArtistBox.java
        │           │   ├── AppleAlbumBox.java
        │           │   ├── AppleArtistBox.java
        │           │   ├── AppleCommentBox.java
        │           │   ├── AppleCompilationBox.java
        │           │   ├── AppleCopyrightBox.java
        │           │   ├── AppleCoverBox.java
        │           │   ├── AppleCustomGenreBox.java
        │           │   ├── AppleDataBox.java
        │           │   ├── AppleDataRateBox.java
        │           │   ├── AppleDataReferenceBox.java
        │           │   ├── AppleDescriptionBox.java
        │           │   ├── AppleEncoderBox.java
        │           │   ├── AppleGaplessPlaybackBox.java
        │           │   ├── AppleGenericBox.java
        │           │   ├── AppleGroupingBox.java
        │           │   ├── AppleIdBox.java
        │           │   ├── AppleItemListBox.java
        │           │   ├── AppleLosslessSpecificBox.java
        │           │   ├── AppleMeanBox.java
        │           │   ├── AppleMediaTypeBox.java
        │           │   ├── AppleNameBox.java
        │           │   ├── AppleNetworkBox.java
        │           │   ├── ApplePurchaseDateBox.java
        │           │   ├── AppleRatingBox.java
        │           │   ├── AppleRecordingYearBox.java
        │           │   ├── AppleReferenceMovieBox.java
        │           │   ├── AppleReferenceMovieDescriptorBox.java
        │           │   ├── AppleShowBox.java
        │           │   ├── AppleSortAlbumBox.java
        │           │   ├── AppleStandardGenreBox.java
        │           │   ├── AppleStoreAccountTypeBox.java
        │           │   ├── AppleStoreCountryCodeBox.java
        │           │   ├── AppleSynopsisBox.java
        │           │   ├── AppleTempBox.java
        │           │   ├── AppleTrackAuthorBox.java
        │           │   ├── AppleTrackNumberBox.java
        │           │   ├── AppleTrackTitleBox.java
        │           │   ├── AppleTvEpisodeBox.java
        │           │   ├── AppleTvEpisodeNumberBox.java
        │           │   ├── AppleTvSeasonBox.java
        │           │   └── AppleWaveBox.java
        │           ├── dece/
        │           │   └── TrickPlayBox.java
        │           ├── fragment/
        │           │   ├── MovieExtendsBox.java
        │           │   ├── MovieExtendsHeaderBox.java
        │           │   ├── MovieFragmentBox.java
        │           │   ├── MovieFragmentHeaderBox.java
        │           │   ├── MovieFragmentRandomAccessBox.java
        │           │   ├── MovieFragmentRandomAccessOffsetBox.java
        │           │   ├── SampleFlags.java
        │           │   ├── TrackExtendsBox.java
        │           │   ├── TrackFragmentBaseMediaDecodeTimeBox.java
        │           │   ├── TrackFragmentBox.java
        │           │   ├── TrackFragmentHeaderBox.java
        │           │   ├── TrackFragmentRandomAccessBox.java
        │           │   └── TrackRunBox.java
        │           ├── h264/
        │           │   └── AvcConfigurationBox.java
        │           ├── mdat/
        │           │   ├── DummyMap.java
        │           │   ├── MediaDataBox.java
        │           │   ├── SampleList.java
        │           │   └── Segment.java
        │           ├── sampleentry/
        │           │   ├── AmrSpecificBox.java
        │           │   ├── AudioSampleEntry.java
        │           │   ├── MpegSampleEntry.java
        │           │   ├── Ovc1VisualSampleEntryImpl.java
        │           │   ├── SampleEntry.java
        │           │   ├── SubtitleSampleEntry.java
        │           │   ├── TextSampleEntry.java
        │           │   └── VisualSampleEntry.java
        │           ├── threegpp26244/
        │           │   └── LocationInformationBox.java
        │           └── vodafone/
        │               ├── AlbumArtistBox.java
        │               ├── ContentDistributorIdBox.java
        │               ├── CoverUriBox.java
        │               └── LyricsUriBox.java
        ├── googlecode/
        │   └── mp4parser/
        │       ├── AbstractBox.java
        │       ├── AbstractContainerBox.java
        │       ├── AbstractFullBox.java
        │       ├── FullContainerBox.java
        │       ├── annotations/
        │       │   ├── DoNotParseDetail.java
        │       │   └── ParseDetail.java
        │       ├── authoring/
        │       │   ├── AbstractTrack.java
        │       │   ├── DateHelper.java
        │       │   ├── Movie.java
        │       │   ├── Mp4TrackImpl.java
        │       │   ├── Track.java
        │       │   ├── TrackMetaData.java
        │       │   ├── builder/
        │       │   │   ├── ByteBufferHelper.java
        │       │   │   ├── DefaultMp4Builder.java
        │       │   │   ├── FragmentIntersectionFinder.java
        │       │   │   ├── FragmentedMp4Builder.java
        │       │   │   ├── Mp4Builder.java
        │       │   │   ├── SyncSampleIntersectFinderImpl.java
        │       │   │   ├── TwoSecondIntersectionFinder.java
        │       │   │   └── smoothstreaming/
        │       │   │       ├── AudioQuality.java
        │       │   │       ├── FlatManifestWriterImpl.java
        │       │   │       ├── FlatPackageWriterImpl.java
        │       │   │       ├── ManifestWriter.java
        │       │   │       ├── PackageWriter.java
        │       │   │       └── VideoQuality.java
        │       │   ├── container/
        │       │   │   └── mp4/
        │       │   │       └── MovieCreator.java
        │       │   └── tracks/
        │       │       ├── AACTrackImpl.java
        │       │       ├── AC3TrackImpl.java
        │       │       ├── Amf0Track.java
        │       │       ├── AppendTrack.java
        │       │       ├── ChangeTimeScaleTrack.java
        │       │       ├── CroppedTrack.java
        │       │       ├── DivideTimeScaleTrack.java
        │       │       ├── EC3TrackImpl.java
        │       │       ├── H264TrackImpl.java
        │       │       ├── MultiplyTimeScaleTrack.java
        │       │       └── TextTrackImpl.java
        │       ├── boxes/
        │       │   ├── AC3SpecificBox.java
        │       │   ├── AbstractSampleEncryptionBox.java
        │       │   ├── AbstractTrackEncryptionBox.java
        │       │   ├── DTSSpecificBox.java
        │       │   ├── EC3SpecificBox.java
        │       │   ├── MLPSpecificBox.java
        │       │   ├── adobe/
        │       │   │   └── ActionMessageFormat0SampleEntryBox.java
        │       │   ├── apple/
        │       │   │   └── TimeCodeBox.java
        │       │   ├── basemediaformat/
        │       │   │   ├── AvcNalUnitStorageBox.java
        │       │   │   ├── SampleEncryptionBox.java
        │       │   │   └── TrackEncryptionBox.java
        │       │   ├── mp4/
        │       │   │   ├── AbstractDescriptorBox.java
        │       │   │   ├── ESDescriptorBox.java
        │       │   │   ├── ObjectDescriptorBox.java
        │       │   │   └── objectdescriptors/
        │       │   │       ├── AudioSpecificConfig.java
        │       │   │       ├── BaseDescriptor.java
        │       │   │       ├── BitReaderBuffer.java
        │       │   │       ├── BitWriterBuffer.java
        │       │   │       ├── DecoderConfigDescriptor.java
        │       │   │       ├── DecoderSpecificInfo.java
        │       │   │       ├── Descriptor.java
        │       │   │       ├── ESDescriptor.java
        │       │   │       ├── ExtensionDescriptor.java
        │       │   │       ├── ExtensionProfileLevelDescriptor.java
        │       │   │       ├── InitialObjectDescriptor.java
        │       │   │       ├── ObjectDescriptor.java_bak
        │       │   │       ├── ObjectDescriptorBase.java
        │       │   │       ├── ObjectDescriptorFactory.java
        │       │   │       ├── ProfileLevelIndicationDescriptor.java
        │       │   │       ├── SLConfigDescriptor.java
        │       │   │       └── UnknownDescriptor.java
        │       │   ├── piff/
        │       │   │   ├── PiffSampleEncryptionBox.java
        │       │   │   ├── PiffTrackEncryptionBox.java
        │       │   │   ├── PlayReadyHeader.java
        │       │   │   ├── ProtectionSpecificHeader.java
        │       │   │   ├── TfrfBox.java
        │       │   │   ├── TfxdBox.java
        │       │   │   └── UuidBasedProtectionSystemSpecificHeaderBox.java
        │       │   ├── threegpp26245/
        │       │   │   └── FontTableBox.java
        │       │   └── ultraviolet/
        │       │       ├── AssetInformationBox.java
        │       │       └── BaseLocationBox.java
        │       ├── h264/
        │       │   ├── BTree.java
        │       │   ├── CharCache.java
        │       │   ├── Debug.java
        │       │   ├── model/
        │       │   │   ├── AspectRatio.java
        │       │   │   ├── BitstreamElement.java
        │       │   │   ├── ChromaFormat.java
        │       │   │   ├── HRDParameters.java
        │       │   │   ├── PictureParameterSet.java
        │       │   │   ├── ScalingList.java
        │       │   │   ├── ScalingMatrix.java
        │       │   │   ├── SeqParameterSet.java
        │       │   │   └── VUIParameters.java
        │       │   ├── read/
        │       │   │   ├── BitstreamReader.java
        │       │   │   └── CAVLCReader.java
        │       │   └── write/
        │       │       ├── BitstreamWriter.java
        │       │       └── CAVLCWriter.java
        │       ├── srt/
        │       │   └── SrtParser.java
        │       └── util/
        │           ├── ByteBufferByteChannel.java
        │           ├── CastUtils.java
        │           ├── Math.java
        │           ├── Path.java
        │           └── UUIDConverter.java
        └── todoroo/
            └── aacenc/
                ├── AACEncoder.java
                ├── AACToM4A.java
                ├── ContextManager.java
                └── Main.java

================================================
FILE CONTENTS
================================================

================================================
FILE: .classpath
================================================
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="src"/>
	<classpathentry kind="src" path="gen"/>
	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
	<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
	<classpathentry kind="lib" path="libs/xom-1.2.7.jar"/>
	<classpathentry kind="output" path="bin/classes"/>
</classpath>


================================================
FILE: .gitignore
================================================
gen
bin
obj


================================================
FILE: .project
================================================
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>aac-enc</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
		<nature>org.eclipse.jdt.core.javanature</nature>
	</natures>
</projectDescription>


================================================
FILE: AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.todoroo.aacenc"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.INTERNET"/>
    

    <uses-sdk android:minSdkVersion="7" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".Main" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

================================================
FILE: README.md
================================================
Android AAC Encoder project
============================

Extraction of Android Stagefright VO AAC encoder with a nice Java API.

In addition, includes a patched [MP4Parser](http://code.google.com/p/mp4parser) Java library for wrapping AAC files in an MP4 container to produce M4A audio files playable by Google Chrome and Apple QuickTime.

This project is set up as a single Eclipse project with a Main.java example activity. AAC encoding logic is found in jni/aac-enc.c, which needs to be built with the [Android NDK](https://developer.android.com/ndk/index.html). I used NDK r7c, but any version should work.

For more information, check out the [original blog article](http://betaful.com/post/82668810035/encoding-aac-audio-in-android).

Why?
----

- smaller code footprint than FFmpeg (< 500k compared to > 2M)
- less native code to compile = less work to support new architectures
- easiest way to make an M4A file


License
-------

This project is released under the [Apache License, version 2](http://www.apache.org/licenses/LICENSE-2.0)

Patents
-------

This project grants you no rights to any of the patents this technology may require. However, since Android version 4.0 and up ship with the Stagefright VO AAC encoder, it is my understanding that you can release code that depends on these libraries for any version of Android. Please note that I am not a lawyer.


Have changes?
-------------

Pull requests are accepted!


================================================
FILE: build.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project name="Main" default="help">

    <!-- The local.properties file is created and updated by the 'android' tool.
         It contains the path to the SDK. It should *NOT* be checked into
         Version Control Systems. -->
    <property file="local.properties" />

    <!-- The ant.properties file can be created by you. It is only edited by the
         'android' tool to add properties to it.
         This is the place to change some Ant specific build properties.
         Here are some properties you may want to change/update:

         source.dir
             The name of the source directory. Default is 'src'.
         out.dir
             The name of the output directory. Default is 'bin'.

         For other overridable properties, look at the beginning of the rules
         files in the SDK, at tools/ant/build.xml

         Properties related to the SDK location or the project target should
         be updated using the 'android' tool with the 'update' action.

         This file is an integral part of the build system for your
         application and should be checked into Version Control Systems.

         -->
    <property file="ant.properties" />

    <!-- The project.properties file is created and updated by the 'android'
         tool, as well as ADT.

         This contains project specific properties such as project target, and library
         dependencies. Lower level build properties are stored in ant.properties
         (or in .classpath for Eclipse projects).

         This file is an integral part of the build system for your
         application and should be checked into Version Control Systems. -->
    <loadproperties srcFile="project.properties" />

    <!-- quick check on sdk.dir -->
    <fail
            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
            unless="sdk.dir"
    />


<!-- extension targets. Uncomment the ones where you want to do custom work
     in between standard targets -->
<!--
    <target name="-pre-build">
    </target>
    <target name="-pre-compile">
    </target>

    /* This is typically used for code obfuscation.
       Compiled code location: ${out.classes.absolute.dir}
       If this is not done in place, override ${out.dex.input.absolute.dir} */
    <target name="-post-compile">
    </target>
-->

    <!-- Import the actual build file.

         To customize existing targets, there are two options:
         - Customize only one target:
             - copy/paste the target into this file, *before* the
               <import> task.
             - customize it to your needs.
         - Customize the whole content of build.xml
             - copy/paste the content of the rules files (minus the top node)
               into this file, replacing the <import> task.
             - customize to your needs.

         ***********************
         ****** IMPORTANT ******
         ***********************
         In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
         in order to avoid having your file be overridden by tools such as "android update project"
    -->
    <!-- version-tag: 1 -->
    <import file="${sdk.dir}/tools/ant/build.xml" />

</project>


================================================
FILE: jni/Android.mk
================================================
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
include $(LOCAL_PATH)/Config.mk

LOCAL_MODULE := aac-encoder

ENC_SRC := src

LOCAL_C_INCLUDES := $(LOCAL_PATH)/inc

LOCAL_SRC_FILES = \
    aac-enc.c \
    $(ENC_SRC)/cmnMemory.c \
    basic_op/basicop2.c \
    basic_op/oper_32b.c \
    $(ENC_SRC)/aac_rom.c \
    $(ENC_SRC)/aacenc.c \
    $(ENC_SRC)/aacenc_core.c \
    $(ENC_SRC)/adj_thr.c \
    $(ENC_SRC)/band_nrg.c \
    $(ENC_SRC)/bit_cnt.c \
    $(ENC_SRC)/bitbuffer.c \
    $(ENC_SRC)/bitenc.c \
    $(ENC_SRC)/block_switch.c \
    $(ENC_SRC)/channel_map.c \
    $(ENC_SRC)/dyn_bits.c \
    $(ENC_SRC)/grp_data.c \
    $(ENC_SRC)/interface.c \
    $(ENC_SRC)/line_pe.c \
    $(ENC_SRC)/memalign.c \
    $(ENC_SRC)/ms_stereo.c \
    $(ENC_SRC)/pre_echo_control.c \
    $(ENC_SRC)/psy_configuration.c \
    $(ENC_SRC)/psy_main.c \
    $(ENC_SRC)/qc_main.c \
    $(ENC_SRC)/quantize.c \
    $(ENC_SRC)/sf_estim.c \
    $(ENC_SRC)/spreading.c \
    $(ENC_SRC)/stat_bits.c \
    $(ENC_SRC)/tns.c \
    $(ENC_SRC)/transform.c

ifeq ($(VOTT), v5)
LOCAL_SRC_FILES += \
	$(ENC_SRC)/asm/ARMV5E/AutoCorrelation_v5.s \
	$(ENC_SRC)/asm/ARMV5E/band_nrg_v5.s \
	$(ENC_SRC)/asm/ARMV5E/CalcWindowEnergy_v5.s \
	$(ENC_SRC)/asm/ARMV5E/PrePostMDCT_v5.s \
	$(ENC_SRC)/asm/ARMV5E/R4R8First_v5.s \
	$(ENC_SRC)/asm/ARMV5E/Radix4FFT_v5.s
endif

ifeq ($(VOTT), v7)
LOCAL_SRC_FILES += \
	$(ENC_SRC)/asm/ARMV5E/AutoCorrelation_v5.s \
	$(ENC_SRC)/asm/ARMV5E/band_nrg_v5.s \
	$(ENC_SRC)/asm/ARMV5E/CalcWindowEnergy_v5.s \
	$(ENC_SRC)/asm/ARMV7/PrePostMDCT_v7.s \
	$(ENC_SRC)/asm/ARMV7/R4R8First_v7.s \
	$(ENC_SRC)/asm/ARMV7/Radix4FFT_v7.s
endif

LOCAL_ARM_MODE := arm

LOCAL_LDLIBS := -llog

LOCAL_STATIC_LIBRARIES := 
LOCAL_SHARED_LIBRARIES :=

LOCAL_CFLAGS := $(VO_CFLAGS)

ifeq ($(VOTT), v5)
LOCAL_CFLAGS += -DARMV5E -DARM_INASM -DARMV5_INASM
LOCAL_C_INCLUDES += $(ENC_SRC)/asm/ARMV5E
endif

ifeq ($(VOTT), v7)
LOCAL_CFLAGS += -DARMV5E -DARMV7Neon -DARM_INASM -DARMV5_INASM -DARMV6_INASM
LOCAL_C_INCLUDES += $(ENC_SRC)/asm/ARMV5E
LOCAL_C_INCLUDES += $(ENC_SRC)/asm/ARMV7
endif

include $(BUILD_SHARED_LIBRARY)



================================================
FILE: jni/Config.mk
================================================
#
# This configure file is just for Linux projects against Android
#

VOPRJ :=
VONJ :=

# WARNING:
# Using v7 breaks generic build
ifeq ($(TARGET_ARCH),arm)
VOTT := v5
else
VOTT := pc
endif

# Do we also need to check on ARCH_ARM_HAVE_ARMV7A? - probably not
ifeq ($(ARCH_ARM_HAVE_NEON),true)
VOTT := v7
endif

VOTEST := 0

VO_CFLAGS:=-DLINUX



================================================
FILE: jni/aac-enc.c
================================================
#include <string.h>
#include <stdio.h>
#include <jni.h>
#include <inc/voAAC.h>
#include <inc/cmnMemory.h>
#include <android/log.h> 

#define DEBUG 0

#if DEBUG
#define LOG(msg, args...) __android_log_print(ANDROID_LOG_ERROR, "aac-enc", msg, ## args)
#else
#define LOG(msg, args...)
#endif

/* utility functions */

void throwException(JNIEnv* env, const char *name, const char *msg)
{
  jclass cls = (*env)->FindClass(env, name);
  /* if cls is NULL, an exception has already been thrown */
  if (cls != NULL) {
    (*env)->ThrowNew(env, cls, msg);
  }
  /* free the local ref */
  (*env)->DeleteLocalRef(env, cls);
}

/* internal storage */

FILE* outfile;

VO_AUDIO_CODECAPI codec_api;
VO_HANDLE handle = 0;
VO_AUDIO_CODECAPI codec_api = { 0 };
VO_MEM_OPERATOR mem_operator = { 0 };
VO_CODEC_INIT_USERDATA user_data;
AACENC_PARAM params = { 0 };

/* java native functions */

void
Java_com_todoroo_aacenc_AACEncoder_init( JNIEnv* env,
                                         jobject thiz,
                                         int bitrate,
                                         int channels,
                                         int sampleRate,
                                         int bitsPerSample,
                                         jstring outputFile)
{

  if (bitsPerSample != 16) {
    throwException(env, "java/lang/IllegalArgumentException", 
                   "Unsupported sample depth. Only 16 bits per sample is supported");
    return;
  }
  
  voGetAACEncAPI(&codec_api);

  mem_operator.Alloc = cmnMemAlloc;
  mem_operator.Copy = cmnMemCopy;
  mem_operator.Free = cmnMemFree;
  mem_operator.Set = cmnMemSet;
  mem_operator.Check = cmnMemCheck;
  user_data.memflag = VO_IMF_USERMEMOPERATOR;
  user_data.memData = &mem_operator;
  codec_api.Init(&handle, VO_AUDIO_CodingAAC, &user_data);

  params.sampleRate = sampleRate;
  params.bitRate = bitrate;
  params.nChannels = channels;
  params.adtsUsed = 1;

  if (codec_api.SetParam(handle, VO_PID_AAC_ENCPARAM, &params) != VO_ERR_NONE) {
    throwException(env, "java/lang/IllegalArgumentException", 
                   "Unable to set encoding parameters");
    return;
  }

  const char* output_file = (*env)->GetStringUTFChars(env, outputFile, (jboolean) 0);
  outfile = fopen(output_file, "wb");
  LOG("writing to %s", output_file);
  (*env)->ReleaseStringUTFChars(env, outputFile, output_file);

  LOG("initialized handle: %x", handle);

}

void
Java_com_todoroo_aacenc_AACEncoder_encode( JNIEnv* env,
                                           jobject thiz,
                                           jbyteArray inputArray)
{

  LOG("writing to handle: %x", handle);

  jbyte* buffer = (*env)->GetByteArrayElements(env, inputArray, (jboolean) 0);
  int inputSize = (*env)->GetArrayLength(env, inputArray);

  VO_CODECBUFFER input = { 0 }, output = { 0 };
  VO_AUDIO_OUTPUTINFO output_info = { 0 };

  int readSize = params.nChannels * 2 * 1024;
  uint16_t* outbuf = (uint16_t*) malloc(readSize * 2);

  LOG("input buffer: %d", inputSize);

  /* GET OUTPUT DATA */
  int i;
  int byteLeft = inputSize;

  for(i = 0; i < inputSize; i += readSize) {

    input.Buffer = buffer + i;
    input.Length = (byteLeft < readSize) ? byteLeft : readSize;
    codec_api.SetInputData(handle, &input);

    output.Buffer = outbuf;
    output.Length = readSize * 2;

    int status = codec_api.GetOutputData(handle, &output, &output_info);
    if (status == VO_ERR_INPUT_BUFFER_SMALL)
      break;

    if (status == VO_ERR_OUTPUT_BUFFER_SMALL) {
      LOG("output buffer was too small, read %d", output_info.InputUsed);
    } else if (status != VO_ERR_NONE) {
      char message[100];
      sprintf(message, "Unable to encode frame: %x", status);
      throwException(env, "java/lang/RuntimeException", message);
      return;
    }

    fwrite(outbuf, 1, output.Length, outfile);
    byteLeft -= readSize;
  }

  LOG("finished output");
  (*env)->ReleaseByteArrayElements(env, inputArray, buffer, JNI_ABORT);
  free(outbuf);
}

void
Java_com_todoroo_aacenc_AACEncoder_uninit( JNIEnv* env,
                                           jobject thiz)
{

  fclose(outfile);
  codec_api.Uninit(handle);

}

JNIEXPORT jint JNICALL 
JNI_OnLoad (JavaVM * vm, void * reserved) 
{ 
  return JNI_VERSION_1_6; 
} 


================================================
FILE: jni/basic_op/basicop2.c
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		basicop2.c

	Content:	Basic arithmetic operators.

*******************************************************************************/

#include "typedef.h"
#include "basic_op.h"


/*___________________________________________________________________________
 |                                                                           |
 |   Functions                                                               |
 |___________________________________________________________________________|
*/

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : saturate                                                |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |    Limit the 32 bit input to the range of a 16 bit word.                  |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1                                                                 |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var1 <= 0x7fff ffff.                 |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/

#if (!SATRUATE_IS_INLINE)
Word16 saturate(Word32 L_var1)
{
    Word16 var_out;

    if (L_var1 > 0X00007fffL)
    {
        var_out = MAX_16;
    }
    else if (L_var1 < (Word32) 0xffff8000L)
    {
        var_out = MIN_16;
    }
    else
    {
        var_out = extract_l(L_var1);
    }

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : add                                                     |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |    Performs the addition (var1+var2) with overflow control and saturation;|
 |    the 16 bit result is set at +32767 when overflow occurs or at -32768   |
 |    when underflow occurs.                                                 |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/

#if (!ADD_IS_INLINE)
Word16 add (Word16 var1, Word16 var2)
{
    Word16 var_out;
    Word32 L_sum;

    L_sum = (Word32)var1 + (Word32)var2;
    var_out = saturate(L_sum);

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : sub                                                     |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |    Performs the subtraction (var1+var2) with overflow control and satu-   |
 |    ration; the 16 bit result is set at +32767 when overflow occurs or at  |
 |    -32768 when underflow occurs.                                          |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/
#if (!SUB_IS_INLINE)
Word16 sub(Word16 var1, Word16 var2)
{
    Word16 var_out;
    Word32 L_diff;

    L_diff = (Word32) var1 - var2;
    var_out = saturate(L_diff);

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : abs_s                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |    Absolute value of var1; abs_s(-32768) = 32767.                         |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0x0000 0000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/
//Word16 abs_s (Word16 var1)
//{
//    Word16 var_out;
//
//    if (var1 == MIN_16)
//    {
//        var_out = MAX_16;
//    }
//    else
//    {
//        if (var1 < 0)
//        {
//            var_out = (Word16)-var1;
//        }
//        else
//        {
//            var_out = var1;
//        }
//    }
//
//    return (var_out);
//}


/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : shl                                                     |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Arithmetically shift the 16 bit input var1 left var2 positions.Zero fill|
 |   the var2 LSB of the result. If var2 is negative, arithmetically shift   |
 |   var1 right by -var2 with sign extension. Saturate the result in case of |
 |   underflows or overflows.                                                |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/

#if (!SHL_IS_INLINE)
Word16 shl (Word16 var1, Word16 var2)
{
    Word16 var_out;
    Word32 result;

    if (var2 < 0)
    {
        if (var2 < -16)
            var2 = -16;
        var_out = shr (var1, (Word16)-var2);
    }
    else
    {
        result = (Word32) var1 *((Word32) 1 << var2);

        if ((var2 > 15 && var1 != 0) || (result != (Word32) ((Word16) result)))
        {
            //Overflow = 1;
            var_out = (Word16)((var1 > 0) ? MAX_16 : MIN_16);
        }
        else
        {
            var_out = extract_l(result);
        }
    }

    return (var_out);
}
#endif
// end

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : shr                                                     |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Arithmetically shift the 16 bit input var1 right var2 positions with    |
 |   sign extension. If var2 is negative, arithmetically shift var1 left by  |
 |   -var2 with sign extension. Saturate the result in case of underflows or |
 |   overflows.                                                              |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/

#if (!SHR_IS_INLINE)
Word16 shr (Word16 var1, Word16 var2)
{
    Word16 var_out;

    if (var2 < 0)
    {
        if (var2 < -16)
            var2 = -16;
        var_out = shl (var1, (Word16)-var2);
    }
    else
    {
        if (var2 >= 15)
        {
            var_out = (Word16)((var1 < 0) ? -1 : 0);
        }
        else
        {
            if (var1 < 0)
            {
                var_out = (Word16)(~((~var1) >> var2));
            }
            else
            {
                var_out = (Word16)(var1 >> var2);
            }
        }
    }

    return (var_out);
}
#endif


/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : mult                                                    |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |    Performs the multiplication of var1 by var2 and gives a 16 bit result  |
 |    which is scaled i.e.:                                                  |
 |             mult(var1,var2) = extract_l(L_shr((var1 times var2),15)) and  |
 |             mult(-32768,-32768) = 32767.                                  |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/
#if (!MULT_IS_INLINE)
Word16 mult (Word16 var1, Word16 var2)
{
    Word16 var_out;
    Word32 L_product;

    L_product = (Word32) var1 *(Word32) var2;

    L_product = (L_product & (Word32) 0xffff8000L) >> 15;

    if (L_product & (Word32) 0x00010000L)
        L_product = L_product | (Word32) 0xffff0000L;

    var_out = saturate(L_product);

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_mult                                                  |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   L_mult is the 32 bit result of the multiplication of var1 times var2    |
 |   with one shift left i.e.:                                               |
 |        L_mult(var1,var2) = L_shl((var1 times var2),1) and                 |
 |        L_mult(-32768,-32768) = 2147483647.                                |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
 |___________________________________________________________________________|
*/

#if (!L_MULT_IS_INLINE)
Word32 L_mult(Word16 var1, Word16 var2)
{
    Word32 L_var_out;

    L_var_out = (Word32) var1 *(Word32) var2;

    if (L_var_out != (Word32) 0x40000000L)
    {
        L_var_out <<= 1;
    }
    else
    {
        L_var_out = MAX_32;
    }

    return (L_var_out);
}
#endif
// end

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : negate                                                  |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Negate var1 with saturation, saturate in the case where input is -32768:|
 |                negate(var1) = sub(0,var1).                                |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/
//Word16 negate (Word16 var1)
//{
//    Word16 var_out;
//
//    var_out = (Word16)((var1 == MIN_16) ? MAX_16 : -var1);
//
//    return (var_out);
//}


/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : extract_h                                               |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Return the 16 MSB of L_var1.                                            |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1                                                                 |
 |             32 bit long signed integer (Word32 ) whose value falls in the |
 |             range : 0x8000 0000 <= L_var1 <= 0x7fff ffff.                 |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/
#if (!EXTRACT_H_IS_INLINE)
Word16 extract_h (Word32 L_var1)
{
    Word16 var_out;

    var_out = (Word16) (L_var1 >> 16);

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : extract_l                                               |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Return the 16 LSB of L_var1.                                            |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1                                                                 |
 |             32 bit long signed integer (Word32 ) whose value falls in the |
 |             range : 0x8000 0000 <= L_var1 <= 0x7fff ffff.                 |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/
#if (!EXTRACT_L_IS_INLINE)
Word16 extract_l(Word32 L_var1)
{
    Word16 var_out;

    var_out = (Word16) L_var1;

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : round                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Round the lower 16 bits of the 32 bit input number into the MS 16 bits  |
 |   with saturation. Shift the resulting bits right by 16 and return the 16 |
 |   bit number:                                                             |
 |               round(L_var1) = extract_h(L_add(L_var1,32768))              |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1                                                                 |
 |             32 bit long signed integer (Word32 ) whose value falls in the |
 |             range : 0x8000 0000 <= L_var1 <= 0x7fff ffff.                 |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/

#if (!ROUND_IS_INLINE)
Word16 round16(Word32 L_var1)
{
    Word16 var_out;
    Word32 L_rounded;

    L_rounded = L_add (L_var1, (Word32) 0x00008000L);
    var_out = extract_h (L_rounded);

    return (var_out);
}
#endif
// end

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_mac                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Multiply var1 by var2 and shift the result left by 1. Add the 32 bit    |
 |   result to L_var3 with saturation, return a 32 bit result:               |
 |        L_mac(L_var3,var1,var2) = L_add(L_var3,L_mult(var1,var2)).         |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var3   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
 |___________________________________________________________________________|
*/
#if (!L_MSU_IS_INLINE)
Word32 L_mac (Word32 L_var3, Word16 var1, Word16 var2)
{
    Word32 L_var_out;
    Word32 L_product;

    L_product = L_mult(var1, var2);
    L_var_out = L_add (L_var3, L_product);

    return (L_var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_msu                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Multiply var1 by var2 and shift the result left by 1. Subtract the 32   |
 |   bit result to L_var3 with saturation, return a 32 bit result:           |
 |        L_msu(L_var3,var1,var2) = L_sub(L_var3,L_mult(var1,var2)).         |
 |                                                                           |
 |   Complexity weight : 1                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var3   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
 |___________________________________________________________________________|
*/

#if (!L_MSU_IS_INLINE)
Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2)
{
    Word32 L_var_out;
    Word32 L_product;

    L_product = L_mult(var1, var2);
    L_var_out = L_sub (L_var3, L_product);

    return (L_var_out);
}
#endif


/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_add                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   32 bits addition of the two 32 bits variables (L_var1+L_var2) with      |
 |   overflow control and saturation; the result is set at +2147483647 when  |
 |   overflow occurs or at -2147483648 when underflow occurs.                |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |    L_var2   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
 |___________________________________________________________________________|
*/
#if (!L_ADD_IS_INLINE)
Word32 L_add (Word32 L_var1, Word32 L_var2)
{
    Word32 L_var_out;

    L_var_out = L_var1 + L_var2;

    if (((L_var1 ^ L_var2) & MIN_32) == 0)
    {
        if ((L_var_out ^ L_var1) & MIN_32)
        {
            L_var_out = (L_var1 < 0) ? MIN_32 : MAX_32;
            //Overflow = 1;
        }
    }

    return (L_var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_sub                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   32 bits subtraction of the two 32 bits variables (L_var1-L_var2) with   |
 |   overflow control and saturation; the result is set at +2147483647 when  |
 |   overflow occurs or at -2147483648 when underflow occurs.                |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |    L_var2   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
 |___________________________________________________________________________|
*/
#if (!L_SUB_IS_INLINE)
Word32 L_sub(Word32 L_var1, Word32 L_var2)
{
    Word32 L_var_out;

    L_var_out = L_var1 - L_var2;

    if (((L_var1 ^ L_var2) & MIN_32) != 0)
    {
        if ((L_var_out ^ L_var1) & MIN_32)
        {
            L_var_out = (L_var1 < 0L) ? MIN_32 : MAX_32;
            //Overflow = 1;
        }
    }

    return (L_var_out);
}
#endif


/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_negate                                                |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Negate the 32 bit variable L_var1 with saturation; saturate in the case |
 |   where input is -2147483648 (0x8000 0000).                               |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
 |___________________________________________________________________________|
*/
//Word32 L_negate (Word32 L_var1)
//{
//    Word32 L_var_out;
//
//    L_var_out = (L_var1 == MIN_32) ? MAX_32 : -L_var1;
//
//    return (L_var_out);
//}


/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : mult_r                                                  |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Same as mult with rounding, i.e.:                                       |
 |     mult_r(var1,var2) = extract_l(L_shr(((var1 * var2) + 16384),15)) and  |
 |     mult_r(-32768,-32768) = 32767.                                        |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/
#if (!MULT_R_IS_INLINE)
Word16 mult_r (Word16 var1, Word16 var2)
{
    Word16 var_out;
    Word32 L_product_arr;

    L_product_arr = (Word32) var1 *(Word32) var2;       /* product */
    L_product_arr += (Word32) 0x00004000L;      /* round */
    L_product_arr &= (Word32) 0xffff8000L;
    L_product_arr >>= 15;       /* shift */

    if (L_product_arr & (Word32) 0x00010000L)   /* sign extend when necessary */
    {
        L_product_arr |= (Word32) 0xffff0000L;
    }
    var_out = saturate(L_product_arr);

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_shl                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Arithmetically shift the 32 bit input L_var1 left var2 positions. Zero  |
 |   fill the var2 LSB of the result. If var2 is negative, arithmetically    |
 |   shift L_var1 right by -var2 with sign extension. Saturate the result in |
 |   case of underflows or overflows.                                        |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
 |___________________________________________________________________________|
*/

#if (!L_SHL_IS_INLINE)
Word32 L_shl (Word32 L_var1, Word16 var2)
{
    Word32 L_var_out = 0L;

    if (var2 <= 0)
    {
        L_var1 = L_shr(L_var1, (Word16)-var2);
    }
    else
    {
        for (; var2 > 0; var2--)
        {
            if (L_var1 > (Word32) 0X3fffffffL)
            {
                return MAX_32;
            }
            else
            {
                if (L_var1 < (Word32) 0xc0000000L)
                {
                    return MIN_32;
                }
            }
            L_var1 <<= 1;
        }
    }
    return (L_var1);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_shr                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Arithmetically shift the 32 bit input L_var1 right var2 positions with  |
 |   sign extension. If var2 is negative, arithmetically shift L_var1 left   |
 |   by -var2 and zero fill the -var2 LSB of the result. Saturate the result |
 |   in case of underflows or overflows.                                     |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
 |___________________________________________________________________________|
*/

#if (!L_SHR_IS_INLINE)
Word32 L_shr (Word32 L_var1, Word16 var2)
{
    Word32 L_var_out;

    if (var2 < 0)
    {
        L_var_out = L_shl (L_var1, (Word16)-var2);
    }
    else
    {
        if (var2 >= 31)
        {
            L_var_out = (L_var1 < 0L) ? -1 : 0;
        }
        else
        {
            if (L_var1 < 0)
            {
                L_var_out = ~((~L_var1) >> var2);
            }
            else
            {
                L_var_out = L_var1 >> var2;
            }
        }
    }
    return (L_var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : shr_r                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Same as shr(var1,var2) but with rounding. Saturate the result in case of|
 |   underflows or overflows :                                               |
 |    - If var2 is greater than zero :                                       |
 |          if (sub(shl(shr(var1,var2),1),shr(var1,sub(var2,1))))            |
 |          is equal to zero                                                 |
 |                     then                                                  |
 |                     shr_r(var1,var2) = shr(var1,var2)                     |
 |                     else                                                  |
 |                     shr_r(var1,var2) = add(shr(var1,var2),1)              |
 |    - If var2 is less than or equal to zero :                              |
 |                     shr_r(var1,var2) = shr(var1,var2).                    |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/
#if (!SHR_R_IS_INLINE)
Word16 shr_r (Word16 var1, Word16 var2)
{
    Word16 var_out;

    if (var2 > 15)
    {
        var_out = 0;
    }
    else
    {
        var_out = shr (var1, var2);

        if (var2 > 0)
        {
            if ((var1 & ((Word16) 1 << (var2 - 1))) != 0)
            {
                var_out++;
            }
        }
    }

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : mac_r                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Multiply var1 by var2 and shift the result left by 1. Add the 32 bit    |
 |   result to L_var3 with saturation. Round the LS 16 bits of the result    |
 |   into the MS 16 bits with saturation and shift the result right by 16.   |
 |   Return a 16 bit result.                                                 |
 |            mac_r(L_var3,var1,var2) = round(L_mac(L_var3,var1,var2))       |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var3   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0x0000 8000 <= L_var_out <= 0x0000 7fff.              |
 |___________________________________________________________________________|
*/
#if (!MAC_R_IS_INLINE)
Word16 mac_r (Word32 L_var3, Word16 var1, Word16 var2)
{
    Word16 var_out;

    L_var3 = L_mac (L_var3, var1, var2);
    L_var3 = L_add (L_var3, (Word32) 0x00008000L);
    var_out = extract_h (L_var3);

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : msu_r                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Multiply var1 by var2 and shift the result left by 1. Subtract the 32   |
 |   bit result to L_var3 with saturation. Round the LS 16 bits of the res-  |
 |   ult into the MS 16 bits with saturation and shift the result right by   |
 |   16. Return a 16 bit result.                                             |
 |            msu_r(L_var3,var1,var2) = round(L_msu(L_var3,var1,var2))       |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var3   32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= L_var3 <= 0x7fff ffff.                 |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0x0000 8000 <= L_var_out <= 0x0000 7fff.              |
 |___________________________________________________________________________|
*/
#if (!MSU_R_IS_INLINE)
Word16 msu_r (Word32 L_var3, Word16 var1, Word16 var2)
{
    Word16 var_out;

    L_var3 = L_msu (L_var3, var1, var2);
    L_var3 = L_add (L_var3, (Word32) 0x00008000L);
    var_out = extract_h (L_var3);

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_deposit_h                                             |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Deposit the 16 bit var1 into the 16 MS bits of the 32 bit output. The   |
 |   16 LS bits of the output are zeroed.                                    |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= var_out <= 0x7fff 0000.                |
 |___________________________________________________________________________|
*/
//Word32 L_deposit_h (Word16 var1)
//{
//    Word32 L_var_out;
//
//    L_var_out = (Word32) var1 << 16;
//
//    return (L_var_out);
//}


/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_deposit_l                                             |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Deposit the 16 bit var1 into the 16 LS bits of the 32 bit output. The   |
 |   16 MS bits of the output are sign extended.                             |
 |                                                                           |
 |   Complexity weight : 2                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0xFFFF 8000 <= var_out <= 0x0000 7fff.                |
 |___________________________________________________________________________|
*/
//Word32 L_deposit_l (Word16 var1)
//{
//    Word32 L_var_out;
//
//    L_var_out = (Word32) var1;
//
//    return (L_var_out);
//}


/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_shr_r                                                 |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Same as L_shr(L_var1,var2) but with rounding. Saturate the result in    |
 |   case of underflows or overflows :                                       |
 |    - If var2 is greater than zero :                                       |
 |          if (L_sub(L_shl(L_shr(L_var1,var2),1),L_shr(L_var1,sub(var2,1))))|
 |          is equal to zero                                                 |
 |                     then                                                  |
 |                     L_shr_r(L_var1,var2) = L_shr(L_var1,var2)             |
 |                     else                                                  |
 |                     L_shr_r(L_var1,var2) = L_add(L_shr(L_var1,var2),1)    |
 |    - If var2 is less than or equal to zero :                              |
 |                     L_shr_r(L_var1,var2) = L_shr(L_var1,var2).            |
 |                                                                           |
 |   Complexity weight : 3                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1                                                                 |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= var1 <= 0x7fff ffff.                   |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= var_out <= 0x7fff ffff.                |
 |___________________________________________________________________________|
*/
#if (!L_SHR_R_IS_INLINE)
Word32 L_shr_r (Word32 L_var1, Word16 var2)
{
    Word32 L_var_out;

    if (var2 > 31)
    {
        L_var_out = 0;
    }
    else
    {
        L_var_out = L_shr (L_var1, var2);

        if (var2 > 0)
        {
            if ((L_var1 & ((Word32) 1 << (var2 - 1))) != 0)
            {
                L_var_out++;
            }
        }
    }

    return (L_var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : L_abs                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |    Absolute value of L_var1; Saturate in case where the input is          |
 |                                                               -214783648  |
 |                                                                           |
 |   Complexity weight : 3                                                   |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1                                                                 |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= var1 <= 0x7fff ffff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    L_var_out                                                              |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x0000 0000 <= var_out <= 0x7fff ffff.                |
 |___________________________________________________________________________|
*/
//Word32 L_abs (Word32 L_var1)
//{
//    Word32 L_var_out;
//
//    if (L_var1 == MIN_32)
//    {
//        L_var_out = MAX_32;
//    }
//    else
//    {
//        if (L_var1 < 0)
//        {
//            L_var_out = -L_var1;
//        }
//        else
//        {
//            L_var_out = L_var1;
//        }
//    }
//
//    return (L_var_out);
//}

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : norm_s                                                  |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Produces the number of left shift needed to normalize the 16 bit varia- |
 |   ble var1 for positive values on the interval with minimum of 16384 and  |
 |   maximum of 32767, and for negative values on the interval with minimum  |
 |   of -32768 and maximum of -16384; in order to normalize the result, the  |
 |   following operation must be done :                                      |
 |                    norm_var1 = shl(var1,norm_s(var1)).                    |
 |                                                                           |
 |   Complexity weight : 15                                                  |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0xffff 8000 <= var1 <= 0x0000 7fff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0x0000 0000 <= var_out <= 0x0000 000f.                |
 |___________________________________________________________________________|
*/

#if (!NORM_S_IS_INLINE)
Word16 norm_s (Word16 var1)
{
    Word16 var_out;

    if (var1 == 0)
    {
        var_out = 0;
    }
    else
    {
        if (var1 == -1)
        {
            var_out = 15;
        }
        else
        {
            if (var1 < 0)
            {
                var1 = (Word16)~var1;
            }
            for (var_out = 0; var1 < 0x4000; var_out++)
            {
                var1 <<= 1;
            }
        }
    }

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : div_s                                                   |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Produces a result which is the fractional integer division of var1  by  |
 |   var2; var1 and var2 must be positive and var2 must be greater or equal  |
 |   to var1; the result is positive (leading bit equal to 0) and truncated  |
 |   to 16 bits.                                                             |
 |   If var1 = var2 then div(var1,var2) = 32767.                             |
 |                                                                           |
 |   Complexity weight : 18                                                  |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    var1                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0x0000 0000 <= var1 <= var2 and var2 != 0.            |
 |                                                                           |
 |    var2                                                                   |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : var1 <= var2 <= 0x0000 7fff and var2 != 0.            |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0x0000 0000 <= var_out <= 0x0000 7fff.                |
 |             It's a Q15 value (point between b15 and b14).                 |
 |___________________________________________________________________________|
*/

#if (!DIV_S_IS_INLINE)
Word16 div_s (Word16 var1, Word16 var2)
{
    Word16 var_out = 0;
    Word16 iteration;
    Word32 L_num;
    Word32 L_denom;

    if (var1 == 0)
    {
        var_out = 0;
    }
    else
    {
        if (var1 == var2)
        {
            var_out = MAX_16;
        }
        else
        {
            L_num = L_deposit_l (var1);
            L_denom = L_deposit_l (var2);

            for (iteration = 0; iteration < 15; iteration++)
            {
                var_out <<= 1;
                L_num <<= 1;

                if (L_num >= L_denom)
                {
                    L_num = L_sub(L_num, L_denom);
                    var_out = add (var_out, 1);
                }
            }
        }
    }

    return (var_out);
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   Function Name : norm_l                                                  |
 |                                                                           |
 |   Purpose :                                                               |
 |                                                                           |
 |   Produces the number of left shifts needed to normalize the 32 bit varia-|
 |   ble L_var1 for positive values on the interval with minimum of          |
 |   1073741824 and maximum of 2147483647, and for negative values on the in-|
 |   terval with minimum of -2147483648 and maximum of -1073741824; in order |
 |   to normalize the result, the following operation must be done :         |
 |                   norm_L_var1 = L_shl(L_var1,norm_l(L_var1)).             |
 |                                                                           |
 |   Complexity weight : 30                                                  |
 |                                                                           |
 |   Inputs :                                                                |
 |                                                                           |
 |    L_var1                                                                 |
 |             32 bit long signed integer (Word32) whose value falls in the  |
 |             range : 0x8000 0000 <= var1 <= 0x7fff ffff.                   |
 |                                                                           |
 |   Outputs :                                                               |
 |                                                                           |
 |    none                                                                   |
 |                                                                           |
 |   Return Value :                                                          |
 |                                                                           |
 |    var_out                                                                |
 |             16 bit short signed integer (Word16) whose value falls in the |
 |             range : 0x0000 0000 <= var_out <= 0x0000 001f.                |
 |___________________________________________________________________________|
*/

#if (!NORM_L_IS_INLINE)
Word16 norm_l (Word32 L_var1)
{
    Word16 var_out;

    if (L_var1 == 0)
    {
        var_out = 0;
    }
    else
    {
        if (L_var1 == (Word32) 0xffffffffL)
        {
            var_out = 31;
        }
        else
        {
            if (L_var1 < 0)
            {
                L_var1 = ~L_var1;
            }
            for (var_out = 0; L_var1 < (Word32) 0x40000000L; var_out++)
            {
                L_var1 <<= 1;
            }
        }
    }

    return (var_out);
}
#endif



================================================
FILE: jni/basic_op/oper_32b.c
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		oper_32b.c

	Content:	  This file contains operations in double precision.

*******************************************************************************/

#include "typedef.h"
#include "basic_op.h"
#include "oper_32b.h"

/*****************************************************************************
 *                                                                           *
 *  Function L_Extract()                                                     *
 *                                                                           *
 *  Extract from a 32 bit integer two 16 bit DPF.                            *
 *                                                                           *
 *  Arguments:                                                               *
 *                                                                           *
 *   L_32      : 32 bit integer.                                             *
 *               0x8000 0000 <= L_32 <= 0x7fff ffff.                         *
 *   hi        : b16 to b31 of L_32                                          *
 *   lo        : (L_32 - hi<<16)>>1                                          *
 *****************************************************************************
*/

void L_Extract (Word32 L_32, Word16 *hi, Word16 *lo)
{
    *hi = extract_h (L_32);
    *lo = extract_l (L_msu (L_shr (L_32, 1), *hi, 16384));
    return;
}

/*****************************************************************************
 *                                                                           *
 *  Function L_Comp()                                                        *
 *                                                                           *
 *  Compose from two 16 bit DPF a 32 bit integer.                            *
 *                                                                           *
 *     L_32 = hi<<16 + lo<<1                                                 *
 *                                                                           *
 *  Arguments:                                                               *
 *                                                                           *
 *   hi        msb                                                           *
 *   lo        lsf (with sign)                                               *
 *                                                                           *
 *   Return Value :                                                          *
 *                                                                           *
 *             32 bit long signed integer (Word32) whose value falls in the  *
 *             range : 0x8000 0000 <= L_32 <= 0x7fff fff0.                   *
 *                                                                           *
 *****************************************************************************
*/

Word32 L_Comp (Word16 hi, Word16 lo)
{
    Word32 L_32;

    L_32 = L_deposit_h (hi);
    return (L_mac (L_32, lo, 1));       /* = hi<<16 + lo<<1 */
}

/*****************************************************************************
 * Function Mpy_32()                                                         *
 *                                                                           *
 *   Multiply two 32 bit integers (DPF). The result is divided by 2**31      *
 *                                                                           *
 *   L_32 = (hi1*hi2)<<1 + ( (hi1*lo2)>>15 + (lo1*hi2)>>15 )<<1              *
 *                                                                           *
 *   This operation can also be viewed as the multiplication of two Q31      *
 *   number and the result is also in Q31.                                   *
 *                                                                           *
 * Arguments:                                                                *
 *                                                                           *
 *  hi1         hi part of first number                                      *
 *  lo1         lo part of first number                                      *
 *  hi2         hi part of second number                                     *
 *  lo2         lo part of second number                                     *
 *                                                                           *
 *****************************************************************************
*/

Word32 Mpy_32 (Word16 hi1, Word16 lo1, Word16 hi2, Word16 lo2)
{
    Word32 L_32;

    L_32 = L_mult (hi1, hi2);
    L_32 = L_mac (L_32, mult (hi1, lo2), 1);
    L_32 = L_mac (L_32, mult (lo1, hi2), 1);

    return (L_32);
}

/*****************************************************************************
 * Function Mpy_32_16()                                                      *
 *                                                                           *
 *   Multiply a 16 bit integer by a 32 bit (DPF). The result is divided      *
 *   by 2**15                                                                *
 *                                                                           *
 *                                                                           *
 *   L_32 = (hi1*lo2)<<1 + ((lo1*lo2)>>15)<<1                                *
 *                                                                           *
 * Arguments:                                                                *
 *                                                                           *
 *  hi          hi part of 32 bit number.                                    *
 *  lo          lo part of 32 bit number.                                    *
 *  n           16 bit number.                                               *
 *                                                                           *
 *****************************************************************************
*/

Word32 Mpy_32_16 (Word16 hi, Word16 lo, Word16 n)
{
    Word32 L_32;

    L_32 = L_mult (hi, n);
    L_32 = L_mac (L_32, mult (lo, n), 1);

    return (L_32);
}

/*****************************************************************************
 *                                                                           *
 *   Function Name : Div_32                                                  *
 *                                                                           *
 *   Purpose :                                                               *
 *             Fractional integer division of two 32 bit numbers.            *
 *             L_num / L_denom.                                              *
 *             L_num and L_denom must be positive and L_num < L_denom.       *
 *             L_denom = denom_hi<<16 + denom_lo<<1                          *
 *             denom_hi is a normalize number.                               *
 *                                                                           *
 *   Inputs :                                                                *
 *                                                                           *
 *    L_num                                                                  *
 *             32 bit long signed integer (Word32) whose value falls in the  *
 *             range : 0x0000 0000 < L_num < L_denom                         *
 *                                                                           *
 *    L_denom = denom_hi<<16 + denom_lo<<1      (DPF)                        *
 *                                                                           *
 *       denom_hi                                                            *
 *             16 bit positive normalized integer whose value falls in the   *
 *             range : 0x4000 < hi < 0x7fff                                  *
 *       denom_lo                                                            *
 *             16 bit positive integer whose value falls in the              *
 *             range : 0 < lo < 0x7fff                                       *
 *                                                                           *
 *   Return Value :                                                          *
 *                                                                           *
 *    L_div                                                                  *
 *             32 bit long signed integer (Word32) whose value falls in the  *
 *             range : 0x0000 0000 <= L_div <= 0x7fff ffff.                  *
 *                                                                           *
 *  Algorithm:                                                               *
 *                                                                           *
 *  - find = 1/L_denom.                                                      *
 *      First approximation: approx = 1 / denom_hi                           *
 *      1/L_denom = approx * (2.0 - L_denom * approx )                       *
 *                                                                           *
 *  -  result = L_num * (1/L_denom)                                          *
 *****************************************************************************
*/

Word32 Div_32 (Word32 L_num, Word32 denom)
{
    Word16 approx;
    Word32 L_32;
    /* First approximation: 1 / L_denom = 1/denom_hi */

    approx = div_s ((Word16) 0x3fff, denom >> 16);

    /* 1/L_denom = approx * (2.0 - L_denom * approx) */

    L_32 = L_mpy_ls (denom, approx);

    L_32 = L_sub ((Word32) 0x7fffffffL, L_32);

	L_32 = L_mpy_ls (L_32, approx);
    /* L_num * (1/L_denom) */

	L_32 = MULHIGH(L_32, L_num);
    L_32 = L_shl (L_32, 3);

    return (L_32);
}

/*!

  \brief  calculates the log dualis times 4 of argument
          iLog4(x) = (Word32)(4 * log(value)/log(2.0))

  \return ilog4 value

*/
Word16 iLog4(Word32 value)
{
  Word16 iLog4;

  if(value != 0){
    Word32 tmp;
    Word16 tmp16;
    iLog4 = norm_l(value);
    tmp = (value << iLog4);
    tmp16 = round16(tmp);
    tmp = L_mult(tmp16, tmp16);
    tmp16 = round16(tmp);
    tmp = L_mult(tmp16, tmp16);
    tmp16 = round16(tmp);

    iLog4 = (-(iLog4 << 2) - norm_s(tmp16)) - 1;
  }
  else {
    iLog4 = -128; /* -(INT_BITS*4); */
  }

  return iLog4;
}

#define step(shift) \
    if ((0x40000000l >> shift) + root <= value)       \
    {                                                 \
        value -= (0x40000000l >> shift) + root;       \
        root = (root >> 1) | (0x40000000l >> shift);  \
    } else {                                          \
        root = root >> 1;                             \
    }

Word32 rsqrt(Word32 value,     /*!< Operand to square root (0.0 ... 1) */
             Word32 accuracy)  /*!< Number of valid bits that will be calculated */
{
    Word32 root = 0;
	Word32 scale;

	if(value < 0)
		return 0;

	scale = norm_l(value);
	if(scale & 1) scale--;

	value <<= scale;

	step( 0); step( 2); step( 4); step( 6);
    step( 8); step(10); step(12); step(14);
    step(16); step(18); step(20); step(22);
    step(24); step(26); step(28); step(30);

    scale >>= 1;
	if (root < value)
        ++root;

	root >>= scale;
    return root* 46334;
}

static const Word32 pow2Table[POW2_TABLE_SIZE] = {
0x7fffffff, 0x7fa765ad, 0x7f4f08ae, 0x7ef6e8da,
0x7e9f0606, 0x7e476009, 0x7deff6b6, 0x7d98c9e6,
0x7d41d96e, 0x7ceb2523, 0x7c94acde, 0x7c3e7073,
0x7be86fb9, 0x7b92aa88, 0x7b3d20b6, 0x7ae7d21a,
0x7a92be8b, 0x7a3de5df, 0x79e947ef, 0x7994e492,
0x7940bb9e, 0x78ecccec, 0x78991854, 0x78459dac,
0x77f25cce, 0x779f5591, 0x774c87cc, 0x76f9f359,
0x76a7980f, 0x765575c8, 0x76038c5b, 0x75b1dba2,
0x75606374, 0x750f23ab, 0x74be1c20, 0x746d4cac,
0x741cb528, 0x73cc556d, 0x737c2d55, 0x732c3cba,
0x72dc8374, 0x728d015d, 0x723db650, 0x71eea226,
0x719fc4b9, 0x71511de4, 0x7102ad80, 0x70b47368,
0x70666f76, 0x7018a185, 0x6fcb096f, 0x6f7da710,
0x6f307a41, 0x6ee382de, 0x6e96c0c3, 0x6e4a33c9,
0x6dfddbcc, 0x6db1b8a8, 0x6d65ca38, 0x6d1a1057,
0x6cce8ae1, 0x6c8339b2, 0x6c381ca6, 0x6bed3398,
0x6ba27e66, 0x6b57fce9, 0x6b0daeff, 0x6ac39485,
0x6a79ad56, 0x6a2ff94f, 0x69e6784d, 0x699d2a2c,
0x69540ec9, 0x690b2601, 0x68c26fb1, 0x6879ebb6,
0x683199ed, 0x67e97a34, 0x67a18c68, 0x6759d065,
0x6712460b, 0x66caed35, 0x6683c5c3, 0x663ccf92,
0x65f60a80, 0x65af766a, 0x6569132f, 0x6522e0ad,
0x64dcdec3, 0x64970d4f, 0x64516c2e, 0x640bfb41,
0x63c6ba64, 0x6381a978, 0x633cc85b, 0x62f816eb,
0x62b39509, 0x626f4292, 0x622b1f66, 0x61e72b65,
0x61a3666d, 0x615fd05f, 0x611c6919, 0x60d9307b,
0x60962665, 0x60534ab7, 0x60109d51, 0x5fce1e12,
0x5f8bccdb, 0x5f49a98c, 0x5f07b405, 0x5ec5ec26,
0x5e8451d0, 0x5e42e4e3, 0x5e01a540, 0x5dc092c7,
0x5d7fad59, 0x5d3ef4d7, 0x5cfe6923, 0x5cbe0a1c,
0x5c7dd7a4, 0x5c3dd19c, 0x5bfdf7e5, 0x5bbe4a61,
0x5b7ec8f2, 0x5b3f7377, 0x5b0049d4, 0x5ac14bea,
0x5a82799a, 0x5a43d2c6, 0x5a055751, 0x59c7071c,
0x5988e209, 0x594ae7fb, 0x590d18d3, 0x58cf7474,
0x5891fac1, 0x5854ab9b, 0x581786e6, 0x57da8c83,
0x579dbc57, 0x57611642, 0x57249a29, 0x56e847ef,
0x56ac1f75, 0x567020a0, 0x56344b52, 0x55f89f70,
0x55bd1cdb, 0x5581c378, 0x55469329, 0x550b8bd4,
0x54d0ad5b, 0x5495f7a1, 0x545b6a8b, 0x542105fd,
0x53e6c9db, 0x53acb607, 0x5372ca68, 0x533906e0,
0x52ff6b55, 0x52c5f7aa, 0x528cabc3, 0x52538786,
0x521a8ad7, 0x51e1b59a, 0x51a907b4, 0x5170810b,
0x51382182, 0x50ffe8fe, 0x50c7d765, 0x508fec9c,
0x50582888, 0x50208b0e, 0x4fe91413, 0x4fb1c37c,
0x4f7a9930, 0x4f439514, 0x4f0cb70c, 0x4ed5ff00,
0x4e9f6cd4, 0x4e69006e, 0x4e32b9b4, 0x4dfc988c,
0x4dc69cdd, 0x4d90c68b, 0x4d5b157e, 0x4d25899c,
0x4cf022ca, 0x4cbae0ef, 0x4c85c3f1, 0x4c50cbb8,
0x4c1bf829, 0x4be7492b, 0x4bb2bea5, 0x4b7e587d,
0x4b4a169c, 0x4b15f8e6, 0x4ae1ff43, 0x4aae299b,
0x4a7a77d5, 0x4a46e9d6, 0x4a137f88, 0x49e038d0,
0x49ad1598, 0x497a15c4, 0x4947393f, 0x49147fee,
0x48e1e9ba, 0x48af768a, 0x487d2646, 0x484af8d6,
0x4818ee22, 0x47e70611, 0x47b5408c, 0x47839d7b,
0x47521cc6, 0x4720be55, 0x46ef8210, 0x46be67e0,
0x468d6fae, 0x465c9961, 0x462be4e2, 0x45fb521a,
0x45cae0f2, 0x459a9152, 0x456a6323, 0x453a564d,
0x450a6abb, 0x44daa054, 0x44aaf702, 0x447b6ead,
0x444c0740, 0x441cc0a3, 0x43ed9ac0, 0x43be9580,
0x438fb0cb, 0x4360ec8d, 0x433248ae, 0x4303c517,
0x42d561b4, 0x42a71e6c, 0x4278fb2b, 0x424af7da,
0x421d1462, 0x41ef50ae, 0x41c1aca8, 0x41942839,
0x4166c34c, 0x41397dcc, 0x410c57a2, 0x40df50b8,
0x40b268fa, 0x4085a051, 0x4058f6a8, 0x402c6be9
};

/*!

  \brief calculates 2 ^ (x/y) for x<=0, y > 0, x <= 32768 * y

  avoids integer division

  \return
*/
Word32 pow2_xy(Word32 x, Word32 y)
{
  Word32 iPart;
  Word32 fPart;
  Word32 res;
  Word32 tmp, tmp2;
  Word32 shift, shift2;

  tmp2 = -x;
  iPart = tmp2 / y;
  fPart = tmp2 - iPart*y;
  iPart = min(iPart,INT_BITS-1);

  res = pow2Table[(POW2_TABLE_SIZE*fPart)/y] >> iPart;

  return(res);
}


================================================
FILE: jni/inc/aac_rom.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		aac_rom.h

	Content:	constant tables

*******************************************************************************/

#ifndef ROM_H
#define ROM_H

#include "config.h"
#include "psy_const.h"
#include "tns_param.h"

/*
  mdct
*/
extern const int ShortWindowSine[FRAME_LEN_SHORT/2];
extern const int LongWindowKBD[FRAME_LEN_LONG/2];

extern const unsigned char bitrevTab[17 + 129];
extern const int cossintab[128 + 1024];

#if defined (ARMV5E) && !defined (ARMV7Neon)
extern const int twidTab64[(4*6 + 16*6)/2];
extern const int twidTab512[(8*6 + 32*6 + 128*6)/2];
#else
extern const int twidTab64[4*6 + 16*6];
extern const int twidTab512[8*6 + 32*6 + 128*6];
#endif

/*
  form factor
*/
extern const Word32 formfac_sqrttable[96];

/*
  quantizer
*/
extern const Word32 mTab_3_4[512];
extern const Word32 mTab_4_3[512];
/*! $2^{-\frac{n}{16}}$ table */
extern const Word16 pow2tominusNover16[17] ;

extern Word32 specExpMantTableComb_enc[4][14];
extern const UWord8 specExpTableComb_enc[4][14];

extern const Word16 quantBorders[4][4];
//extern const Word16 quantRecon[3][4];
extern const Word16 quantRecon[4][3];

/*
  huffman
*/
extern const UWord16 huff_ltab1_2[3][3][3][3];
extern const UWord16 huff_ltab3_4[3][3][3][3];
extern const UWord16 huff_ltab5_6[9][9];
extern const UWord16 huff_ltab7_8[8][8];
extern const UWord16 huff_ltab9_10[13][13];
extern const UWord16 huff_ltab11[17][17];
extern const UWord16 huff_ltabscf[121];
extern const UWord16 huff_ctab1[3][3][3][3];
extern const UWord16 huff_ctab2[3][3][3][3];
extern const UWord16 huff_ctab3[3][3][3][3];
extern const UWord16 huff_ctab4[3][3][3][3];
extern const UWord16 huff_ctab5[9][9];
extern const UWord16 huff_ctab6[9][9];
extern const UWord16 huff_ctab7[8][8];
extern const UWord16 huff_ctab8[8][8];
extern const UWord16 huff_ctab9[13][13];
extern const UWord16 huff_ctab10[13][13];
extern const UWord16 huff_ctab11[17][17];
extern const UWord32 huff_ctabscf[121];



/*
  misc
*/
extern const int sampRateTab[NUM_SAMPLE_RATES];
extern const int BandwithCoefTab[8][NUM_SAMPLE_RATES];
extern const int rates[8];
extern const UWord8 sfBandTotalShort[NUM_SAMPLE_RATES];
extern const UWord8 sfBandTotalLong[NUM_SAMPLE_RATES];
extern const int sfBandTabShortOffset[NUM_SAMPLE_RATES];
extern const short sfBandTabShort[76];
extern const int sfBandTabLongOffset[NUM_SAMPLE_RATES];
extern const short sfBandTabLong[325];

extern const Word32 m_log2_table[INT_BITS];

/*
  TNS
*/
extern const Word32 tnsCoeff3[8];
extern const Word32 tnsCoeff3Borders[8];
extern const Word32 tnsCoeff4[16];
extern const Word32 tnsCoeff4Borders[16];
extern const Word32 invSBF[24];
extern const Word16 sideInfoTabLong[MAX_SFB_LONG + 1];
extern const Word16 sideInfoTabShort[MAX_SFB_SHORT + 1];
#endif


================================================
FILE: jni/inc/aacenc_core.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		aacenc_core.h

	Content:	aac encoder interface functions

*******************************************************************************/

#ifndef _aacenc_core_h_
#define _aacenc_core_h_


#include "typedef.h"
#include "config.h"
#include "bitenc.h"

#include "psy_configuration.h"
#include "psy_main.h"
#include "qc_main.h"
#include "psy_main.h"
/*-------------------------- defines --------------------------------------*/


/*-------------------- structure definitions ------------------------------*/
typedef  struct {
  Word32   sampleRate;            /* audio file sample rate */
  Word32   bitRate;               /* encoder bit rate in bits/sec */
  Word16   nChannelsIn;           /* number of channels on input (1,2) */
  Word16   nChannelsOut;          /* number of channels on output (1,2) */
  Word16   bandWidth;             /* targeted audio bandwidth in Hz */
  Word16   adtsUsed;			  /* whether write adts header */
} AACENC_CONFIG;


typedef struct {

  AACENC_CONFIG config;     /* Word16 size: 8 */

  ELEMENT_INFO elInfo;      /* Word16 size: 4 */

  QC_STATE qcKernel;        /* Word16 size: 6 + 5(PADDING) + 7(ELEMENT_BITS) + 54(ADJ_THR_STATE) = 72 */
  QC_OUT   qcOut;           /* Word16 size: MAX_CHANNELS*920(QC_OUT_CHANNEL) + 5(QC_OUT_ELEMENT) + 7 = 932 / 1852 */

  PSY_OUT    psyOut;        /* Word16 size: MAX_CHANNELS*186 + 2 = 188 / 374 */
  PSY_KERNEL psyKernel;     /* Word16 size:  2587 / 4491 */

  struct BITSTREAMENCODER_INIT bseInit; /* Word16 size: 6 */
  struct BIT_BUF  bitStream;            /* Word16 size: 8 */
  HANDLE_BIT_BUF  hBitStream;
  int			  initOK;

  short			*intbuf;
  short			*encbuf;
  short			*inbuf;
  int			enclen;
  int			inlen;
  int			intlen;
  int			uselength;

  void			*hCheck;
  VO_MEM_OPERATOR *voMemop;
  VO_MEM_OPERATOR voMemoprator;

}AAC_ENCODER; /* Word16 size: 3809 / 6851 */

/*-----------------------------------------------------------------------------

functionname: AacInitDefaultConfig
description:  gives reasonable default configuration
returns:      ---

------------------------------------------------------------------------------*/
void AacInitDefaultConfig(AACENC_CONFIG *config);

/*---------------------------------------------------------------------------

functionname:AacEncOpen
description: allocate and initialize a new encoder instance
returns:     AACENC_OK if success

---------------------------------------------------------------------------*/

Word16  AacEncOpen (AAC_ENCODER				*hAacEnc,       /* pointer to an encoder handle, initialized on return */
                    const  AACENC_CONFIG     config);        /* pre-initialized config struct */

Word16 AacEncEncode(AAC_ENCODER		   *hAacEnc,
                    Word16             *timeSignal,
                    const UWord8       *ancBytes,      /*!< pointer to ancillary data bytes */
                    Word16             *numAncBytes,   /*!< number of ancillary Data Bytes, send as fill element  */
                    UWord8             *outBytes,      /*!< pointer to output buffer            */
                    VO_U32             *numOutBytes    /*!< number of bytes in output buffer */
                    );

/*---------------------------------------------------------------------------

functionname:AacEncClose
description: deallocate an encoder instance

---------------------------------------------------------------------------*/

void AacEncClose (AAC_ENCODER* hAacEnc, VO_MEM_OPERATOR *pMemOP); /* an encoder handle */

#endif /* _aacenc_h_ */


================================================
FILE: jni/inc/adj_thr.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		adj_thr.h

	Content:	Threshold compensation function

*******************************************************************************/

#ifndef __ADJ_THR_H
#define __ADJ_THR_H

#include "adj_thr_data.h"
#include "qc_data.h"
#include "interface.h"

Word16 bits2pe(const Word16 bits);

Word32 AdjThrNew(ADJ_THR_STATE** phAdjThr,
                 Word32 nElements);

void AdjThrDelete(ADJ_THR_STATE *hAdjThr);

void AdjThrInit(ADJ_THR_STATE *hAdjThr,
                const Word32 peMean,
                Word32 chBitrate);

void AdjustThresholds(ADJ_THR_STATE *adjThrState,
                      ATS_ELEMENT* AdjThrStateElement,
                      PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
                      PSY_OUT_ELEMENT *psyOutElement,
                      Word16 *chBitDistribution,
                      Word16 logSfbEnergy[MAX_CHANNELS][MAX_GROUPED_SFB],
                      Word16 sfbNRelevantLines[MAX_CHANNELS][MAX_GROUPED_SFB],
                      QC_OUT_ELEMENT* qcOE,
					  ELEMENT_BITS* elBits,
					  const Word16 nChannels,
                      const Word16 maxBitFac);

void AdjThrUpdate(ATS_ELEMENT *AdjThrStateElement,
                  const Word16 dynBitsUsed);


#endif


================================================
FILE: jni/inc/adj_thr_data.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		adj_thr_data.h

	Content:	Threshold compensation parameter

*******************************************************************************/

#ifndef __ADJ_THR_DATA_H
#define __ADJ_THR_DATA_H

#include "typedef.h"
#include "psy_const.h"
#include "line_pe.h"

typedef struct {
   Word16 clipSaveLow, clipSaveHigh;
   Word16 minBitSave, maxBitSave;
   Word16 clipSpendLow, clipSpendHigh;
   Word16 minBitSpend, maxBitSpend;
} BRES_PARAM;

typedef struct {
   UWord8 modifyMinSnr;
   Word16 startSfbL, startSfbS;
} AH_PARAM;

typedef struct {
  Word32 maxRed;
  Word32 startRatio, maxRatio;
  Word32 redRatioFac;
  Word32 redOffs;
} MINSNR_ADAPT_PARAM;

typedef struct {
  /* parameters for bitreservoir control */
  Word16 peMin, peMax;
  /* constant offset to pe               */
  Word16  peOffset;
  /* avoid hole parameters               */
  AH_PARAM ahParam;
  /* paramters for adaptation of minSnr */
  MINSNR_ADAPT_PARAM minSnrAdaptParam;
  /* values for correction of pe */
  Word16 peLast;
  Word16 dynBitsLast;
  Word16 peCorrectionFactor;
} ATS_ELEMENT;

typedef struct {
  BRES_PARAM   bresParamLong, bresParamShort; /* Word16 size: 2*8 */
  ATS_ELEMENT  adjThrStateElem;               /* Word16 size: 19 */
} ADJ_THR_STATE;

#endif


================================================
FILE: jni/inc/band_nrg.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		band_nrg.h

	Content:	Band/Line energy calculations functions

*******************************************************************************/


#ifndef _BAND_NRG_H
#define _BAND_NRG_H

#include "typedef.h"


void CalcBandEnergy(const Word32 *mdctSpectrum,
                    const Word16 *bandOffset,
                    const Word16  numBands,
                    Word32       *bandEnergy,
                    Word32       *bandEnergySum);


void CalcBandEnergyMS(const Word32 *mdctSpectrumLeft,
                      const Word32 *mdctSpectrumRight,
                      const Word16 *bandOffset,
                      const Word16  numBands,
                      Word32       *bandEnergyMid,
                      Word32       *bandEnergyMidSum,
                      Word32       *bandEnergySide,
                      Word32       *bandEnergySideSum);

#endif


================================================
FILE: jni/inc/basic_op.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		basicop2.h

	Content:	Constants , Globals and Basic arithmetic operators.

*******************************************************************************/

#ifndef __BASIC_OP_H
#define __BASIC_OP_H

#include "typedef.h"

#define MAX_32 (Word32)0x7fffffffL
#define MIN_32 (Word32)0x80000000L

#define MAX_16 (Word16)0x7fff
#define MIN_16 (Word16)0x8000
#define ABS(a)	((a) >= 0) ? (a) : (-(a))

/* Short abs,           1   */
#define abs_s(x)       (((x) != MIN_16) ? (((x) >= 0) ? (x) : (-(x))) : MAX_16)

/* 16 bit var1 -> MSB,     2 */
#define L_deposit_h(x) (((Word32)(x)) << 16)


/* 16 bit var1 -> LSB,     2 */
#define L_deposit_l(x) ((Word32)(x))


/* Long abs,              3  */
#define L_abs(x) (((x) != MIN_32) ? (((x) >= 0) ? (x) : (-(x))) : MAX_32)


/* Short negate,        1   */
#define negate(var1) (((var1) == MIN_16) ? MAX_16 : (-(var1)))


/* Long negate,     2 */
#define L_negate(L_var1) (((L_var1) == (MIN_32)) ? (MAX_32) : (-(L_var1)))


#define MULHIGH(A,B) (int)(((Word64)(A)*(Word64)(B)) >> 32)
#define fixmul(a, b) (int)((((Word64)(a)*(Word64)(b)) >> 32) << 1)


#if  (SATRUATE_IS_INLINE)
__inline Word32 saturate(Word32 L_var1);
#else
Word16 saturate(Word32 L_var1);
#endif

/* Short shift left,    1   */
#if (SHL_IS_INLINE)
__inline Word32 shl (Word32 var1, Word32 var2);
#else
Word16 shl (Word16 var1, Word16 var2);
#endif

/* Short shift right,   1   */
#if (SHR_IS_INLINE)
__inline Word32 shr (Word32 var1, Word32 var2);
#else
Word16 shr (Word16 var1, Word16 var2);
#endif

#if (L_MULT_IS_INLINE)
__inline Word32 L_mult(Word32 var1, Word32 var2);
#else
Word32 L_mult(Word16 var1, Word16 var2);
#endif

/* Msu,  1  */
#if (L_MSU_IS_INLINE)
__inline Word32 L_msu (Word32 L_var3, Word32 var1, Word32 var2);
#else
Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2);
#endif

/* Long sub,        2 */
#if (L_SUB_IS_INLINE)
__inline Word32 L_sub(Word32 L_var1, Word32 L_var2);
#else
Word32 L_sub(Word32 L_var1, Word32 L_var2);
#endif

/* Long shift left, 2 */
#if (L_SHL_IS_INLINE)
__inline Word32 L_shl (Word32 L_var1, Word32 var2);
#else
Word32 L_shl (Word32 L_var1, Word16 var2);
#endif

/* Long shift right, 2*/
#if (L_SHR_IS_INLINE)
__inline Word32 L_shr (Word32 L_var1, Word32 var2);
#else
Word32 L_shr (Word32 L_var1, Word16 var2);
#endif

/* Short add,           1   */
#if (ADD_IS_INLINE)
__inline Word32 add (Word32 var1, Word32 var2);
#else
Word16 add (Word16 var1, Word16 var2);
#endif

/* Short sub,           1   */
#if (SUB_IS_INLINE)
__inline Word32 sub(Word32 var1, Word32 var2);
#else
Word16 sub(Word16 var1, Word16 var2);
#endif

/* Short division,       18  */
#if (DIV_S_IS_INLINE)
__inline Word32 div_s (Word32 var1, Word32 var2);
#else
Word16 div_s (Word16 var1, Word16 var2);
#endif

/* Short mult,          1   */
#if (MULT_IS_INLINE)
__inline Word32 mult (Word32 var1, Word32 var2);
#else
Word16 mult (Word16 var1, Word16 var2);
#endif

/* Short norm,           15  */
#if (NORM_S_IS_INLINE)
__inline Word32 norm_s (Word32 var1);
#else
Word16 norm_s (Word16 var1);
#endif

/* Long norm,            30  */
#if (NORM_L_IS_INLINE)
__inline Word32 norm_l (Word32 L_var1);
#else
Word16 norm_l (Word32 L_var1);
#endif

/* Round,               1   */
#if (ROUND_IS_INLINE)
__inline Word32 round16(Word32 L_var1);
#else
Word16 round16(Word32 L_var1);
#endif

/* Mac,  1  */
#if (L_MAC_IS_INLINE)
__inline Word32 L_mac (Word32 L_var3, Word32 var1, Word32 var2);
#else
Word32 L_mac (Word32 L_var3, Word16 var1, Word16 var2);
#endif

#if (L_ADD_IS_INLINE)
__inline Word32 L_add (Word32 L_var1, Word32 L_var2);
#else
Word32 L_add (Word32 L_var1, Word32 L_var2);
#endif

/* Extract high,        1   */
#if (EXTRACT_H_IS_INLINE)
__inline Word32 extract_h (Word32 L_var1);
#else
Word16 extract_h (Word32 L_var1);
#endif

/* Extract low,         1   */
#if (EXTRACT_L_IS_INLINE)
__inline Word32 extract_l(Word32 L_var1);
#else
Word16 extract_l(Word32 L_var1);
#endif

/* Mult with round, 2 */
#if (MULT_R_IS_INLINE)
__inline Word32 mult_r(Word32 var1, Word32 var2);
#else
Word16 mult_r(Word16 var1, Word16 var2);
#endif

/* Shift right with round, 2           */
#if (SHR_R_IS_INLINE)
__inline Word32 shr_r (Word32 var1, Word32 var2);
#else
Word16 shr_r (Word16 var1, Word16 var2);
#endif

/* Mac with rounding,2 */
#if (MAC_R_IS_INLINE)
__inline Word32 mac_r (Word32 L_var3, Word32 var1, Word32 var2);
#else
Word16 mac_r (Word32 L_var3, Word16 var1, Word16 var2);
#endif

/* Msu with rounding,2 */
#if (MSU_R_IS_INLINE)
__inline Word32 msu_r (Word32 L_var3, Word32 var1, Word32 var2);
#else
Word16 msu_r (Word32 L_var3, Word16 var1, Word16 var2);
#endif

/* Long shift right with round,  3             */
#if (L_SHR_R_IS_INLINE)
__inline Word32 L_shr_r (Word32 L_var1, Word32 var2);
#else
Word32 L_shr_r (Word32 L_var1, Word16 var2);
#endif

#if ARMV4_INASM
__inline Word32 ASM_L_shr(Word32 L_var1, Word32 var2)
{
	return L_var1 >> var2;
}

__inline Word32 ASM_L_shl(Word32 L_var1, Word32 var2)
{
	Word32 result;
	asm (
		"MOV	%[result], %[L_var1], ASL %[var2] \n"
		"TEQ	%[L_var1], %[result], ASR %[var2]\n"
		"EORNE  %[result], %[mask], %[L_var1], ASR #31\n"
		:[result]"=&r"(result)
		:[L_var1]"r"(L_var1), [var2]"r"(var2), [mask]"r"(0x7fffffff)
		);
	return result;
}

__inline Word32 ASM_shr(Word32 L_var1, Word32 var2)
{
	Word32 result;
	asm (
		"CMP	%[var2], #15\n"
		"MOVLT	%[result], %[L_var1], ASR %[var2]\n"
		"MOVGE	%[result], %[L_var1], ASR #15\n"
		:[result]"=r"(result)
		:[L_var1]"r"(L_var1), [var2]"r"(var2)
		);
	return result;
}

__inline Word32 ASM_shl(Word32 L_var1, Word32 var2)
{
#if ARMV6_SAT
	Word32 result;
	asm (
		"CMP	%[var2], #16\n"
		"MOVLT  %[result], %[L_var1], ASL %[var2]\n"
		"MOVGE  %[result], %[L_var1], ASL #16\n"
		"SSAT   %[result], #16, %[result]\n"
		:[result]"=r"(result)
		:[L_var1]"r"(L_var1), [var2]"r"(var2)
		);
	return result;
#else
	Word32 result;
	Word32 tmp;
	asm (
		"CMP	%[var2], #16\n"
		"MOVLT  %[result], %[L_var1], ASL %[var2]\n"
		"MOVGE  %[result], %[L_var1], ASL #16\n"
        "MOV    %[tmp], %[result], ASR #15\n"
        "TEQ    %[tmp], %[result], ASR #31 \n"
        "EORNE  %[result], %[mask], %[result],ASR #31"
		:[result]"=&r"(result), [tmp]"=&r"(tmp)
		:[L_var1]"r"(L_var1), [var2]"r"(var2), [mask]"r"(0x7fff)
		);
	return result;
#endif
}
#endif

/*___________________________________________________________________________
 |                                                                           |
 |   definitions for inline basic arithmetic operators                       |
 |___________________________________________________________________________|
*/
#if (SATRUATE_IS_INLINE)
__inline Word32 saturate(Word32 L_var1)
{
#if ARMV6_SAT
    Word32 result;
	asm (
		"SSAT %[result], #16, %[L_var1]"
		: [result]"=r"(result)
		: [L_var1]"r"(L_var1)
		);
	return result;
#elif ARMV5TE_SAT
	Word32 result;
	Word32 tmp;
	asm volatile (
		"MOV	%[tmp], %[L_var1],ASR#15\n"
		"TEQ	%[tmp], %[L_var1],ASR#31\n"
		"EORNE	%[result], %[mask],%[L_var1],ASR#31\n"
		"MOVEQ	%[result], %[L_var1]\n"
		:[result]"=&r"(result), [tmp]"=&r"(tmp)
		:[L_var1]"r"(L_var1), [mask]"r"(0x7fff)
	);

	return result;
#else
    Word32 var_out;

    //var_out = (L_var1 > (Word32)0X00007fffL) ? (MAX_16) : ((L_var1 < (Word32)0xffff8000L) ? (MIN_16) : ((Word16)L_var1));

    if (L_var1 > 0X00007fffL)
    {
        var_out = MAX_16;
    }
    else if (L_var1 < (Word32) 0xffff8000L)
    {
        var_out = MIN_16;
    }
    else
    {
        var_out = extract_l(L_var1);
    }

    return (var_out);
#endif
}
#endif

/* Short shift left,    1   */
#if (SHL_IS_INLINE)
__inline Word32 shl (Word32 var1, Word32 var2)
{
#if ARMV5TE_SHL
	if(var2>=0)
	{
		return ASM_shl( var1, var2);
	}
	else
	{
		return ASM_shr( var1, -var2);
	}
#else
    Word32 var_out;
    Word32 result;

    if (var2 < 0)
    {
        var_out = shr (var1, (Word16)-var2);
    }
    else
    {
        result = (Word32) var1 *((Word32) 1 << var2);

        if ((var2 > 15 && var1 != 0) || (result != (Word32) ((Word16) result)))
        {
            var_out = (Word16)((var1 > 0) ? MAX_16 : MIN_16);
        }
        else
        {
            var_out = extract_l(result);
        }
    }
    return (var_out);
#endif
}
#endif

/* Short shift right,   1   */
#if (SHR_IS_INLINE)
__inline Word32 shr (Word32 var1, Word32 var2)
{
#if ARMV5TE_SHR
	if(var2>=0)
	{
		return  ASM_shr( var1, var2);
	}
	else
	{
		return  ASM_shl( var1, -var2);
	}
#else
    Word32 var_out;

    if (var2 < 0)
    {
        var_out = shl (var1, (Word16)-var2);
    }
    else
    {
        if (var2 >= 15)
        {
            var_out = (Word16)((var1 < 0) ? -1 : 0);
        }
        else
        {
            if (var1 < 0)
            {
                var_out = (Word16)(~((~var1) >> var2));
            }
            else
            {
                var_out = (Word16)(var1 >> var2);
            }
        }
    }

    return (var_out);
#endif
}
#endif


#if (L_MULT_IS_INLINE)
__inline Word32 L_mult(Word32 var1, Word32 var2)
{
#if ARMV5TE_L_MULT
	Word32 result;
	asm (
		"SMULBB %[result], %[var1], %[var2] \n"
		"QADD %[result], %[result], %[result] \n"
		:[result]"=r"(result)
		:[var1]"r"(var1), [var2]"r"(var2)
		);
	return result;
#else
    Word32 L_var_out;

    L_var_out = (Word32) var1 *(Word32) var2;

    if (L_var_out != (Word32) 0x40000000L)
    {
        L_var_out <<= 1;
    }
    else
    {
        L_var_out = MAX_32;
    }
    return (L_var_out);
#endif
}
#endif

#if (L_MSU_IS_INLINE)
__inline Word32 L_msu (Word32 L_var3, Word32 var1, Word32 var2)
{
#if ARMV5TE_L_MSU
	Word32 result;
	asm (
		"SMULBB %[result], %[var1], %[var2] \n"
		"QDSUB %[result], %[L_var3], %[result]\n"
		:[result]"=&r"(result)
		:[L_var3]"r"(L_var3), [var1]"r"(var1), [var2]"r"(var2)
		);
	return result;
#else
    Word32 L_var_out;
    Word32 L_product;

    L_product = L_mult(var1, var2);
    L_var_out = L_sub(L_var3, L_product);
    return (L_var_out);
#endif
}
#endif

#if (L_SUB_IS_INLINE)
__inline Word32 L_sub(Word32 L_var1, Word32 L_var2)
{
#if ARMV5TE_L_SUB
	Word32 result;
	asm (
		"QSUB %[result], %[L_var1], %[L_var2]\n"
		:[result]"=r"(result)
		:[L_var1]"r"(L_var1), [L_var2]"r"(L_var2)
		);
	return result;
#else
    Word32 L_var_out;

    L_var_out = L_var1 - L_var2;

    if (((L_var1 ^ L_var2) & MIN_32) != 0)
    {
        if ((L_var_out ^ L_var1) & MIN_32)
        {
            L_var_out = (L_var1 < 0L) ? MIN_32 : MAX_32;
        }
    }

    return (L_var_out);
#endif
}
#endif

#if (L_SHL_IS_INLINE)
__inline Word32 L_shl(Word32 L_var1, Word32 var2)
{
#if ARMV5TE_L_SHL
    if(var2>=0)
    {
        return  ASM_L_shl( L_var1, var2);
    }
    else
    {
        return  ASM_L_shr( L_var1, -var2);
    }
#else
    Word32 L_var_out = 0L;

    if (var2 <= 0)
    {
        L_var1 = L_shr(L_var1, (Word16)-var2);
    }
    else
    {
        for (; var2 > 0; var2--)
        {
            if (L_var1 > (Word32) 0X3fffffffL)
            {
                return MAX_32;
            }
            else
            {
                if (L_var1 < (Word32) 0xc0000000L)
                {
                    return MIN_32;
                }
            }
            L_var1 <<= 1;
            L_var_out = L_var1;
        }
    }
    return (L_var1);
#endif
}
#endif

#if (L_SHR_IS_INLINE)
__inline Word32 L_shr (Word32 L_var1, Word32 var2)
{
#if ARMV5TE_L_SHR
	if(var2>=0)
	{
		return ASM_L_shr( L_var1, var2);
	}
	else
	{
		return ASM_L_shl( L_var1, -var2);
	}
#else
    Word32 L_var_out;

    if (var2 < 0)
    {
        L_var_out = L_shl (L_var1, (Word16)-var2);
    }
    else
    {
        if (var2 >= 31)
        {
            L_var_out = (L_var1 < 0L) ? -1 : 0;
        }
        else
        {
            if (L_var1 < 0)
            {
                L_var_out = ~((~L_var1) >> var2);
            }
            else
            {
                L_var_out = L_var1 >> var2;
            }
        }
    }
    return (L_var_out);
#endif
}
#endif

/* Short add,           1   */
#if (ADD_IS_INLINE)
__inline Word32 add (Word32 var1, Word32 var2)
{
#if ARMV5TE_ADD
	Word32 result;
	Word32 tmp;
	asm (
		"ADD  %[result], %[var1], %[var2] \n"
		"MOV  %[tmp], %[result], ASR #15 \n"
		"TEQ  %[tmp], %[result], ASR #31 \n"
		"EORNE %[result], %[mask], %[result], ASR #31"
		:[result]"=&r"(result), [tmp]"=&r"(tmp)
		:[var1]"r"(var1), [var2]"r"(var2), [mask]"r"(0x7fff)
		);
	return result;
#else
    Word32 var_out;
    Word32 L_sum;

    L_sum = (Word32) var1 + var2;
    var_out = saturate(L_sum);

    return (var_out);
#endif
}
#endif

/* Short sub,           1   */
#if (SUB_IS_INLINE)
__inline Word32 sub(Word32 var1, Word32 var2)
{
#if ARMV5TE_SUB
	Word32 result;
	Word32 tmp;
	asm (
		"SUB   %[result], %[var1], %[var2] \n"
		"MOV   %[tmp], %[var1], ASR #15 \n"
		"TEQ   %[tmp], %[var1], ASR #31 \n"
		"EORNE %[result], %[mask], %[result], ASR #31 \n"
		:[result]"=&r"(result), [tmp]"=&r"(tmp)
		:[var1]"r"(var1), [var2]"r"(var2), [mask]"r"(0x7fff)
		);
	return result;
#else
    Word32 var_out;
    Word32 L_diff;

    L_diff = (Word32) var1 - var2;
    var_out = saturate(L_diff);

    return (var_out);
#endif
}
#endif

/* Short division,       18  */
#if (DIV_S_IS_INLINE)
__inline Word32 div_s (Word32 var1, Word32 var2)
{
    Word32 var_out = 0;
    Word32 iteration;
    Word32 L_num;
    Word32 L_denom;

    var_out = MAX_16;
    if (var1!= var2)//var1!= var2
    {
    	var_out = 0;
    	L_num = (Word32) var1;

    	L_denom = (Word32) var2;

		//return (L_num<<15)/var2;

    	for (iteration = 0; iteration < 15; iteration++)
    	{
    		var_out <<= 1;
    		L_num <<= 1;

    		if (L_num >= L_denom)
    		{
    			L_num -= L_denom;
    			var_out++;
    		}
    	}
    }
    return (var_out);
}
#endif

/* Short mult,          1   */
#if (MULT_IS_INLINE)
__inline Word32 mult (Word32 var1, Word32 var2)
{
#if ARMV5TE_MULT && ARMV6_SAT
	Word32 result;
	asm (
		"SMULBB %[result], %[var1], %[var2] \n"
		"SSAT   %[result], #16, %[result], ASR #15 \n"
		:[result]"=r"(result)
		:[var1]"r"(var1), [var2]"r"(var2)
		);
	return result;
#elif ARMV5TE_MULT
	Word32 result, tmp;
	asm (
		"SMULBB %[tmp], %[var1], %[var2] \n"
		"MOV	%[result], %[tmp], ASR #15\n"
		"MOV	%[tmp], %[result], ASR #15\n"
		"TEQ	%[tmp], %[result], ASR #31\n"
		"EORNE  %[result], %[mask], %[result], ASR #31 \n"
		:[result]"=&r"(result), [tmp]"=&r"(tmp)
		:[var1]"r"(var1), [var2]"r"(var2), [mask]"r"(0x7fff)
		);
	return result;
#else
    Word32 var_out;
    Word32 L_product;

    L_product = (Word32) var1 *(Word32) var2;
    L_product = (L_product & (Word32) 0xffff8000L) >> 15;
    if (L_product & (Word32) 0x00010000L)
        L_product = L_product | (Word32) 0xffff0000L;
    var_out = saturate(L_product);

    return (var_out);
#endif
}
#endif


/* Short norm,           15  */
#if (NORM_S_IS_INLINE)
__inline Word32 norm_s (Word32 var1)
{
#if ARMV5TE_NORM_S
	Word32 result;
	Word32 tmp;
	asm (
		"RSBS  %[tmp], %[var1], #0 \n"
		"CLZLT %[result], %[var1]\n"
		"CLZGT %[result], %[tmp]\n"
		"SUBNE %[result], %[result], #17\n"
		"MOVEQ %[result], #0\n"
		"CMP   %[var1], #-1\n"
		"MOVEQ %[result], #15\n"
		:[result]"=&r"(result), [tmp]"=&r"(tmp)
		:[var1]"r"(var1)
		);
	return result;
#else
    Word32 var_out;

    if (var1 == 0)
    {
        var_out = 0;
    }
    else
    {
        if (var1 == -1)
        {
            var_out = 15;
        }
        else
        {
            if (var1 < 0)
            {
                var1 = (Word16)~var1;
            }
            for (var_out = 0; var1 < 0x4000; var_out++)
            {
                var1 <<= 1;
            }
        }
    }
    return (var_out);
#endif
}
#endif

/* Long norm,            30  */
#if (NORM_L_IS_INLINE)
__inline Word32 norm_l (Word32 L_var1)
{
#if ARMV5TE_NORM_L
	Word32 result;
	asm volatile(
		"CMP    %[L_var1], #0\n"
		"CLZNE  %[result], %[L_var1]\n"
		"SUBNE  %[result], %[result], #1\n"
		"MOVEQ  %[result], #0\n"
		:[result]"=r"(result)
		:[L_var1]"r"(L_var1)
		);
	return result;
#else
    //Word16 var_out;

    //if (L_var1 == 0)
    //{
    //    var_out = 0;
    //}
    //else
    //{
    //    if (L_var1 == (Word32) 0xffffffffL)
    //    {
    //        var_out = 31;
    //    }
    //    else
    //    {
    //        if (L_var1 < 0)
    //        {
    //            L_var1 = ~L_var1;
    //        }
    //        for (var_out = 0; L_var1 < (Word32) 0x40000000L; var_out++)
    //        {
    //            L_var1 <<= 1;
    //        }
    //    }
    //}
    //return (var_out);
  Word16 a16;
  Word16 r = 0 ;


  if ( L_var1 < 0 ) {
    L_var1 = ~L_var1;
  }

  if (0 == (L_var1 & 0x7fff8000)) {
    a16 = extract_l(L_var1);
    r += 16;

    if (0 == (a16 & 0x7f80)) {
      r += 8;

      if (0 == (a16 & 0x0078)) {
        r += 4;

        if (0 == (a16 & 0x0006)) {
          r += 2;

          if (0 == (a16 & 0x0001)) {
            r += 1;
          }
        }
        else {

          if (0 == (a16 & 0x0004)) {
            r += 1;
          }
        }
      }
      else {

        if (0 == (a16 & 0x0060)) {
          r += 2;

          if (0 == (a16 & 0x0010)) {
            r += 1;
          }
        }
        else {

          if (0 == (a16 & 0x0040)) {
            r += 1;
          }
        }
      }
    }
    else {

      if (0 == (a16 & 0x7800)) {
        r += 4;

        if (0 == (a16 & 0x0600)) {
          r += 2;

          if (0 == (a16 & 0x0100)) {
            r += 1;
          }
        }
        else {

          if (0 == (a16 & 0x0400)) {
            r += 1;
          }
        }
      }
      else {

        if (0 == (a16 & 0x6000)) {
          r += 2;

          if (0 == (a16 & 0x1000)) {
            r += 1;
          }
        }
        else {

          if (0 == (a16 & 0x4000)) {
            r += 1;
          }
        }
      }
    }
  }
  else {
    a16 = extract_h(L_var1);

    if (0 == (a16 & 0x7f80)) {
      r += 8;

      if (0 == (a16 & 0x0078)) {
        r += 4 ;

        if (0 == (a16 & 0x0006)) {
          r += 2;

          if (0 == (a16 & 0x0001)) {
            r += 1;
          }
        }
        else {

          if (0 == (a16 & 0x0004)) {
            r += 1;
          }
        }
      }
      else {

        if (0 == (a16 & 0x0060)) {
          r += 2;

          if (0 == (a16 & 0x0010)) {
            r += 1;
          }
        }
        else {

          if (0 == (a16 & 0x0040)) {
            r += 1;
          }
        }
      }
    }
    else {

      if (0 == (a16 & 0x7800)) {
        r += 4;

        if (0 == (a16 & 0x0600)) {
          r += 2;

          if (0 == (a16 & 0x0100)) {
            r += 1;
          }
        }
        else {

          if (0 == (a16 & 0x0400)) {
            r += 1;
          }
        }
      }
      else {

        if (0 == (a16 & 0x6000)) {
          r += 2;

          if (0 == (a16 & 0x1000)) {
            r += 1;
          }
        }
        else {

          if (0 == (a16 & 0x4000)) {
            return 1;
          }
        }
      }
    }
  }

  return r ;
#endif
}
#endif

/* Round,               1   */
#if (ROUND_IS_INLINE)
__inline Word32 round16(Word32 L_var1)
{
#if ARMV5TE_ROUND
	Word32 result;
	asm (
		"QADD  %[result], %[L_var1], %[bias]\n"
		"MOV   %[result], %[result], ASR #16 \n"
		:[result]"=r"(result)
		:[L_var1]"r"(L_var1), [bias]"r"(0x8000)
		);
	return result;
#else
    Word32 var_out;
    Word32 L_rounded;

    L_rounded = L_add (L_var1, (Word32) 0x00008000L);
    var_out = extract_h (L_rounded);
    return (var_out);
#endif
}
#endif

/* Mac,  1  */
#if (L_MAC_IS_INLINE)
__inline Word32 L_mac (Word32 L_var3, Word32 var1, Word32 var2)
{
#if ARMV5TE_L_MAC
	Word32 result;
	asm (
		"SMULBB %[result], %[var1], %[var2]\n"
		"QDADD  %[result], %[L_var3], %[result]\n"
		:[result]"=&r"(result)
		: [L_var3]"r"(L_var3), [var1]"r"(var1), [var2]"r"(var2)
		);
	return result;
#else
    Word32 L_var_out;
    Word32 L_product;

    L_product = L_mult(var1, var2);
    L_var_out = L_add (L_var3, L_product);
    return (L_var_out);
#endif
}
#endif

#if (L_ADD_IS_INLINE)
__inline Word32 L_add (Word32 L_var1, Word32 L_var2)
{
#if ARMV5TE_L_ADD
	Word32 result;
	asm (
		"QADD %[result], %[L_var1], %[L_var2]\n"
		:[result]"=r"(result)
		:[L_var1]"r"(L_var1), [L_var2]"r"(L_var2)
		);
	return result;
#else
    Word32 L_var_out;

    L_var_out = L_var1 + L_var2;
    if (((L_var1 ^ L_var2) & MIN_32) == 0)
    {
        if ((L_var_out ^ L_var1) & MIN_32)
        {
            L_var_out = (L_var1 < 0) ? MIN_32 : MAX_32;
        }
    }
    return (L_var_out);
#endif
}
#endif



#if (MULT_R_IS_INLINE)
__inline Word32 mult_r (Word32 var1, Word32 var2)
{
    Word32 var_out;
    Word32 L_product_arr;

    L_product_arr = (Word32)var1 *(Word32)var2;       /* product */
    L_product_arr += (Word32)0x00004000L;      /* round */
    L_product_arr >>= 15;       /* shift */

    var_out = saturate(L_product_arr);

    return (var_out);
}
#endif

#if (SHR_R_IS_INLINE)
__inline Word32 shr_r (Word32 var1, Word32 var2)
{
    Word32 var_out;

    if (var2 > 15)
    {
        var_out = 0;
    }
    else
    {
        var_out = shr(var1, var2);

        if (var2 > 0)
        {
            if ((var1 & ((Word16) 1 << (var2 - 1))) != 0)
            {
                var_out++;
            }
        }
    }

    return (var_out);
}
#endif

#if (MAC_R_IS_INLINE)
__inline Word32 mac_r (Word32 L_var3, Word32 var1, Word32 var2)
{
    Word32 var_out;

    L_var3 = L_mac (L_var3, var1, var2);
    var_out = (Word16)((L_var3 + 0x8000L) >> 16);

    return (var_out);
}
#endif

#if (MSU_R_IS_INLINE)
__inline Word32 msu_r (Word32 L_var3, Word32 var1, Word32 var2)
{
    Word32 var_out;

    L_var3 = L_msu (L_var3, var1, var2);
    var_out = (Word16)((L_var3 + 0x8000L) >> 16);

    return (var_out);
}
#endif

#if (L_SHR_R_IS_INLINE)
__inline Word32 L_shr_r (Word32 L_var1, Word32 var2)
{
    Word32 L_var_out;

    if (var2 > 31)
    {
        L_var_out = 0;
    }
    else
    {
        L_var_out = L_shr(L_var1, var2);

        if (var2 > 0)
        {
            if ((L_var1 & ((Word32) 1 << (var2 - 1))) != 0)
            {
                L_var_out++;
            }
        }
    }

    return (L_var_out);
}
#endif

#if (EXTRACT_H_IS_INLINE)
__inline Word32 extract_h (Word32 L_var1)
{
    Word32 var_out;

    var_out = (L_var1 >> 16);

    return (var_out);
}
#endif

#if (EXTRACT_L_IS_INLINE)
__inline Word32 extract_l(Word32 L_var1)
{
	return (Word16) L_var1;
}
#endif

#endif


================================================
FILE: jni/inc/bit_cnt.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		bit_cnt.h

	Content:	Huffman Bitcounter & coder structure and functions

*******************************************************************************/

#ifndef __BITCOUNT_H
#define __BITCOUNT_H

#include "bitbuffer.h"
#include "basic_op.h"
#define INVALID_BITCOUNT (MAX_16/4)

/*
  code book number table
*/

enum codeBookNo{
  CODE_BOOK_ZERO_NO=               0,
  CODE_BOOK_1_NO=                  1,
  CODE_BOOK_2_NO=                  2,
  CODE_BOOK_3_NO=                  3,
  CODE_BOOK_4_NO=                  4,
  CODE_BOOK_5_NO=                  5,
  CODE_BOOK_6_NO=                  6,
  CODE_BOOK_7_NO=                  7,
  CODE_BOOK_8_NO=                  8,
  CODE_BOOK_9_NO=                  9,
  CODE_BOOK_10_NO=                10,
  CODE_BOOK_ESC_NO=               11,
  CODE_BOOK_RES_NO=               12,
  CODE_BOOK_PNS_NO=               13
};

/*
  code book index table
*/

enum codeBookNdx{
  CODE_BOOK_ZERO_NDX=0,
  CODE_BOOK_1_NDX,
  CODE_BOOK_2_NDX,
  CODE_BOOK_3_NDX,
  CODE_BOOK_4_NDX,
  CODE_BOOK_5_NDX,
  CODE_BOOK_6_NDX,
  CODE_BOOK_7_NDX,
  CODE_BOOK_8_NDX,
  CODE_BOOK_9_NDX,
  CODE_BOOK_10_NDX,
  CODE_BOOK_ESC_NDX,
  CODE_BOOK_RES_NDX,
  CODE_BOOK_PNS_NDX,
  NUMBER_OF_CODE_BOOKS
};

/*
  code book lav table
*/

enum codeBookLav{
  CODE_BOOK_ZERO_LAV=0,
  CODE_BOOK_1_LAV=1,
  CODE_BOOK_2_LAV=1,
  CODE_BOOK_3_LAV=2,
  CODE_BOOK_4_LAV=2,
  CODE_BOOK_5_LAV=4,
  CODE_BOOK_6_LAV=4,
  CODE_BOOK_7_LAV=7,
  CODE_BOOK_8_LAV=7,
  CODE_BOOK_9_LAV=12,
  CODE_BOOK_10_LAV=12,
  CODE_BOOK_ESC_LAV=16,
  CODE_BOOK_SCF_LAV=60,
  CODE_BOOK_PNS_LAV=60
};

Word16 bitCount(const Word16 *aQuantSpectrum,
                const Word16  noOfSpecLines,
                Word16        maxVal,
                Word16       *bitCountLut);

Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF hBitstream);

Word16 bitCountScalefactorDelta(Word16 delta);
Word16 codeScalefactorDelta(Word16 scalefactor, HANDLE_BIT_BUF hBitstream);



#endif


================================================
FILE: jni/inc/bitbuffer.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		bitbuffer.h

	Content:	Bit Buffer Management structure and functions

*******************************************************************************/

#ifndef BITBUFFER_H
#define BITBUFFER_H

#include "typedef.h"


enum direction
{
  forwardDirection,
  backwardDirection
};


/*!
   The pointer 'pReadNext' points to the next available word, where bits can be read from. The pointer
   'pWriteNext' points to the next available word, where bits can be written to. The pointer pBitBufBase
   points to the start of the bitstream buffer and the pointer pBitBufEnd points to the end of the bitstream
   buffer. The two pointers are used as lower-bound respectively upper-bound address for the modulo addressing
   mode.

   The element cntBits contains the currently available bits in the bit buffer. It will be incremented when
   bits are written to the bitstream buffer and decremented when bits are read from the bitstream buffer.
*/
struct BIT_BUF
{
  UWord8 *pBitBufBase;          /*!< pointer points to first position in bitstream buffer */
  UWord8 *pBitBufEnd;           /*!< pointer points to last position in bitstream buffer */

  UWord8 *pWriteNext;           /*!< pointer points to next available word in bitstream buffer to write */

  UWord32 cache;

  Word16  wBitPos;              /*!< 31<=wBitPos<=0*/
  Word16  cntBits;              /*!< number of available bits in the bitstream buffer
                                     write bits to bitstream buffer  => increment cntBits
                                     read bits from bitstream buffer => decrement cntBits */
  Word16  size;                 /*!< size of bitbuffer in bits */
  Word16  isValid;              /*!< indicates whether the instance has been initialized */
}; /* size Word16: 8 */

/*! Define pointer to bit buffer structure */
typedef struct BIT_BUF *HANDLE_BIT_BUF;


HANDLE_BIT_BUF CreateBitBuffer(HANDLE_BIT_BUF hBitBuf,
                               UWord8 *pBitBufBase,
                               Word16  bitBufSize);


void DeleteBitBuffer(HANDLE_BIT_BUF *hBitBuf);


Word16 GetBitsAvail(HANDLE_BIT_BUF hBitBuf);


Word16 WriteBits(HANDLE_BIT_BUF hBitBuf,
                 UWord32 writeValue,
                 Word16 noBitsToWrite);

void ResetBitBuf(HANDLE_BIT_BUF hBitBuf,
                 UWord8 *pBitBufBase,
                 Word16  bitBufSize);

#define GetNrBitsAvailable(hBitBuf) ( (hBitBuf)->cntBits)
#define GetNrBitsRead(hBitBuf)       ((hBitBuf)->size-(hBitBuf)->cntBits)

#endif /* BITBUFFER_H */


================================================
FILE: jni/inc/bitenc.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		bitenc.h

	Content:	Bitstream encoder structure and functions

*******************************************************************************/

#ifndef _BITENC_H
#define _BITENC_H

#include "qc_data.h"
#include "tns.h"
#include "channel_map.h"
#include "interface.h"

struct BITSTREAMENCODER_INIT
{
  Word16 nChannels;
  Word32 bitrate;
  Word32 sampleRate;
  Word16 profile;
};



Word16 WriteBitstream (HANDLE_BIT_BUF hBitstream,
                       ELEMENT_INFO elInfo,
                       QC_OUT *qcOut,
                       PSY_OUT *psyOut,
                       Word16 *globUsedBits,
                       const UWord8 *ancBytes,
					   Word16 samplerate
                       );

#endif /* _BITENC_H */


================================================
FILE: jni/inc/block_switch.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		block_switch.h

	Content:	Block switching structure and functions

*******************************************************************************/

#ifndef _BLOCK_SWITCH_H
#define _BLOCK_SWITCH_H

#include "typedef.h"


/****************** Defines ******************************/
#define BLOCK_SWITCHING_IIR_LEN 2                                           /* Length of HighPass-FIR-Filter for Attack-Detection */
#define BLOCK_SWITCH_WINDOWS TRANS_FAC                                      /* number of windows for energy calculation */
#define BLOCK_SWITCH_WINDOW_LEN FRAME_LEN_SHORT                             /* minimal granularity of energy calculation */



/****************** Structures ***************************/
typedef struct{
  Word32 invAttackRatio;
  Word16 windowSequence;
  Word16 nextwindowSequence;
  Flag attack;
  Flag lastattack;
  Word16 attackIndex;
  Word16 lastAttackIndex;
  Word16 noOfGroups;
  Word16 groupLen[TRANS_FAC];
  Word32 windowNrg[2][BLOCK_SWITCH_WINDOWS];     /* time signal energy in Subwindows (last and current) */
  Word32 windowNrgF[2][BLOCK_SWITCH_WINDOWS];    /* filtered time signal energy in segments (last and current) */
  Word32 iirStates[BLOCK_SWITCHING_IIR_LEN];     /* filter delay-line */
  Word32 maxWindowNrg;                           /* max energy in subwindows */
  Word32 accWindowNrg;                           /* recursively accumulated windowNrgF */
}BLOCK_SWITCHING_CONTROL;





Word16 InitBlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
                          const Word32 bitRate, const Word16 nChannels);

Word16 BlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
                      Word16 *timeSignal,
					  Word32  sampleRate,
                      Word16 chIncrement);

Word16 SyncBlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControlLeft,
                          BLOCK_SWITCHING_CONTROL *blockSwitchingControlRight,
                          const Word16 noOfChannels);



#endif  /* #ifndef _BLOCK_SWITCH_H */


================================================
FILE: jni/inc/channel_map.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		channel_map.h

	Content:	channel mapping functions

*******************************************************************************/

#ifndef _CHANNEL_MAP_H
#define _CHANNEL_MAP_H

#include "psy_const.h"
#include "qc_data.h"

Word16 InitElementInfo (Word16 nChannels, ELEMENT_INFO* elInfo);

Word16 InitElementBits(ELEMENT_BITS *elementBits,
                       ELEMENT_INFO elInfo,
                       Word32 bitrateTot,
                       Word16 averageBitsTot,
                       Word16 staticBitsTot);

#endif /* CHANNEL_MAP_H */


================================================
FILE: jni/inc/cmnMemory.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		cmnMemory.h

	Content:	memory operator implementation header file

*******************************************************************************/

#ifndef __cmnMemory_H__
#define __cmnMemory_H__

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include "voMem.h"

//extern VO_MEM_OPERATOR	g_memOP;

/**
 * Allocate memory
 * \param uID [in] module ID
 * \param uSize [in] size of memory
 * \return value is the allocated memory address. NULL is failed.
 */
VO_U32	cmnMemAlloc (VO_S32 uID,  VO_MEM_INFO * pMemInfo);

/**
 * Free up memory
 * \param uID [in] module ID
 * \param pMem [in] address of memory
 * \return value 0, if succeeded.
 */
VO_U32	cmnMemFree (VO_S32 uID, VO_PTR pBuffer);

/**
 * memory set function
 * \param uID [in] module ID
 * \param pBuff [in/out] address of memory
 * \param uValue [in] the value to be set
 * \param uSize [in] the size to be set
 * \return value 0, if succeeded.
 */
VO_U32	cmnMemSet (VO_S32 uID, VO_PTR pBuff, VO_U8 uValue, VO_U32 uSize);

/**
 * memory copy function
 * \param uID [in] module ID
 * \param pDest [in/out] address of destination memory
 * \param pSource [in] address of source memory
 * \param uSize [in] the size to be copied
 * \return value 0, if succeeded.
 */
VO_U32	cmnMemCopy (VO_S32 uID, VO_PTR pDest, VO_PTR pSource, VO_U32 uSize);

/**
 * memory check function
 * \param uID [in] module ID
 * \param pBuff [in] address of buffer to be checked
 * \param uSize [in] the size to be checked
 * \return value 0, if succeeded.
 */
VO_U32	cmnMemCheck (VO_S32 uID, VO_PTR pBuffer, VO_U32 uSize);

/**
 * memory compare function
 * \param uID [in] module ID
 * \param pBuffer1 [in] address of buffer 1 to be compared
 * \param pBuffer2 [in] address of buffer 2 to be compared
 * \param uSize [in] the size to be compared
 * \return value: same as standard C run-time memcmp() function.
 */
VO_S32	cmnMemCompare (VO_S32 uID, VO_PTR pBuffer1, VO_PTR pBuffer2, VO_U32 uSize);

/**
 * memory move function
 * \param uID [in] module ID
 * \param pDest [in/out] address of destination memory
 * \param pSource [in] address of source memory
 * \param uSize [in] the size to be moved
 * \return value 0, if succeeded.
 */
VO_U32	cmnMemMove (VO_S32 uID, VO_PTR pDest, VO_PTR pSource, VO_U32 uSize);


#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif // __cmnMemory_H__




================================================
FILE: jni/inc/config.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		config.h

	Content:	aac encoder parameter

*******************************************************************************/

#ifndef _AACENC_CONFIG_H_
#define _AACENC_CONFIG_H_

#define MAX_CHANNELS        2

#define AACENC_BLOCKSIZE    1024   /*! encoder only takes BLOCKSIZE samples at a time */
#define AACENC_TRANS_FAC    8      /*! encoder short long ratio */


#define MAXBITS_COEF		6144
#define MINBITS_COEF		744


#endif


================================================
FILE: jni/inc/dyn_bits.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		dyn_bits.h

	Content:	Noiseless coder module structure and functions

*******************************************************************************/

#ifndef __DYN_BITS_H
#define __DYN_BITS_H

#include "psy_const.h"
#include "tns.h"
#include "bit_cnt.h"



#define MAX_SECTIONS          MAX_GROUPED_SFB
#define SECT_ESC_VAL_LONG    31
#define SECT_ESC_VAL_SHORT    7
#define CODE_BOOK_BITS        4
#define SECT_BITS_LONG        5
#define SECT_BITS_SHORT       3

typedef struct
{
  Word16 codeBook;
  Word16 sfbStart;
  Word16 sfbCnt;
  Word16 sectionBits;
}
SECTION_INFO;




typedef struct
{
  Word16 blockType;
  Word16 noOfGroups;
  Word16 sfbCnt;
  Word16 maxSfbPerGroup;
  Word16 sfbPerGroup;
  Word16 noOfSections;
  SECTION_INFO sectionInfo[MAX_SECTIONS];
  Word16 sideInfoBits;             /* sectioning bits       */
  Word16 huffmanBits;              /* huffman    coded bits */
  Word16 scalefacBits;             /* scalefac   coded bits */
  Word16 firstScf;                 /* first scf to be coded */
  Word16 bitLookUp[MAX_SFB_LONG*(CODE_BOOK_ESC_NDX+1)];
  Word16 mergeGainLookUp[MAX_SFB_LONG];
}
SECTION_DATA; /*  Word16 size: 10 + 60(MAX_SECTIONS)*4(SECTION_INFO) + 51(MAX_SFB_LONG)*12(CODE_BOOK_ESC_NDX+1) + 51(MAX_SFB_LONG) = 913 */


Word16 BCInit(void);

Word16 dynBitCount(const Word16 *quantSpectrum,
                   const UWord16 *maxValueInSfb,
                   const Word16 *scalefac,
                   const Word16 blockType,
                   const Word16 sfbCnt,
                   const Word16 maxSfbPerGroup,
                   const Word16 sfbPerGroup,
                   const Word16 *sfbOffset,
                   SECTION_DATA *sectionData);

#endif


================================================
FILE: jni/inc/grp_data.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		grp_data.h

	Content:	Short block grouping function

*******************************************************************************/

#ifndef __GRP_DATA_H__
#define __GRP_DATA_H__
#include "psy_data.h"
#include "typedefs.h"

void
groupShortData(Word32        *mdctSpectrum,
               Word32        *tmpSpectrum,
               SFB_THRESHOLD *sfbThreshold,
               SFB_ENERGY    *sfbEnergy,
               SFB_ENERGY    *sfbEnergyMS,
               SFB_ENERGY    *sfbSpreadedEnergy,
               const Word16   sfbCnt,
               const Word16  *sfbOffset,
               const Word16  *sfbMinSnr,
               Word16        *groupedSfbOffset,
               Word16        *maxSfbPerGroup,
               Word16        *groupedSfbMinSnr,
               const Word16   noOfGroups,
               const Word16  *groupLen);

#endif /* _INTERFACE_H */


================================================
FILE: jni/inc/interface.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		interface.h

	Content:	psychoaccoustic/quantizer structures and interface

*******************************************************************************/

#ifndef _INTERFACE_H
#define _INTERFACE_H

#include "config.h"
#include "psy_const.h"
#include "psy_data.h"
#include "typedefs.h"


enum
{
  MS_NONE = 0,
  MS_SOME = 1,
  MS_ALL  = 2
};

enum
{
  MS_ON = 1
};

struct TOOLSINFO {
  Word16 msDigest;
  Word16 msMask[MAX_GROUPED_SFB];
};


typedef struct {
  Word16  sfbCnt;
  Word16  sfbPerGroup;
  Word16  maxSfbPerGroup;
  Word16  windowSequence;
  Word16  windowShape;
  Word16  groupingMask;
  Word16  sfbOffsets[MAX_GROUPED_SFB+1];
  Word16  mdctScale;
  Word32 *sfbEnergy;
  Word32 *sfbSpreadedEnergy;
  Word32 *sfbThreshold;
  Word32 *mdctSpectrum;
  Word32  sfbEnSumLR;
  Word32  sfbEnSumMS;
  Word32 sfbDist[MAX_GROUPED_SFB];
  Word32 sfbDistNew[MAX_GROUPED_SFB];
  Word16  sfbMinSnr[MAX_GROUPED_SFB];
  Word16 minSfMaxQuant[MAX_GROUPED_SFB];
  Word16 minScfCalculated[MAX_GROUPED_SFB];
  Word16 prevScfLast[MAX_GROUPED_SFB];
  Word16 prevScfNext[MAX_GROUPED_SFB];
  Word16 deltaPeLast[MAX_GROUPED_SFB];
  TNS_INFO tnsInfo;
} PSY_OUT_CHANNEL; /* Word16 size: 14 + 60(MAX_GROUPED_SFB) + 112(TNS_INFO) = 186 */

typedef struct {
  struct TOOLSINFO toolsInfo;
  Word16 groupedSfbOffset[MAX_CHANNELS][MAX_GROUPED_SFB+1];  /* plus one for last dummy offset ! */
  Word16 groupedSfbMinSnr[MAX_CHANNELS][MAX_GROUPED_SFB];
} PSY_OUT_ELEMENT;

typedef struct {
  /* information shared by both channels  */
  PSY_OUT_ELEMENT  psyOutElement;
  /* information specific to each channel */
  PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS];
}PSY_OUT;

void BuildInterface(Word32                 *mdctSpectrum,
                    const Word16            mdctScale,
                    SFB_THRESHOLD          *sfbThreshold,
                    SFB_ENERGY             *sfbEnergy,
                    SFB_ENERGY             *sfbSpreadedEnergy,
                    const SFB_ENERGY_SUM    sfbEnergySumLR,
                    const SFB_ENERGY_SUM    sfbEnergySumMS,
                    const Word16            windowSequence,
                    const Word16            windowShape,
                    const Word16            sfbCnt,
                    const Word16           *sfbOffset,
                    const Word16            maxSfbPerGroup,
                    const Word16           *groupedSfbMinSnr,
                    const Word16            noOfGroups,
                    const Word16           *groupLen,
                    PSY_OUT_CHANNEL        *psyOutCh);

#endif /* _INTERFACE_H */


================================================
FILE: jni/inc/line_pe.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		line_pe.h

	Content:	Perceptual entropie module structure and functions

*******************************************************************************/

#ifndef __LINE_PE_H
#define __LINE_PE_H


#include "psy_const.h"
#include "interface.h"


typedef struct {
   Word16 sfbLdEnergy[MAX_GROUPED_SFB];     /* 4*log(sfbEnergy)/log(2) */
   Word16 sfbNLines4[MAX_GROUPED_SFB];      /* 4*number of relevant lines in sfb */
   Word16 sfbPe[MAX_GROUPED_SFB];           /* pe for each sfb */
   Word16 sfbConstPart[MAX_GROUPED_SFB];    /* constant part for each sfb */
   Word16 sfbNActiveLines[MAX_GROUPED_SFB]; /* number of active lines in sfb */
   Word16 pe;                               /* sum of sfbPe */
   Word16 constPart;                        /* sum of sfbConstPart */
   Word16 nActiveLines;                     /* sum of sfbNActiveLines */
} PE_CHANNEL_DATA; /* size Word16: 303 */


typedef struct {
   PE_CHANNEL_DATA peChannelData[MAX_CHANNELS];
   Word16 pe;
   Word16 constPart;
   Word16 nActiveLines;
   Word16 offset;
   Word16 ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB];
   Word32 thrExp[MAX_CHANNELS][MAX_GROUPED_SFB];
   Word32 sfbPeFactors[MAX_CHANNELS][MAX_GROUPED_SFB];
} PE_DATA; /* size Word16: 303 + 4 + 120 + 240 = 667 */




void prepareSfbPe(PE_DATA *peData,
                  PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
                  Word16 logSfbEnergy[MAX_CHANNELS][MAX_GROUPED_SFB],
                  Word16 sfbNRelevantLines[MAX_CHANNELS][MAX_GROUPED_SFB],
                  const Word16 nChannels,
                  const Word16 peOffset);





void calcSfbPe(PE_DATA *peData,
               PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
               const Word16 nChannels);




#endif


================================================
FILE: jni/inc/memalign.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		memalign.h

	Content:	Memory alloc alignments functions

*******************************************************************************/

#ifndef __VO_AACENC_MEM_ALIGN_H__
#define __VO_AACENC_MEM_ALIGN_H__

#include "voMem.h"
#include "typedef.h"

extern void *mem_malloc(VO_MEM_OPERATOR *pMemop, unsigned int size, unsigned char alignment, unsigned int CodecID);
extern void mem_free(VO_MEM_OPERATOR *pMemop, void *mem_ptr, unsigned int CodecID);

#endif	/* __VO_MEM_ALIGN_H__ */





================================================
FILE: jni/inc/ms_stereo.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		ms_stereo.h

	Content:	Declaration MS stereo processing structure and functions

*******************************************************************************/

#ifndef __MS_STEREO_H__
#define __MS_STEREO_H__
#include "typedef.h"

void MsStereoProcessing(Word32       *sfbEnergyLeft,
                        Word32       *sfbEnergyRight,
                        const Word32 *sfbEnergyMid,
                        const Word32 *sfbEnergySide,
                        Word32       *mdctSpectrumLeft,
                        Word32       *mdctSpectrumRight,
                        Word32       *sfbThresholdLeft,
                        Word32       *sfbThresholdRight,
                        Word32       *sfbSpreadedEnLeft,
                        Word32       *sfbSpreadedEnRight,
                        Word16       *msDigest,
                        Word16       *msMask,
                        const Word16  sfbCnt,
                        const Word16  sfbPerGroup,
                        const Word16  maxSfbPerGroup,
                        const Word16 *sfbOffset);


#endif


================================================
FILE: jni/inc/oper_32b.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		oper_32b.h

	Content:	Double precision operations

*******************************************************************************/

#ifndef __OPER_32b_H
#define __OPER_32b_H

#include "typedef.h"

#ifdef __cplusplus
extern "C" {
#endif

#define POW2_TABLE_BITS 8
#define POW2_TABLE_SIZE (1<<POW2_TABLE_BITS)

void L_Extract (Word32 L_32, Word16 *hi, Word16 *lo);
Word32 L_Comp (Word16 hi, Word16 lo);
Word32 Mpy_32 (Word16 hi1, Word16 lo1, Word16 hi2, Word16 lo2);
Word32 Mpy_32_16 (Word16 hi, Word16 lo, Word16 n);
Word32 Div_32 (Word32 L_num, Word32 denom);
Word16 iLog4(Word32 value);
Word32 rsqrt(Word32 value,  Word32 accuracy);
Word32 pow2_xy(Word32 x, Word32 y);

__inline Word32 L_mpy_ls(Word32 L_var2, Word16 var1)
{
    unsigned short swLow1;
    Word16 swHigh1;
    Word32 l_var_out;

    swLow1 = (unsigned short)(L_var2);
    swHigh1 = (Word16)(L_var2 >> 16);

    l_var_out = (long)swLow1 * (long)var1 >> 15;

    l_var_out += swHigh1 * var1 << 1;

    return(l_var_out);
}

__inline Word32 L_mpy_wx(Word32 L_var2, Word16 var1)
{
#if ARMV5TE_L_MPY_LS
	Word32 result;
	asm volatile(
		"SMULWB  %[result], %[L_var2], %[var1] \n"
		:[result]"=r"(result)
		:[L_var2]"r"(L_var2), [var1]"r"(var1)
		);
	return result;
#else
    unsigned short swLow1;
    Word16 swHigh1;
    Word32 l_var_out;

    swLow1 = (unsigned short)(L_var2);
    swHigh1 = (Word16)(L_var2 >> 16);

    l_var_out = (long)swLow1 * (long)var1 >> 16;
    l_var_out += swHigh1 * var1;

    return(l_var_out);
#endif
}

#ifdef __cplusplus
}
#endif

#endif


================================================
FILE: jni/inc/pre_echo_control.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		pre_echo_control.h

	Content:	Pre echo control functions

*******************************************************************************/

#ifndef __PRE_ECHO_CONTROL_H
#define __PRE_ECHO_CONTROL_H

#include "typedefs.h"

void InitPreEchoControl(Word32 *pbThresholdnm1,
                        Word16  numPb,
                        Word32 *pbThresholdQuiet);


void PreEchoControl(Word32 *pbThresholdNm1,
                    Word16  numPb,
                    Word32  maxAllowedIncreaseFactor,
                    Word16  minRemainingThresholdFactor,
                    Word32 *pbThreshold,
                    Word16  mdctScale,
                    Word16  mdctScalenm1);

#endif



================================================
FILE: jni/inc/psy_configuration.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		psy_configuration.h

	Content:	Psychoaccoustic configuration structure and functions

*******************************************************************************/

#ifndef _PSY_CONFIGURATION_H
#define _PSY_CONFIGURATION_H

#include "typedefs.h"
#include "psy_const.h"
#include "tns.h"

typedef struct{

  Word16 sfbCnt;
  Word16 sfbActive;   /* number of sf bands containing energy after lowpass */
  const Word16 *sfbOffset;

  Word32 sfbThresholdQuiet[MAX_SFB_LONG];

  Word16 maxAllowedIncreaseFactor;   /* preecho control */
  Word16 minRemainingThresholdFactor;

  Word16 lowpassLine;
  Word16 sampRateIdx;
  Word32 clipEnergy;                 /* for level dependend tmn */

  Word16 ratio;
  Word16 sfbMaskLowFactor[MAX_SFB_LONG];
  Word16 sfbMaskHighFactor[MAX_SFB_LONG];

  Word16 sfbMaskLowFactorSprEn[MAX_SFB_LONG];
  Word16 sfbMaskHighFactorSprEn[MAX_SFB_LONG];


  Word16 sfbMinSnr[MAX_SFB_LONG];       /* minimum snr (formerly known as bmax) */

  TNS_CONFIG tnsConf;

}PSY_CONFIGURATION_LONG; /*Word16 size: 8 + 52 + 102 + 51 + 51 + 51 + 51 + 47 = 515 */


typedef struct{

  Word16 sfbCnt;
  Word16 sfbActive;   /* number of sf bands containing energy after lowpass */
  const Word16 *sfbOffset;

  Word32 sfbThresholdQuiet[MAX_SFB_SHORT];

  Word16 maxAllowedIncreaseFactor;   /* preecho control */
  Word16 minRemainingThresholdFactor;

  Word16 lowpassLine;
  Word16 sampRateIdx;
  Word32 clipEnergy;                 /* for level dependend tmn */

  Word16 ratio;
  Word16 sfbMaskLowFactor[MAX_SFB_SHORT];
  Word16 sfbMaskHighFactor[MAX_SFB_SHORT];

  Word16 sfbMaskLowFactorSprEn[MAX_SFB_SHORT];
  Word16 sfbMaskHighFactorSprEn[MAX_SFB_SHORT];


  Word16 sfbMinSnr[MAX_SFB_SHORT];       /* minimum snr (formerly known as bmax) */

  TNS_CONFIG tnsConf;

}PSY_CONFIGURATION_SHORT; /*Word16 size: 8 + 16 + 16 + 16 + 16 + 16 + 16 + 16 + 47 = 167 */


/* Returns the sample rate index */
Word32 GetSRIndex(Word32 sampleRate);


Word16 InitPsyConfigurationLong(Word32 bitrate,
                                Word32 samplerate,
                                Word16 bandwidth,
                                PSY_CONFIGURATION_LONG *psyConf);

Word16 InitPsyConfigurationShort(Word32 bitrate,
                                 Word32 samplerate,
                                 Word16 bandwidth,
                                 PSY_CONFIGURATION_SHORT *psyConf);

#endif /* _PSY_CONFIGURATION_H */





================================================
FILE: jni/inc/psy_const.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		psy_const.h

	Content:	Global psychoacoustic constants structures

*******************************************************************************/

#ifndef _PSYCONST_H
#define _PSYCONST_H

#include "config.h"

#define TRUE  1
#define FALSE 0

#define FRAME_LEN_LONG    AACENC_BLOCKSIZE
#define TRANS_FAC         8
#define FRAME_LEN_SHORT   (FRAME_LEN_LONG/TRANS_FAC)



/* Block types */
enum
{
  LONG_WINDOW = 0,
  START_WINDOW,
  SHORT_WINDOW,
  STOP_WINDOW
};

/* Window shapes */
enum
{
  SINE_WINDOW = 0,
  KBD_WINDOW  = 1
};

/*
  MS stuff
*/
enum
{
  SI_MS_MASK_NONE = 0,
  SI_MS_MASK_SOME = 1,
  SI_MS_MASK_ALL  = 2
};

#define MAX_NO_OF_GROUPS 4
#define MAX_SFB_SHORT   15  /* 15 for a memory optimized implementation, maybe 16 for convenient debugging */
#define MAX_SFB_LONG    51  /* 51 for a memory optimized implementation, maybe 64 for convenient debugging */
#define MAX_SFB         (MAX_SFB_SHORT > MAX_SFB_LONG ? MAX_SFB_SHORT : MAX_SFB_LONG)   /* = MAX_SFB_LONG */
#define MAX_GROUPED_SFB (MAX_NO_OF_GROUPS*MAX_SFB_SHORT > MAX_SFB_LONG ? \
                         MAX_NO_OF_GROUPS*MAX_SFB_SHORT : MAX_SFB_LONG)

#define BLOCK_SWITCHING_OFFSET		   (1*1024+3*128+64+128)
#define BLOCK_SWITCHING_DATA_SIZE          FRAME_LEN_LONG

#define TRANSFORM_OFFSET_LONG    0
#define TRANSFORM_OFFSET_SHORT   448

#define LOG_NORM_PCM          -15

#define NUM_SAMPLE_RATES	12

#endif /* _PSYCONST_H */


================================================
FILE: jni/inc/psy_data.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		psy_data.h

	Content:	Psychoacoustic data and structures

*******************************************************************************/

#ifndef _PSY_DATA_H
#define _PSY_DATA_H

#include "block_switch.h"
#include "tns.h"

/*
  the structs can be implemented as unions
*/

typedef struct{
  Word32 sfbLong[MAX_GROUPED_SFB];
  Word32 sfbShort[TRANS_FAC][MAX_SFB_SHORT];
}SFB_THRESHOLD; /* Word16 size: 260 */

typedef struct{
  Word32 sfbLong[MAX_GROUPED_SFB];
  Word32 sfbShort[TRANS_FAC][MAX_SFB_SHORT];
}SFB_ENERGY; /* Word16 size: 260 */

typedef struct{
  Word32 sfbLong;
  Word32 sfbShort[TRANS_FAC];
}SFB_ENERGY_SUM; /* Word16 size: 18 */


typedef struct{
  BLOCK_SWITCHING_CONTROL   blockSwitchingControl;          /* block switching */
  Word16                    *mdctDelayBuffer;               /* mdct delay buffer [BLOCK_SWITCHING_OFFSET]*/
  Word32                    sfbThresholdnm1[MAX_SFB];       /* PreEchoControl */
  Word16                    mdctScalenm1;                   /* scale of last block's mdct (PreEchoControl) */

  SFB_THRESHOLD             sfbThreshold;                   /* adapt           */
  SFB_ENERGY                sfbEnergy;                      /* sfb Energy      */
  SFB_ENERGY                sfbEnergyMS;
  SFB_ENERGY_SUM            sfbEnergySum;
  SFB_ENERGY_SUM            sfbEnergySumMS;
  SFB_ENERGY                sfbSpreadedEnergy;

  Word32                    *mdctSpectrum;                  /* mdct spectrum [FRAME_LEN_LONG] */
  Word16                    mdctScale;                      /* scale of mdct   */
}PSY_DATA; /* Word16 size: 4 + 87 + 102 + 360 + 360 + 360 + 18 + 18 + 360 = 1669 */

#endif /* _PSY_DATA_H */


================================================
FILE: jni/inc/psy_main.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		psy_main.h

	Content:	Psychoacoustic major function block

*******************************************************************************/

#ifndef _PSYMAIN_H
#define _PSYMAIN_H

#include "psy_configuration.h"
#include "qc_data.h"
#include "memalign.h"

/*
  psy kernel
*/
typedef struct  {
  PSY_CONFIGURATION_LONG  psyConfLong;           /* Word16 size: 515 */
  PSY_CONFIGURATION_SHORT psyConfShort;          /* Word16 size: 167 */
  PSY_DATA                psyData[MAX_CHANNELS]; /* Word16 size: MAX_CHANNELS*1669*/
  TNS_DATA                tnsData[MAX_CHANNELS]; /* Word16 size: MAX_CHANNELS*235 */
  Word32*                 pScratchTns;
  Word16				  sampleRateIdx;
}PSY_KERNEL; /* Word16 size: 2587 / 4491 */


Word16 PsyNew( PSY_KERNEL  *hPsy, Word32 nChan, VO_MEM_OPERATOR *pMemOP);
Word16 PsyDelete( PSY_KERNEL  *hPsy, VO_MEM_OPERATOR *pMemOP);

Word16 PsyOutNew( PSY_OUT *hPsyOut, VO_MEM_OPERATOR *pMemOP);
Word16 PsyOutDelete( PSY_OUT *hPsyOut, VO_MEM_OPERATOR *pMemOP);

Word16 psyMainInit( PSY_KERNEL *hPsy,
                    Word32 sampleRate,
                    Word32 bitRate,
                    Word16 channels,
                    Word16 tnsMask,
                    Word16 bandwidth);


Word16 psyMain(Word16                   nChannels,   /*!< total number of channels */
               ELEMENT_INFO             *elemInfo,
               Word16                   *timeSignal, /*!< interleaved time signal */
               PSY_DATA                 psyData[MAX_CHANNELS],
               TNS_DATA                 tnsData[MAX_CHANNELS],
               PSY_CONFIGURATION_LONG*  psyConfLong,
               PSY_CONFIGURATION_SHORT* psyConfShort,
               PSY_OUT_CHANNEL          psyOutChannel[MAX_CHANNELS],
               PSY_OUT_ELEMENT          *psyOutElement,
               Word32                   *pScratchTns,
			   Word32					sampleRate);

#endif /* _PSYMAIN_H */


================================================
FILE: jni/inc/qc_data.h
================================================
/*
 ** Copyright 2003-2010, VisualOn, Inc.
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
/*******************************************************************************
	File:		qc_data.h

	Content:	Quantizing & coding structures

*******************************************************************************/

#ifndef _QC_DATA_H
#define _QC_DATA_H

#include "psy_const.h"
#include "dyn_bits.h"
#include "adj_thr_data.h"


#define MAX_MODES 10

typedef enum {
  MODE_INVALID = 0,
  MODE_1,        /* mono      */
  MODE_1_1,      /* dual mono */
  MODE_2         /* stereo    */
} ENCODER_MODE;

typedef enum {
  ID_SCE=0,     /* Single Channel Element   */
  ID_CPE=1,     /* Channel Pair Element     */
  ID_CCE=2,     /* Coupling Channel Element */
  ID_LFE=3,     /* LFE Channel Element      */
  ID_DSE=4,     /* current one DSE element for ancillary is supported */
  ID_PCE=5,
  ID_FIL=6,
  ID_END=7
}ELEMENT_TYPE;

typedef struct {
  ELEMENT_TYPE elType;
  Word16 instanceTag;
  Word16 nChannelsInEl;
  Word16 ChannelIndex[MAX_CHANNELS];
} ELEMENT_INFO;

typedef struct {
  Word32 paddingRest;
} PADDING;


/* Quantizing & coding stage */

struct QC_INIT{
  ELEMENT_INFO *elInfo;
  Word16 maxBits;     /* maximum number of bits in reservoir  */
  Word16 averageBits; /* average number of bits we should use */
  Word16 bitRes;
  Word16 meanPe;
  Word32 chBitrate;
  Word16 maxBitFac;
  Word32 bitrate;

  PADDING padding;
};

typedef struct
{
  Word16          *quantSpec;       /* [FRAME_LEN_LONG];                            */
  UWord16         *maxValueInSfb;   /* [MAX_GROUPED_SFB];                           */
Download .txt
gitextract_gzc8yv_e/

├── .classpath
├── .gitignore
├── .project
├── AndroidManifest.xml
├── README.md
├── build.xml
├── jni/
│   ├── Android.mk
│   ├── Config.mk
│   ├── aac-enc.c
│   ├── basic_op/
│   │   ├── basicop2.c
│   │   └── oper_32b.c
│   ├── inc/
│   │   ├── aac_rom.h
│   │   ├── aacenc_core.h
│   │   ├── adj_thr.h
│   │   ├── adj_thr_data.h
│   │   ├── band_nrg.h
│   │   ├── basic_op.h
│   │   ├── bit_cnt.h
│   │   ├── bitbuffer.h
│   │   ├── bitenc.h
│   │   ├── block_switch.h
│   │   ├── channel_map.h
│   │   ├── cmnMemory.h
│   │   ├── config.h
│   │   ├── dyn_bits.h
│   │   ├── grp_data.h
│   │   ├── interface.h
│   │   ├── line_pe.h
│   │   ├── memalign.h
│   │   ├── ms_stereo.h
│   │   ├── oper_32b.h
│   │   ├── pre_echo_control.h
│   │   ├── psy_configuration.h
│   │   ├── psy_const.h
│   │   ├── psy_data.h
│   │   ├── psy_main.h
│   │   ├── qc_data.h
│   │   ├── qc_main.h
│   │   ├── quantize.h
│   │   ├── sf_estim.h
│   │   ├── spreading.h
│   │   ├── stat_bits.h
│   │   ├── tns.h
│   │   ├── tns_func.h
│   │   ├── tns_param.h
│   │   ├── transform.h
│   │   ├── typedef.h
│   │   ├── typedefs.h
│   │   ├── voAAC.h
│   │   ├── voAMRWB.h
│   │   ├── voAudio.h
│   │   ├── voIndex.h
│   │   ├── voMem.h
│   │   └── voType.h
│   ├── patent_disclaimer.txt
│   └── src/
│       ├── aac_rom.c
│       ├── aacenc.c
│       ├── aacenc_core.c
│       ├── adj_thr.c
│       ├── asm/
│       │   ├── ARMV5E/
│       │   │   ├── AutoCorrelation_v5.s
│       │   │   ├── CalcWindowEnergy_v5.s
│       │   │   ├── PrePostMDCT_v5.s
│       │   │   ├── R4R8First_v5.s
│       │   │   ├── Radix4FFT_v5.s
│       │   │   └── band_nrg_v5.s
│       │   └── ARMV7/
│       │       ├── PrePostMDCT_v7.s
│       │       ├── R4R8First_v7.s
│       │       └── Radix4FFT_v7.s
│       ├── band_nrg.c
│       ├── bit_cnt.c
│       ├── bitbuffer.c
│       ├── bitenc.c
│       ├── block_switch.c
│       ├── channel_map.c
│       ├── cmnMemory.c
│       ├── dyn_bits.c
│       ├── grp_data.c
│       ├── interface.c
│       ├── line_pe.c
│       ├── memalign.c
│       ├── ms_stereo.c
│       ├── pre_echo_control.c
│       ├── psy_configuration.c
│       ├── psy_main.c
│       ├── qc_main.c
│       ├── quantize.c
│       ├── sf_estim.c
│       ├── spreading.c
│       ├── stat_bits.c
│       ├── tns.c
│       └── transform.c
├── libs/
│   └── xom-1.2.7.jar
├── local.properties
├── proguard.cfg
├── project.properties
├── res/
│   ├── layout/
│   │   └── main.xml
│   ├── raw/
│   │   └── isoparser.properties
│   └── values/
│       └── strings.xml
└── src/
    └── com/
        ├── coremedia/
        │   └── iso/
        │       ├── AbstractBoxParser.java
        │       ├── Ascii.java
        │       ├── BoxParser.java
        │       ├── ChannelHelper.java
        │       ├── Hex.java
        │       ├── IsoFile.java
        │       ├── IsoFileConvenienceHelper.java
        │       ├── IsoTypeReader.java
        │       ├── IsoTypeReaderVariable.java
        │       ├── IsoTypeWriter.java
        │       ├── IsoTypeWriterVariable.java
        │       ├── PropertyBoxParserImpl.java
        │       ├── Utf8.java
        │       └── boxes/
        │           ├── AbstractMediaHeaderBox.java
        │           ├── AlbumBox.java
        │           ├── AuthorBox.java
        │           ├── BitRateBox.java
        │           ├── Box.java
        │           ├── ChunkOffset64BitBox.java
        │           ├── ChunkOffsetBox.java
        │           ├── ClassificationBox.java
        │           ├── CompositionShiftLeastGreatestAtom.java
        │           ├── CompositionTimeToSample.java
        │           ├── ContainerBox.java
        │           ├── CopyrightBox.java
        │           ├── DataEntryUrlBox.java
        │           ├── DataEntryUrnBox.java
        │           ├── DataInformationBox.java
        │           ├── DataReferenceBox.java
        │           ├── DescriptionBox.java
        │           ├── EditBox.java
        │           ├── EditListBox.java
        │           ├── FileTypeBox.java
        │           ├── FreeBox.java
        │           ├── FreeSpaceBox.java
        │           ├── FullBox.java
        │           ├── GenericMediaHeaderBoxImpl.java
        │           ├── GenreBox.java
        │           ├── HandlerBox.java
        │           ├── HintMediaHeaderBox.java
        │           ├── ItemDataBox.java
        │           ├── ItemLocationBox.java
        │           ├── ItemProtectionBox.java
        │           ├── KeywordsBox.java
        │           ├── MediaBox.java
        │           ├── MediaHeaderBox.java
        │           ├── MediaInformationBox.java
        │           ├── MetaBox.java
        │           ├── MovieBox.java
        │           ├── MovieHeaderBox.java
        │           ├── NullMediaHeaderBox.java
        │           ├── ObjectDescriptorBox.java
        │           ├── OmaDrmAccessUnitFormatBox.java
        │           ├── OriginalFormatBox.java
        │           ├── PerformerBox.java
        │           ├── ProgressiveDownloadInformationBox.java
        │           ├── ProtectionSchemeInformationBox.java
        │           ├── RatingBox.java
        │           ├── RecordingYearBox.java
        │           ├── SampleAuxiliaryInformationOffsetsBox.java
        │           ├── SampleAuxiliaryInformationSizesBox.java
        │           ├── SampleDependencyTypeBox.java
        │           ├── SampleDescriptionBox.java
        │           ├── SampleSizeBox.java
        │           ├── SampleTableBox.java
        │           ├── SampleToChunkBox.java
        │           ├── SampleToGroupBox.java
        │           ├── SchemeInformationBox.java
        │           ├── SchemeTypeBox.java
        │           ├── SoundMediaHeaderBox.java
        │           ├── StaticChunkOffsetBox.java
        │           ├── SubSampleInformationBox.java
        │           ├── SubtitleMediaHeaderBox.java
        │           ├── SyncSampleBox.java
        │           ├── TimeToSampleBox.java
        │           ├── TitleBox.java
        │           ├── TrackBox.java
        │           ├── TrackHeaderBox.java
        │           ├── TrackReferenceBox.java
        │           ├── TrackReferenceTypeBox.java
        │           ├── UnknownBox.java
        │           ├── UserBox.java
        │           ├── UserDataBox.java
        │           ├── VideoMediaHeaderBox.java
        │           ├── WriteListener.java
        │           ├── XmlBox.java
        │           ├── apple/
        │           │   ├── AbstractAppleMetaDataBox.java
        │           │   ├── AppleAlbumArtistBox.java
        │           │   ├── AppleAlbumBox.java
        │           │   ├── AppleArtistBox.java
        │           │   ├── AppleCommentBox.java
        │           │   ├── AppleCompilationBox.java
        │           │   ├── AppleCopyrightBox.java
        │           │   ├── AppleCoverBox.java
        │           │   ├── AppleCustomGenreBox.java
        │           │   ├── AppleDataBox.java
        │           │   ├── AppleDataRateBox.java
        │           │   ├── AppleDataReferenceBox.java
        │           │   ├── AppleDescriptionBox.java
        │           │   ├── AppleEncoderBox.java
        │           │   ├── AppleGaplessPlaybackBox.java
        │           │   ├── AppleGenericBox.java
        │           │   ├── AppleGroupingBox.java
        │           │   ├── AppleIdBox.java
        │           │   ├── AppleItemListBox.java
        │           │   ├── AppleLosslessSpecificBox.java
        │           │   ├── AppleMeanBox.java
        │           │   ├── AppleMediaTypeBox.java
        │           │   ├── AppleNameBox.java
        │           │   ├── AppleNetworkBox.java
        │           │   ├── ApplePurchaseDateBox.java
        │           │   ├── AppleRatingBox.java
        │           │   ├── AppleRecordingYearBox.java
        │           │   ├── AppleReferenceMovieBox.java
        │           │   ├── AppleReferenceMovieDescriptorBox.java
        │           │   ├── AppleShowBox.java
        │           │   ├── AppleSortAlbumBox.java
        │           │   ├── AppleStandardGenreBox.java
        │           │   ├── AppleStoreAccountTypeBox.java
        │           │   ├── AppleStoreCountryCodeBox.java
        │           │   ├── AppleSynopsisBox.java
        │           │   ├── AppleTempBox.java
        │           │   ├── AppleTrackAuthorBox.java
        │           │   ├── AppleTrackNumberBox.java
        │           │   ├── AppleTrackTitleBox.java
        │           │   ├── AppleTvEpisodeBox.java
        │           │   ├── AppleTvEpisodeNumberBox.java
        │           │   ├── AppleTvSeasonBox.java
        │           │   └── AppleWaveBox.java
        │           ├── dece/
        │           │   └── TrickPlayBox.java
        │           ├── fragment/
        │           │   ├── MovieExtendsBox.java
        │           │   ├── MovieExtendsHeaderBox.java
        │           │   ├── MovieFragmentBox.java
        │           │   ├── MovieFragmentHeaderBox.java
        │           │   ├── MovieFragmentRandomAccessBox.java
        │           │   ├── MovieFragmentRandomAccessOffsetBox.java
        │           │   ├── SampleFlags.java
        │           │   ├── TrackExtendsBox.java
        │           │   ├── TrackFragmentBaseMediaDecodeTimeBox.java
        │           │   ├── TrackFragmentBox.java
        │           │   ├── TrackFragmentHeaderBox.java
        │           │   ├── TrackFragmentRandomAccessBox.java
        │           │   └── TrackRunBox.java
        │           ├── h264/
        │           │   └── AvcConfigurationBox.java
        │           ├── mdat/
        │           │   ├── DummyMap.java
        │           │   ├── MediaDataBox.java
        │           │   ├── SampleList.java
        │           │   └── Segment.java
        │           ├── sampleentry/
        │           │   ├── AmrSpecificBox.java
        │           │   ├── AudioSampleEntry.java
        │           │   ├── MpegSampleEntry.java
        │           │   ├── Ovc1VisualSampleEntryImpl.java
        │           │   ├── SampleEntry.java
        │           │   ├── SubtitleSampleEntry.java
        │           │   ├── TextSampleEntry.java
        │           │   └── VisualSampleEntry.java
        │           ├── threegpp26244/
        │           │   └── LocationInformationBox.java
        │           └── vodafone/
        │               ├── AlbumArtistBox.java
        │               ├── ContentDistributorIdBox.java
        │               ├── CoverUriBox.java
        │               └── LyricsUriBox.java
        ├── googlecode/
        │   └── mp4parser/
        │       ├── AbstractBox.java
        │       ├── AbstractContainerBox.java
        │       ├── AbstractFullBox.java
        │       ├── FullContainerBox.java
        │       ├── annotations/
        │       │   ├── DoNotParseDetail.java
        │       │   └── ParseDetail.java
        │       ├── authoring/
        │       │   ├── AbstractTrack.java
        │       │   ├── DateHelper.java
        │       │   ├── Movie.java
        │       │   ├── Mp4TrackImpl.java
        │       │   ├── Track.java
        │       │   ├── TrackMetaData.java
        │       │   ├── builder/
        │       │   │   ├── ByteBufferHelper.java
        │       │   │   ├── DefaultMp4Builder.java
        │       │   │   ├── FragmentIntersectionFinder.java
        │       │   │   ├── FragmentedMp4Builder.java
        │       │   │   ├── Mp4Builder.java
        │       │   │   ├── SyncSampleIntersectFinderImpl.java
        │       │   │   ├── TwoSecondIntersectionFinder.java
        │       │   │   └── smoothstreaming/
        │       │   │       ├── AudioQuality.java
        │       │   │       ├── FlatManifestWriterImpl.java
        │       │   │       ├── FlatPackageWriterImpl.java
        │       │   │       ├── ManifestWriter.java
        │       │   │       ├── PackageWriter.java
        │       │   │       └── VideoQuality.java
        │       │   ├── container/
        │       │   │   └── mp4/
        │       │   │       └── MovieCreator.java
        │       │   └── tracks/
        │       │       ├── AACTrackImpl.java
        │       │       ├── AC3TrackImpl.java
        │       │       ├── Amf0Track.java
        │       │       ├── AppendTrack.java
        │       │       ├── ChangeTimeScaleTrack.java
        │       │       ├── CroppedTrack.java
        │       │       ├── DivideTimeScaleTrack.java
        │       │       ├── EC3TrackImpl.java
        │       │       ├── H264TrackImpl.java
        │       │       ├── MultiplyTimeScaleTrack.java
        │       │       └── TextTrackImpl.java
        │       ├── boxes/
        │       │   ├── AC3SpecificBox.java
        │       │   ├── AbstractSampleEncryptionBox.java
        │       │   ├── AbstractTrackEncryptionBox.java
        │       │   ├── DTSSpecificBox.java
        │       │   ├── EC3SpecificBox.java
        │       │   ├── MLPSpecificBox.java
        │       │   ├── adobe/
        │       │   │   └── ActionMessageFormat0SampleEntryBox.java
        │       │   ├── apple/
        │       │   │   └── TimeCodeBox.java
        │       │   ├── basemediaformat/
        │       │   │   ├── AvcNalUnitStorageBox.java
        │       │   │   ├── SampleEncryptionBox.java
        │       │   │   └── TrackEncryptionBox.java
        │       │   ├── mp4/
        │       │   │   ├── AbstractDescriptorBox.java
        │       │   │   ├── ESDescriptorBox.java
        │       │   │   ├── ObjectDescriptorBox.java
        │       │   │   └── objectdescriptors/
        │       │   │       ├── AudioSpecificConfig.java
        │       │   │       ├── BaseDescriptor.java
        │       │   │       ├── BitReaderBuffer.java
        │       │   │       ├── BitWriterBuffer.java
        │       │   │       ├── DecoderConfigDescriptor.java
        │       │   │       ├── DecoderSpecificInfo.java
        │       │   │       ├── Descriptor.java
        │       │   │       ├── ESDescriptor.java
        │       │   │       ├── ExtensionDescriptor.java
        │       │   │       ├── ExtensionProfileLevelDescriptor.java
        │       │   │       ├── InitialObjectDescriptor.java
        │       │   │       ├── ObjectDescriptor.java_bak
        │       │   │       ├── ObjectDescriptorBase.java
        │       │   │       ├── ObjectDescriptorFactory.java
        │       │   │       ├── ProfileLevelIndicationDescriptor.java
        │       │   │       ├── SLConfigDescriptor.java
        │       │   │       └── UnknownDescriptor.java
        │       │   ├── piff/
        │       │   │   ├── PiffSampleEncryptionBox.java
        │       │   │   ├── PiffTrackEncryptionBox.java
        │       │   │   ├── PlayReadyHeader.java
        │       │   │   ├── ProtectionSpecificHeader.java
        │       │   │   ├── TfrfBox.java
        │       │   │   ├── TfxdBox.java
        │       │   │   └── UuidBasedProtectionSystemSpecificHeaderBox.java
        │       │   ├── threegpp26245/
        │       │   │   └── FontTableBox.java
        │       │   └── ultraviolet/
        │       │       ├── AssetInformationBox.java
        │       │       └── BaseLocationBox.java
        │       ├── h264/
        │       │   ├── BTree.java
        │       │   ├── CharCache.java
        │       │   ├── Debug.java
        │       │   ├── model/
        │       │   │   ├── AspectRatio.java
        │       │   │   ├── BitstreamElement.java
        │       │   │   ├── ChromaFormat.java
        │       │   │   ├── HRDParameters.java
        │       │   │   ├── PictureParameterSet.java
        │       │   │   ├── ScalingList.java
        │       │   │   ├── ScalingMatrix.java
        │       │   │   ├── SeqParameterSet.java
        │       │   │   └── VUIParameters.java
        │       │   ├── read/
        │       │   │   ├── BitstreamReader.java
        │       │   │   └── CAVLCReader.java
        │       │   └── write/
        │       │       ├── BitstreamWriter.java
        │       │       └── CAVLCWriter.java
        │       ├── srt/
        │       │   └── SrtParser.java
        │       └── util/
        │           ├── ByteBufferByteChannel.java
        │           ├── CastUtils.java
        │           ├── Math.java
        │           ├── Path.java
        │           └── UUIDConverter.java
        └── todoroo/
            └── aacenc/
                ├── AACEncoder.java
                ├── AACToM4A.java
                ├── ContextManager.java
                └── Main.java
Download .txt
Showing preview only (226K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2761 symbols across 314 files)

FILE: jni/aac-enc.c
  function throwException (line 18) | void throwException(JNIEnv* env, const char *name, const char *msg)
  function Java_com_todoroo_aacenc_AACEncoder_init (line 42) | void
  function Java_com_todoroo_aacenc_AACEncoder_encode (line 89) | void
  function Java_com_todoroo_aacenc_AACEncoder_uninit (line 143) | void
  function JNICALL (line 153) | JNICALL

FILE: jni/basic_op/basicop2.c
  function Word16 (line 60) | Word16 saturate(Word32 L_var1)
  function Word16 (line 116) | Word16 add (Word16 var1, Word16 var2)
  function Word16 (line 162) | Word16 sub(Word16 var1, Word16 var2)
  function Word16 (line 261) | Word16 shl (Word16 var1, Word16 var2)
  function Word16 (line 328) | Word16 shr (Word16 var1, Word16 var2)
  function Word16 (line 397) | Word16 mult (Word16 var1, Word16 var2)
  function Word32 (line 451) | Word32 L_mult(Word16 var1, Word16 var2)
  function Word16 (line 537) | Word16 extract_h (Word32 L_var1)
  function Word16 (line 575) | Word16 extract_l(Word32 L_var1)
  function Word16 (line 617) | Word16 round16(Word32 L_var1)
  function Word32 (line 667) | Word32 L_mac (Word32 L_var3, Word16 var1, Word16 var2)
  function Word32 (line 717) | Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2)
  function Word32 (line 762) | Word32 L_add (Word32 L_var1, Word32 L_var2)
  function Word32 (line 813) | Word32 L_sub(Word32 L_var1, Word32 L_var2)
  function Word16 (line 904) | Word16 mult_r (Word16 var1, Word16 var2)
  function Word32 (line 959) | Word32 L_shl (Word32 L_var1, Word16 var2)
  function Word32 (line 1024) | Word32 L_shr (Word32 L_var1, Word16 var2)
  function Word16 (line 1096) | Word16 shr_r (Word16 var1, Word16 var2)
  function Word16 (line 1160) | Word16 mac_r (Word32 L_var3, Word16 var1, Word16 var2)
  function Word16 (line 1211) | Word16 msu_r (Word32 L_var3, Word16 var1, Word16 var2)
  function Word32 (line 1341) | Word32 L_shr_r (Word32 L_var1, Word16 var2)
  function Word16 (line 1451) | Word16 norm_s (Word16 var1)
  function Word16 (line 1520) | Word16 div_s (Word16 var1, Word16 var2)
  function Word16 (line 1594) | Word16 norm_l (Word32 L_var1)

FILE: jni/basic_op/oper_32b.c
  function L_Extract (line 42) | void L_Extract (Word32 L_32, Word16 *hi, Word16 *lo)
  function Word32 (line 70) | Word32 L_Comp (Word16 hi, Word16 lo)
  function Word32 (line 98) | Word32 Mpy_32 (Word16 hi1, Word16 lo1, Word16 hi2, Word16 lo2)
  function Word32 (line 127) | Word32 Mpy_32_16 (Word16 hi, Word16 lo, Word16 n)
  function Word32 (line 179) | Word32 Div_32 (Word32 L_num, Word32 denom)
  function Word16 (line 210) | Word16 iLog4(Word32 value)
  function Word32 (line 243) | Word32 rsqrt(Word32 value,     /*!< Operand to square root (0.0 ... 1) */
  function Word32 (line 345) | Word32 pow2_xy(Word32 x, Word32 y)

FILE: jni/inc/aacenc_core.h
  type AACENC_CONFIG (line 39) | typedef  struct {
  type AAC_ENCODER (line 49) | typedef struct {

FILE: jni/inc/adj_thr_data.h
  type BRES_PARAM (line 30) | typedef struct {
  type AH_PARAM (line 37) | typedef struct {
  type MINSNR_ADAPT_PARAM (line 42) | typedef struct {
  type ATS_ELEMENT (line 49) | typedef struct {
  type ADJ_THR_STATE (line 64) | typedef struct {

FILE: jni/inc/basic_op.h
  function Word32 (line 228) | __inline Word32 ASM_L_shr(Word32 L_var1, Word32 var2)
  function Word32 (line 233) | __inline Word32 ASM_L_shl(Word32 L_var1, Word32 var2)
  function Word32 (line 246) | __inline Word32 ASM_shr(Word32 L_var1, Word32 var2)
  function Word32 (line 259) | __inline Word32 ASM_shl(Word32 L_var1, Word32 var2)
  function Word32 (line 296) | __inline Word32 saturate(Word32 L_var1)
  function Word32 (line 344) | __inline Word32 shl (Word32 var1, Word32 var2)
  function Word32 (line 383) | __inline Word32 shr (Word32 var1, Word32 var2)
  function Word32 (line 427) | __inline Word32 L_mult(Word32 var1, Word32 var2)
  function Word32 (line 457) | __inline Word32 L_msu (Word32 L_var3, Word32 var1, Word32 var2)
  function Word32 (line 480) | __inline Word32 L_sub(Word32 L_var1, Word32 L_var2)
  function Word32 (line 509) | __inline Word32 L_shl(Word32 L_var1, Word32 var2)
  function Word32 (line 552) | __inline Word32 L_shr (Word32 L_var1, Word32 var2)
  function Word32 (line 595) | __inline Word32 add (Word32 var1, Word32 var2)
  function Word32 (line 623) | __inline Word32 sub(Word32 var1, Word32 var2)
  function Word32 (line 651) | __inline Word32 div_s (Word32 var1, Word32 var2)
  function Word32 (line 686) | __inline Word32 mult (Word32 var1, Word32 var2)
  function Word32 (line 727) | __inline Word32 norm_s (Word32 var1)
  function Word32 (line 776) | __inline Word32 norm_l (Word32 L_var1)
  function Word32 (line 986) | __inline Word32 round16(Word32 L_var1)
  function Word32 (line 1010) | __inline Word32 L_mac (Word32 L_var3, Word32 var1, Word32 var2)
  function Word32 (line 1033) | __inline Word32 L_add (Word32 L_var1, Word32 L_var2)
  function Word32 (line 1062) | __inline Word32 mult_r (Word32 var1, Word32 var2)
  function Word32 (line 1078) | __inline Word32 shr_r (Word32 var1, Word32 var2)
  function Word32 (line 1104) | __inline Word32 mac_r (Word32 L_var3, Word32 var1, Word32 var2)
  function Word32 (line 1116) | __inline Word32 msu_r (Word32 L_var3, Word32 var1, Word32 var2)
  function Word32 (line 1128) | __inline Word32 L_shr_r (Word32 L_var1, Word32 var2)
  function Word32 (line 1154) | __inline Word32 extract_h (Word32 L_var1)
  function Word32 (line 1165) | __inline Word32 extract_l(Word32 L_var1)

FILE: jni/inc/bit_cnt.h
  type codeBookNo (line 34) | enum codeBookNo{
  type codeBookNdx (line 55) | enum codeBookNdx{
  type codeBookLav (line 77) | enum codeBookLav{

FILE: jni/inc/bitbuffer.h
  type direction (line 29) | enum direction
  type BIT_BUF (line 46) | struct BIT_BUF
  type BIT_BUF (line 64) | struct BIT_BUF

FILE: jni/inc/bitenc.h
  type BITSTREAMENCODER_INIT (line 31) | struct BITSTREAMENCODER_INIT

FILE: jni/inc/block_switch.h
  type BLOCK_SWITCHING_CONTROL (line 37) | typedef struct{

FILE: jni/inc/dyn_bits.h
  type SECTION_INFO (line 39) | typedef struct
  type SECTION_DATA (line 51) | typedef struct

FILE: jni/inc/interface.h
  type TOOLSINFO (line 44) | struct TOOLSINFO {
  type PSY_OUT_CHANNEL (line 50) | typedef struct {
  type PSY_OUT_ELEMENT (line 76) | typedef struct {
  type PSY_OUT (line 82) | typedef struct {

FILE: jni/inc/line_pe.h
  type PE_CHANNEL_DATA (line 31) | typedef struct {
  type PE_DATA (line 43) | typedef struct {

FILE: jni/inc/oper_32b.h
  function Word32 (line 44) | __inline Word32 L_mpy_ls(Word32 L_var2, Word16 var1)
  function Word32 (line 60) | __inline Word32 L_mpy_wx(Word32 L_var2, Word16 var1)

FILE: jni/inc/psy_configuration.h
  type PSY_CONFIGURATION_LONG (line 30) | typedef struct{
  type PSY_CONFIGURATION_SHORT (line 60) | typedef struct{

FILE: jni/inc/psy_data.h
  type SFB_THRESHOLD (line 33) | typedef struct{
  type SFB_ENERGY (line 38) | typedef struct{
  type SFB_ENERGY_SUM (line 43) | typedef struct{
  type PSY_DATA (line 49) | typedef struct{

FILE: jni/inc/psy_main.h
  type PSY_KERNEL (line 33) | typedef struct  {

FILE: jni/inc/qc_data.h
  type ENCODER_MODE (line 33) | typedef enum {
  type ELEMENT_TYPE (line 40) | typedef enum {
  type ELEMENT_INFO (line 51) | typedef struct {
  type PADDING (line 58) | typedef struct {
  type QC_INIT (line 65) | struct QC_INIT{
  type QC_OUT_CHANNEL (line 78) | typedef struct
  type QC_OUT_ELEMENT (line 90) | typedef struct
  type QC_OUT (line 100) | typedef struct
  type ELEMENT_BITS (line 113) | typedef struct {
  type QC_STATE (line 122) | typedef struct

FILE: jni/inc/qc_main.h
  type QC_INIT (line 39) | struct QC_INIT

FILE: jni/inc/tns.h
  type TNS_CONFIG_TABULATED (line 36) | typedef struct{ /*stuff that is tabulated dependent on bitrate etc. */
  type TNS_CONFIG (line 44) | typedef struct {   /*assigned at InitTime*/
  type TNS_SUBBLOCK_INFO (line 76) | typedef struct {
  type TNS_DATA_SHORT (line 82) | typedef struct{
  type TNS_DATA_LONG (line 86) | typedef struct{
  type TNS_DATA_RAW (line 90) | typedef struct{
  type TNS_DATA (line 95) | typedef struct{
  type TNS_INFO (line 100) | typedef struct{

FILE: jni/inc/tns_param.h
  type TNS_MAX_TAB_ENTRY (line 31) | typedef struct{
  type TNS_INFO_TAB (line 37) | typedef struct{

FILE: jni/inc/typedef.h
  type Word8 (line 35) | typedef signed char Word8;
  type Word16 (line 36) | typedef short Word16;
  type Word32 (line 37) | typedef long Word32;
  type Flag (line 38) | typedef int Flag;
  type Word8 (line 41) | typedef signed char Word8;
  type Word16 (line 42) | typedef short Word16;
  type Word32 (line 43) | typedef long Word32;
  type Flag (line 44) | typedef int Flag;
  type Word8 (line 47) | typedef signed char Word8;
  type Word16 (line 48) | typedef short Word16;
  type Word32 (line 49) | typedef int Word32;
  type Flag (line 50) | typedef int Flag;
  type Flag (line 59) | typedef int Flag;

FILE: jni/inc/typedefs.h
  type Char (line 62) | typedef char Char;
  type Word8 (line 67) | typedef signed char Word8;
  type UWord8 (line 68) | typedef unsigned char UWord8;
  type Word16 (line 72) | typedef short Word16;
  type UWord16 (line 73) | typedef unsigned short UWord16;
  type Word32 (line 78) | typedef int Word32;
  type UWord32 (line 79) | typedef unsigned int UWord32;
  type Word64 (line 84) | typedef long long Word64;
  type UWord64 (line 85) | typedef unsigned long long UWord64;
  type __int64 (line 87) | typedef __int64 Word64;
  type UWord64 (line 88) | typedef unsigned __int64 UWord64;

FILE: jni/inc/voAAC.h
  type VOAACFRAMETYPE (line 35) | typedef enum {
  type AACENC_PARAM (line 44) | typedef  struct {

FILE: jni/inc/voAMRWB.h
  type VOAMRWBMODE (line 32) | typedef enum {
  type VOAMRWBFRAMETYPE (line 49) | typedef enum {

FILE: jni/inc/voAudio.h
  type VO_AUDIO_CODINGTYPE (line 49) | typedef enum VO_AUDIO_CODINGTYPE {
  type VO_AUDIO_CHANNELTYPE (line 75) | typedef enum {
  type VO_AUDIO_FORMAT (line 92) | typedef struct
  type VO_AUDIO_OUTPUTINFO (line 102) | typedef struct
  type VO_AUDIO_CODECAPI (line 112) | typedef struct VO_AUDIO_CODECAPI

FILE: jni/inc/voMem.h
  type VO_MEM_INFO (line 32) | typedef struct
  type VO_MEM_OPERATOR (line 41) | typedef struct VO_MEM_OPERATOR

FILE: jni/inc/voType.h
  type VO_VOID (line 62) | typedef void VO_VOID;
  type VO_U8 (line 65) | typedef unsigned char VO_U8;
  type VO_BYTE (line 68) | typedef unsigned char VO_BYTE;
  type VO_S8 (line 71) | typedef signed char VO_S8;
  type VO_CHAR (line 74) | typedef char VO_CHAR;
  type VO_U16 (line 77) | typedef unsigned short VO_U16;
  type VO_WCHAR (line 81) | typedef unsigned short VO_WCHAR;
  type VO_WCHAR (line 84) | typedef unsigned char VO_WCHAR;
  type VO_S16 (line 89) | typedef signed short VO_S16;
  type VO_U32 (line 92) | typedef unsigned long VO_U32;
  type VO_S32 (line 95) | typedef signed long VO_S32;
  type VO_U64 (line 106) | typedef unsigned __int64  VO_U64;
  type VO_S64 (line 108) | typedef signed   __int64  VO_S64;
  type VO_U64 (line 111) | typedef unsigned long long VO_U64;
  type VO_S64 (line 113) | typedef signed long long VO_S64;
  type VO_BOOL (line 121) | typedef enum VO_BOOL {
  type VO_INPUT_TYPE (line 179) | typedef enum {
  type VO_CODECBUFFER (line 189) | typedef struct {
  type VO_INIT_MEM_FlAG (line 199) | typedef enum{
  type VO_CODEC_INIT_USERDATA (line 209) | typedef struct{

FILE: jni/src/aacenc.c
  function VO_U32 (line 37) | VO_U32 VO_API voAACEncInit(VO_HANDLE * phCodec,VO_AUDIO_CODINGTYPE vType...
  function VO_U32 (line 162) | VO_U32 VO_API voAACEncSetInputData(VO_HANDLE hCodec, VO_CODECBUFFER * pI...
  function VO_U32 (line 208) | VO_U32 VO_API voAACEncGetOutputData(VO_HANDLE hCodec, VO_CODECBUFFER * p...
  function VO_U32 (line 287) | VO_U32 VO_API voAACEncUninit(VO_HANDLE hCodec)
  function VO_U32 (line 311) | VO_U32 VO_API voAACEncSetParam(VO_HANDLE hCodec, VO_S32 uParamID, VO_PTR...
  function VO_U32 (line 472) | VO_U32 VO_API voAACEncGetParam(VO_HANDLE hCodec, VO_S32 uParamID, VO_PTR...
  function VO_S32 (line 482) | VO_S32 VO_API voGetAACEncAPI(VO_AUDIO_CODECAPI * pDecHandle)

FILE: jni/src/aacenc_core.c
  function AacInitDefaultConfig (line 40) | void AacInitDefaultConfig(AACENC_CONFIG *config)
  function Word16 (line 57) | Word16  AacEncOpen(  AAC_ENCODER*      hAacEnc,        /* pointer to an ...
  function Word16 (line 144) | Word16 AacEncEncode(AAC_ENCODER *aacEnc,		/*!< an encoder handle */
  function AacEncClose (line 220) | void AacEncClose (AAC_ENCODER* hAacEnc, VO_MEM_OPERATOR *pMemOP)

FILE: jni/src/adj_thr.c
  type _avoid_hole_state (line 43) | enum _avoid_hole_state {
  function Word16 (line 56) | Word16 bits2pe(const Word16 bits) {
  function calcThreshExp (line 67) | static void calcThreshExp(Word32 thrExp[MAX_CHANNELS][MAX_GROUPED_SFB],
  function adaptMinSnr (line 91) | static void adaptMinSnr(PSY_OUT_CHANNEL     psyOutChannel[MAX_CHANNELS],
  function initAvoidHoleFlag (line 161) | static void initAvoidHoleFlag(Word16 ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB],
  function calcPeNoAH (line 324) | static void calcPeNoAH(Word16          *pe,
  function reduceThresholds (line 364) | static void reduceThresholds(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
  function correctThresh (line 411) | static void correctThresh(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
  function reduceMinSnr (line 525) | static void reduceMinSnr(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
  function allowMoreHoles (line 575) | static void allowMoreHoles(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
  function adaptThresholdsToPe (line 730) | static void adaptThresholdsToPe(PSY_OUT_CHANNEL     psyOutChannel[MAX_CH...
  function Word16 (line 824) | static Word16 calcBitSave(Word16 fillLevel,
  function Word16 (line 853) | static Word16 calcBitSpend(Word16 fillLevel,
  function adjustPeMinMax (line 881) | static void adjustPeMinMax(const Word16 currPe,
  function Word16 (line 936) | static Word16 bitresCalcBitFac( const Word16   bitresBits,
  function AdjThrInit (line 990) | void AdjThrInit(ADJ_THR_STATE *hAdjThr,
  function calcPeCorrection (line 1071) | static void calcPeCorrection(Word16 *correctionFac,
  function AdjustThresholds (line 1121) | void AdjustThresholds(ADJ_THR_STATE   *adjThrState,
  function AdjThrUpdate (line 1219) | void AdjThrUpdate(ATS_ELEMENT *AdjThrStateElement,

FILE: jni/src/band_nrg.c
  function CalcBandEnergy (line 33) | void CalcBandEnergy(const Word32 *mdctSpectrum,
  function CalcBandEnergyMS (line 60) | void CalcBandEnergyMS(const Word32 *mdctSpectrumLeft,

FILE: jni/src/bit_cnt.c
  function count1_2_3_4_5_6_7_8_9_10_11 (line 42) | static void count1_2_3_4_5_6_7_8_9_10_11(const Word16 *values,
  function count3_4_5_6_7_8_9_10_11 (line 118) | static void count3_4_5_6_7_8_9_10_11(const Word16 *values,
  function count5_6_7_8_9_10_11 (line 192) | static void count5_6_7_8_9_10_11(const Word16 *values,
  function count7_8_9_10_11 (line 249) | static void count7_8_9_10_11(const Word16 *values,
  function count9_10_11 (line 297) | static void count9_10_11(const Word16 *values,
  function count11 (line 345) | static void count11(const Word16 *values,
  function countEsc (line 386) | static void countEsc(const Word16 *values,
  function Word16 (line 469) | Word16 bitCount(const Word16 *values,
  function Word16 (line 495) | Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_...
  function Word16 (line 867) | Word16 bitCountScalefactorDelta(Word16 delta)
  function Word16 (line 872) | Word16 codeScalefactorDelta(Word16 delta, HANDLE_BIT_BUF hBitstream)

FILE: jni/src/bitbuffer.c
  function updateBitBufWordPtr (line 31) | static void updateBitBufWordPtr(HANDLE_BIT_BUF hBitBuf,
  function HANDLE_BIT_BUF (line 54) | HANDLE_BIT_BUF CreateBitBuffer(HANDLE_BIT_BUF hBitBuf,
  function DeleteBitBuffer (line 82) | void DeleteBitBuffer(HANDLE_BIT_BUF *hBitBuf)
  function ResetBitBuf (line 95) | void ResetBitBuf(HANDLE_BIT_BUF hBitBuf,
  function CopyBitBuf (line 117) | void CopyBitBuf(HANDLE_BIT_BUF hBitBufSrc,
  function Word16 (line 129) | Word16 GetBitsAvail(HANDLE_BIT_BUF hBitBuf)
  function Word16 (line 140) | Word16 WriteBits(HANDLE_BIT_BUF hBitBuf,

FILE: jni/src/bitenc.c
  function Word32 (line 41) | static Word32 encodeSpectralData(Word16             *sfbOffset,
  function encodeGlobalGain (line 76) | static void encodeGlobalGain(Word16 globalGain,
  function encodeIcsInfo (line 93) | static void encodeIcsInfo(Word16 blockType,
  function Word32 (line 133) | static Word32 encodeSectionData(SECTION_DATA *sectionData,
  function Word32 (line 179) | static Word32 encodeScaleFactorData(UWord16        *maxValueInSfb,
  function encodeMSInfo (line 221) | static void encodeMSInfo(Word16          sfbCnt,
  function encodeTnsData (line 266) | static void encodeTnsData(TNS_INFO tnsInfo,
  function encodeGainControlData (line 355) | static void encodeGainControlData(HANDLE_BIT_BUF hBitStream)
  function encodePulseData (line 367) | static void encodePulseData(HANDLE_BIT_BUF hBitStream)
  function writeIndividualChannelStream (line 380) | static void
  function Word16 (line 432) | static Word16 writeSingleChannelElement(Word16 instanceTag,
  function Word16 (line 465) | static Word16 writeChannelPairElement(Word16 instanceTag,
  function writeFillElement (line 528) | static void writeFillElement( const UWord8 *ancBytes,
  function Word16 (line 575) | Word16 WriteBitstream (HANDLE_BIT_BUF hBitStream,

FILE: jni/src/block_switch.c
  function Word16 (line 75) | Word16 InitBlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
  function Word16 (line 109) | Word16 BlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
  function Word32 (line 249) | static Word32 SrchMaxWithIndex(const Word32 in[], Word16 *index, Word16 n)
  function Word32 (line 278) | Word32 CalcWindowEnergy(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
  function Word16 (line 339) | static Word16 IIRFilter(const Word16 in, const Word32 coeff[], Word32 st...
  function Word16 (line 372) | Word16 SyncBlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl...

FILE: jni/src/channel_map.c
  function Word16 (line 30) | static Word16 initElement(ELEMENT_INFO* elInfo, ELEMENT_TYPE elType)
  function Word16 (line 64) | Word16 InitElementInfo (Word16 nChannels, ELEMENT_INFO* elInfo)
  function Word16 (line 87) | Word16 InitElementBits(ELEMENT_BITS *elementBits,

FILE: jni/src/cmnMemory.c
  function VO_U32 (line 29) | VO_U32 cmnMemAlloc (VO_S32 uID,  VO_MEM_INFO * pMemInfo)
  function VO_U32 (line 38) | VO_U32 cmnMemFree (VO_S32 uID, VO_PTR pMem)
  function VO_U32 (line 44) | VO_U32	cmnMemSet (VO_S32 uID, VO_PTR pBuff, VO_U8 uValue, VO_U32 uSize)
  function VO_U32 (line 50) | VO_U32	cmnMemCopy (VO_S32 uID, VO_PTR pDest, VO_PTR pSource, VO_U32 uSize)
  function VO_U32 (line 56) | VO_U32	cmnMemCheck (VO_S32 uID, VO_PTR pBuffer, VO_U32 uSize)
  function VO_S32 (line 61) | VO_S32 cmnMemCompare (VO_S32 uID, VO_PTR pBuffer1, VO_PTR pBuffer2, VO_U...
  function VO_U32 (line 66) | VO_U32	cmnMemMove (VO_S32 uID, VO_PTR pDest, VO_PTR pSource, VO_U32 uSize)

FILE: jni/src/dyn_bits.c
  function buildBitLookUp (line 35) | static void
  function Word16 (line 65) | static Word16
  function Word16 (line 81) | static Word16
  function mergeBitLookUp (line 96) | static void
  function Word16 (line 106) | static Word16
  function Word16 (line 126) | static Word16
  function gmStage0 (line 153) | static void
  function gmStage1 (line 174) | static void
  function gmStage2 (line 211) | static void
  function noiselessCounter (line 274) | static void
  function scfCount (line 370) | static void scfCount(const Word16 *scalefacGain,
  type Word16 (line 506) | typedef Word16 (*lookUpTable)[CODE_BOOK_ESC_NDX + 1];
  function Word16 (line 509) | Word16

FILE: jni/src/grp_data.c
  function groupShortData (line 34) | void

FILE: jni/src/interface.c
  function BuildInterface (line 34) | void BuildInterface(Word32                  *groupedMdctSpectrum,

FILE: jni/src/line_pe.c
  function prepareSfbPe (line 40) | void prepareSfbPe(PE_DATA *peData,
  function calcSfbPe (line 71) | void calcSfbPe(PE_DATA *peData,

FILE: jni/src/memalign.c
  function mem_free (line 95) | void

FILE: jni/src/ms_stereo.c
  function MsStereoProcessing (line 37) | void MsStereoProcessing(Word32       *sfbEnergyLeft,

FILE: jni/src/pre_echo_control.c
  function InitPreEchoControl (line 36) | void InitPreEchoControl(Word32 *pbThresholdNm1,
  function PreEchoControl (line 55) | void PreEchoControl(Word32 *pbThresholdNm1,

FILE: jni/src/psy_configuration.c
  type SFB_INFO_TAB (line 38) | typedef struct{
  function Word32 (line 69) | Word32 GetSRIndex(Word32 sampleRate)
  function Word16 (line 97) | static Word16 atan_1000(Word32 val)
  function Word16 (line 122) | static Word16 BarcLineValue(Word16 noOfLines, Word16 fftLine, Word32 sam...
  function initThrQuiet (line 141) | static void initThrQuiet(Word16  numPb,
  function initSpreading (line 187) | static void initSpreading(Word16  numPb,
  function initBarcValues (line 252) | static void initBarcValues(Word16  numPb,
  function initMinSnr (line 278) | static void initMinSnr(const Word32  bitrate,
  function Word16 (line 345) | Word16 InitPsyConfigurationLong(Word32 bitrate,
  function Word16 (line 429) | Word16 InitPsyConfigurationShort(Word32 bitrate,

FILE: jni/src/psy_main.c
  function Word16 (line 78) | Word16 PsyNew(PSY_KERNEL *hPsy, Word32 nChan, VO_MEM_OPERATOR *pMemOP)
  function Word16 (line 119) | Word16 PsyDelete(PSY_KERNEL  *hPsy, VO_MEM_OPERATOR *pMemOP)
  function Word16 (line 155) | Word16 PsyOutNew(PSY_OUT *hPsyOut, VO_MEM_OPERATOR *pMemOP)
  function Word16 (line 171) | Word16 PsyOutDelete(PSY_OUT *hPsyOut, VO_MEM_OPERATOR *pMemOP)
  function Word16 (line 186) | Word16 psyMainInit(PSY_KERNEL *hPsy,
  function Word16 (line 242) | Word16 psyMain(Word16                   nChannels,
  function Word16 (line 470) | static Word16 advancePsychLong(PSY_DATA* psyData,
  function Word16 (line 626) | static Word16 advancePsychLongMS (PSY_DATA psyData[MAX_CHANNELS],
  function Word16 (line 649) | static Word16 advancePsychShort(PSY_DATA* psyData,
  function Word16 (line 793) | static Word16 advancePsychShortMS (PSY_DATA psyData[MAX_CHANNELS],

FILE: jni/src/qc_main.c
  type FRAME_LEN_RESULT_MODE (line 37) | typedef enum{
  function Word16 (line 60) | static Word16 calcFrameLen(Word32 bitRate,
  function Word16 (line 89) | static Word16 framePadding(Word32 bitRate,
  function Word16 (line 121) | Word16 QCOutNew(QC_OUT *hQC, Word16 nChannels, VO_MEM_OPERATOR *pMemOP)
  function QCOutDelete (line 161) | void QCOutDelete(QC_OUT* hQC, VO_MEM_OPERATOR *pMemOP)
  function Word16 (line 192) | Word16 QCNew(QC_STATE *hQC, VO_MEM_OPERATOR *pMemOP)
  function QCDelete (line 205) | void QCDelete(QC_STATE *hQC, VO_MEM_OPERATOR *pMemOP)
  function Word16 (line 221) | Word16 QCInit(QC_STATE *hQC,
  function Word16 (line 257) | Word16 QCMain(QC_STATE* hQC,
  function Word16 (line 404) | static Word16 calcMaxValueInSfb(Word16 sfbCnt,
  function updateBitres (line 442) | void updateBitres(QC_STATE* qcKernel,
  function Word16 (line 474) | Word16 FinalizeBitConsumption(QC_STATE *qcKernel,
  function Word16 (line 544) | Word16 AdjustBitrate(QC_STATE        *hQC,

FILE: jni/src/quantize.c
  function Word32 (line 41) | __inline Word32 pow34(Word32 x)
  function Word16 (line 56) | static Word16 quantizeSingleLine(const Word16 gain, const Word32 absSpec...
  function quantizeLines (line 104) | static void quantizeLines(const Word16 gain,
  function iquantizeLines (line 228) | static void iquantizeLines(const Word16 gain,
  function QuantizeSpectrum (line 290) | void QuantizeSpectrum(Word16 sfbCnt,
  function Word32 (line 327) | Word32 calcSfbDist(const Word32 *spec,

FILE: jni/src/sf_estim.c
  function Word32 (line 61) | __inline Word32 formfac_sqrt(Word32 x)
  function CalcFormFactorChannel (line 94) | static void
  function Word16 (line 144) | static Word16 improveScf(Word32 *spec,
  function Word16 (line 233) | static Word16 countSingleScfBits(Word16 scf, Word16 scfLeft, Word16 scfR...
  function Word16 (line 251) | static Word16 calcSingleSpecPe(Word16 scf, Word16 sfbConstPePart, Word16...
  function Word16 (line 278) | static Word16 countScfBitsDiff(Word16 *scfOld, Word16 *scfNew,
  function Word16 (line 328) | static Word16 calcSpecPeDiff(Word16 *scfOld,
  function assimilateSingleScf (line 392) | static void assimilateSingleScf(PSY_OUT_CHANNEL *psyOutChan,
  function assimilateMultipleScf (line 559) | static void assimilateMultipleScf(PSY_OUT_CHANNEL *psyOutChan,
  function EstimateScaleFactorsChannel (line 697) | static void
  function CalcFormFactor (line 843) | void
  function EstimateScaleFactors (line 863) | void

FILE: jni/src/spreading.c
  function SpreadingMax (line 35) | void SpreadingMax(const Word16 pbCnt,

FILE: jni/src/stat_bits.c
  type SI_BITS (line 28) | typedef enum {
  function Word16 (line 49) | static Word16 countMsMaskBits(Word16   sfbCnt,
  function Word16 (line 78) | static Word16 tnsCount(TNS_INFO *tnsInfo, Word16 blockType)
  function Word16 (line 168) | static Word16 countTnsBits(TNS_INFO *tnsInfo,Word16 blockType)
  function Word16 (line 179) | Word16 countStaticBitdemand(PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],

FILE: jni/src/tns.c
  function Word16 (line 92) | static Word16 FreqToBandWithRounding(Word32 freq,                   /*!<...
  function Word16 (line 133) | Word16 InitTnsConfigurationLong(Word32 bitRate,          /*!< bitrate */
  function Word16 (line 200) | Word16 InitTnsConfigurationShort(Word32 bitRate,              /*!< bitra...
  function Word32 (line 266) | Word32 TnsDetect(TNS_DATA* tnsData,        /*!< tns data structure (modi...
  function TnsSync (line 355) | void TnsSync(TNS_DATA *tnsDataDest,
  function Word16 (line 391) | Word16 TnsEncode(TNS_INFO* tnsInfo,     /*!< tns info structure (modifie...
  function Word32 (line 506) | static Word32 m_pow2_cordic(Word32 x, Word16 scale)
  function CalcWeightedSpectrum (line 532) | static void CalcWeightedSpectrum(const Word32  spectrum[],         /*!< ...
  function Word16 (line 635) | static Word16 CalcTnsFilter(const Word16 *signal,
  function AutoCorrelation (line 673) | void AutoCorrelation(const Word16		 input[],
  function Word16 (line 716) | static Word16 AutoToParcor(Word32 workBuffer[], Word32 reflCoeff[], Word...
  function Word16 (line 772) | static Word16 Search3(Word32 parcor)
  function Word16 (line 786) | static Word16 Search4(Word32 parcor)
  function Parcor2Index (line 809) | static void Parcor2Index(const Word32 parcor[],   /*!< parcor coefficien...
  function Index2Parcor (line 833) | static void Index2Parcor(const Word16 index[],  /*!< quantized values */
  function Word32 (line 859) | static Word32 FIRLattice(Word16 order,           /*!< filter order */
  function AnalysisFilterLattice (line 895) | static void AnalysisFilterLattice(const  Word32 signal[],  /*!< input sp...
  function ApplyTnsMultTableToRatios (line 920) | void ApplyTnsMultTableToRatios(Word16 startCb,

FILE: jni/src/transform.c
  function Shuffle (line 42) | static void Shuffle(int *buf, int num, const unsigned char* bitTab)
  function Radix4First (line 73) | static void Radix4First(int *buf, int num)
  function Radix8First (line 108) | static void Radix8First(int *buf, int num)
  function Radix4FFT (line 188) | static void Radix4FFT(int *buf, int num, int bgn, int *twidTab)
  function PreMDCT (line 279) | static void PreMDCT(int *buf0, int num, const int *csptr)
  function PostMDCT (line 314) | static void PostMDCT(int *buf0, int num, const int *csptr)
  function Mdct_Long (line 357) | void Mdct_Long(int *buf)
  function Mdct_Short (line 375) | void Mdct_Short(int *buf)
  function shiftMdctDelayBuffer (line 397) | static void shiftMdctDelayBuffer(Word16 *mdctDelayBuffer, /*! start of m...
  function Word16 (line 438) | static Word16 getScalefactorOfShortVectorStride(const Word16 *vector, /*...
  function Transform_Real (line 462) | void Transform_Real(Word16 *mdctDelayBuffer,

FILE: src/com/coremedia/iso/AbstractBoxParser.java
  class AbstractBoxParser (line 33) | public abstract class AbstractBoxParser implements BoxParser {
    method createBox (line 37) | public abstract Box createBox(String type, byte[] userType, String par...
    method parseBox (line 47) | public Box parseBox(ReadableByteChannel byteChannel, ContainerBox pare...

FILE: src/com/coremedia/iso/Ascii.java
  class Ascii (line 23) | public final class Ascii {
    method convert (line 24) | public static byte[] convert(String s) {
    method convert (line 36) | public static String convert(byte[] b) {

FILE: src/com/coremedia/iso/BoxParser.java
  type BoxParser (line 27) | public interface BoxParser {
    method getClassForFourCc (line 28) | Class<? extends Box> getClassForFourCc(String type, byte[] userType, S...
    method parseBox (line 30) | Box parseBox(ReadableByteChannel in, ContainerBox parent) throws IOExc...

FILE: src/com/coremedia/iso/ChannelHelper.java
  class ChannelHelper (line 29) | public class ChannelHelper {
    method readFully (line 30) | public static ByteBuffer readFully(final ReadableByteChannel channel, ...
    method readFully (line 48) | public static void readFully(final ReadableByteChannel channel, final ...
    method readFully (line 53) | public static int readFully(final ReadableByteChannel channel, final B...
    method writeFully (line 69) | public static void writeFully(final WritableByteChannel channel, final...
    method close (line 80) | public static void close(SelectionKey key) {

FILE: src/com/coremedia/iso/Hex.java
  class Hex (line 28) | public class Hex {
    method encodeHex (line 31) | public static String encodeHex(byte[] data) {
    method decodeHex (line 42) | public static byte[] decodeHex(String hexString) {

FILE: src/com/coremedia/iso/IsoFile.java
  class IsoFile (line 36) | @DoNotParseDetail
    method IsoFile (line 41) | public IsoFile() {
    method IsoFile (line 45) | public IsoFile(ReadableByteChannel byteChannel) throws IOException {
    method IsoFile (line 52) | public IsoFile(ReadableByteChannel byteChannel, BoxParser boxParser) t...
    method createBoxParser (line 61) | protected BoxParser createBoxParser() {
    method _parseDetails (line 66) | @Override
    method parse (line 71) | public void parse(ReadableByteChannel inFC, ByteBuffer header, long co...
    method parse (line 75) | private void parse() throws IOException {
    method toString (line 93) | @DoNotParseDetail
    method fourCCtoBytes (line 111) | @DoNotParseDetail
    method bytesToFourCC (line 122) | @DoNotParseDetail
    method getNumOfBytesToFirstChild (line 136) | @Override
    method getSize (line 141) | @Override
    method getIsoFile (line 150) | @Override
    method getMovieBox (line 162) | @DoNotParseDetail
    method getBox (line 172) | public void getBox(WritableByteChannel os) throws IOException {

FILE: src/com/coremedia/iso/IsoFileConvenienceHelper.java
  class IsoFileConvenienceHelper (line 32) | public class IsoFileConvenienceHelper {
    method get (line 35) | public static Box get(ContainerBox containerBox, String path) {
    method get (line 54) | private static Box get(List<Box> boxes, List<String> path) {

FILE: src/com/coremedia/iso/IsoTypeReader.java
  class IsoTypeReader (line 21) | public final class IsoTypeReader {
    method readUInt32BE (line 24) | public static long readUInt32BE(ByteBuffer bb) {
    method readUInt32 (line 34) | public static long readUInt32(ByteBuffer bb) {
    method readUInt24 (line 43) | public static int readUInt24(ByteBuffer bb) {
    method readUInt16 (line 51) | public static int readUInt16(ByteBuffer bb) {
    method readUInt16BE (line 58) | public static int readUInt16BE(ByteBuffer bb) {
    method readUInt8 (line 65) | public static int readUInt8(ByteBuffer bb) {
    method byte2int (line 69) | public static int byte2int(byte b) {
    method readString (line 81) | public static String readString(ByteBuffer byteBuffer) {
    method readString (line 91) | public static String readString(ByteBuffer byteBuffer, int length) {
    method readUInt64 (line 98) | public static long readUInt64(ByteBuffer byteBuffer) {
    method readFixedPoint1616 (line 110) | public static double readFixedPoint1616(ByteBuffer bb) {
    method readFixedPoint88 (line 123) | public static float readFixedPoint88(ByteBuffer bb) {
    method readIso639 (line 132) | public static String readIso639(ByteBuffer bb) {
    method read4cc (line 142) | public static String read4cc(ByteBuffer bb) {

FILE: src/com/coremedia/iso/IsoTypeReaderVariable.java
  class IsoTypeReaderVariable (line 20) | public final class IsoTypeReaderVariable {
    method read (line 22) | public static long read(ByteBuffer bb, int bytes) {

FILE: src/com/coremedia/iso/IsoTypeWriter.java
  class IsoTypeWriter (line 22) | public final class IsoTypeWriter {
    method writeUInt64 (line 24) | public static void writeUInt64(ByteBuffer bb, long u) {
    method writeUInt32 (line 31) | public static void writeUInt32(ByteBuffer bb, long u) {
    method writeUInt32BE (line 38) | public static void writeUInt32BE(ByteBuffer bb, long u) {
    method writeUInt24 (line 46) | public static void writeUInt24(ByteBuffer bb, int i) {
    method writeUInt16 (line 54) | public static void writeUInt16(ByteBuffer bb, int i) {
    method writeUInt16BE (line 60) | public static void writeUInt16BE(ByteBuffer bb, int i) {
    method writeUInt8 (line 66) | public static void writeUInt8(ByteBuffer bb, int i) {
    method writeFixedPont1616 (line 71) | public static void writeFixedPont1616(ByteBuffer bb, double v) {
    method writeFixedPont88 (line 79) | public static void writeFixedPont88(ByteBuffer bb, double v) {
    method int2byte (line 85) | public static byte int2byte(int i) {
    method writeIso639 (line 90) | public static void writeIso639(ByteBuffer bb, String language) {
    method writeUtf8String (line 98) | public static void writeUtf8String(ByteBuffer bb, String string) {

FILE: src/com/coremedia/iso/IsoTypeWriterVariable.java
  class IsoTypeWriterVariable (line 21) | public final class IsoTypeWriterVariable {
    method write (line 23) | public static void write(long v, ByteBuffer bb, int bytes) {

FILE: src/com/coremedia/iso/PropertyBoxParserImpl.java
  class PropertyBoxParserImpl (line 39) | public class PropertyBoxParserImpl extends AbstractBoxParser {
    method PropertyBoxParserImpl (line 42) | public PropertyBoxParserImpl(String... customProperties) {
    method PropertyBoxParserImpl (line 79) | public PropertyBoxParserImpl(Properties mapping) {
    method getClassForFourCc (line 85) | @SuppressWarnings("unchecked")
    method createBox (line 95) | @Override
    class FourCcToBox (line 151) | private class FourCcToBox {
      method FourCcToBox (line 158) | public FourCcToBox(String type, byte[] userType, String parent) {
      method getClazzName (line 164) | public String getClazzName() {
      method getParam (line 168) | public String[] getParam() {
      method invoke (line 172) | public FourCcToBox invoke() {

FILE: src/com/coremedia/iso/Utf8.java
  class Utf8 (line 23) | public final class Utf8 {
    method convert (line 24) | public static byte[] convert(String s) {
    method convert (line 36) | public static String convert(byte[] b) {
    method utf8StringLengthInBytes (line 48) | public static int utf8StringLengthInBytes(String utf8) {

FILE: src/com/coremedia/iso/boxes/AbstractMediaHeaderBox.java
  class AbstractMediaHeaderBox (line 25) | public abstract class AbstractMediaHeaderBox extends AbstractFullBox {
    method AbstractMediaHeaderBox (line 26) | protected AbstractMediaHeaderBox(String type) {

FILE: src/com/coremedia/iso/boxes/AlbumBox.java
  class AlbumBox (line 32) | public class AlbumBox extends AbstractFullBox {
    method AlbumBox (line 39) | public AlbumBox() {
    method getLanguage (line 50) | public String getLanguage() {
    method getAlbumTitle (line 54) | public String getAlbumTitle() {
    method getTrackNumber (line 58) | public int getTrackNumber() {
    method setLanguage (line 62) | public void setLanguage(String language) {
    method setAlbumTitle (line 66) | public void setAlbumTitle(String albumTitle) {
    method setTrackNumber (line 70) | public void setTrackNumber(int trackNumber) {
    method getContentSize (line 74) | protected long getContentSize() {
    method _parseDetails (line 78) | @Override
    method getContent (line 91) | @Override
    method toString (line 102) | public String toString() {

FILE: src/com/coremedia/iso/boxes/AuthorBox.java
  class AuthorBox (line 33) | public class AuthorBox extends AbstractFullBox {
    method AuthorBox (line 39) | public AuthorBox() {
    method getLanguage (line 50) | public String getLanguage() {
    method getAuthor (line 59) | public String getAuthor() {
    method setLanguage (line 63) | public void setLanguage(String language) {
    method setAuthor (line 67) | public void setAuthor(String author) {
    method getContentSize (line 71) | protected long getContentSize() {
    method _parseDetails (line 75) | @Override
    method getContent (line 82) | @Override
    method toString (line 91) | public String toString() {

FILE: src/com/coremedia/iso/boxes/BitRateBox.java
  class BitRateBox (line 39) | public final class BitRateBox extends AbstractBox {
    method BitRateBox (line 46) | public BitRateBox() {
    method getContentSize (line 50) | protected long getContentSize() {
    method _parseDetails (line 54) | @Override
    method getContent (line 61) | @Override
    method getBufferSizeDb (line 68) | public long getBufferSizeDb() {
    method setBufferSizeDb (line 72) | public void setBufferSizeDb(long bufferSizeDb) {
    method getMaxBitrate (line 76) | public long getMaxBitrate() {
    method setMaxBitrate (line 80) | public void setMaxBitrate(long maxBitrate) {
    method getAvgBitrate (line 84) | public long getAvgBitrate() {
    method setAvgBitrate (line 88) | public void setAvgBitrate(long avgBitrate) {

FILE: src/com/coremedia/iso/boxes/Box.java
  type Box (line 30) | public interface Box {
    method getParent (line 31) | ContainerBox getParent();
    method setParent (line 33) | void setParent(ContainerBox parent);
    method getSize (line 35) | long getSize();
    method getType (line 41) | String getType();
    method getBox (line 48) | void getBox(WritableByteChannel writableByteChannel) throws IOException;
    method parse (line 50) | void parse(ReadableByteChannel readableByteChannel, ByteBuffer header,...

FILE: src/com/coremedia/iso/boxes/ChunkOffset64BitBox.java
  class ChunkOffset64BitBox (line 13) | public class ChunkOffset64BitBox extends ChunkOffsetBox {
    method ChunkOffset64BitBox (line 17) | public ChunkOffset64BitBox() {
    method getChunkOffsets (line 21) | @Override
    method getContentSize (line 26) | @Override
    method _parseDetails (line 31) | @Override
    method getContent (line 41) | @Override

FILE: src/com/coremedia/iso/boxes/ChunkOffsetBox.java
  class ChunkOffsetBox (line 8) | public abstract class ChunkOffsetBox extends AbstractFullBox {
    method ChunkOffsetBox (line 10) | public ChunkOffsetBox(String type) {
    method getChunkOffsets (line 14) | public abstract long[] getChunkOffsets();
    method toString (line 17) | public String toString() {

FILE: src/com/coremedia/iso/boxes/ClassificationBox.java
  class ClassificationBox (line 30) | public class ClassificationBox extends AbstractFullBox {
    method ClassificationBox (line 39) | public ClassificationBox() {
    method getLanguage (line 43) | public String getLanguage() {
    method getClassificationEntity (line 47) | public String getClassificationEntity() {
    method getClassificationTableIndex (line 51) | public int getClassificationTableIndex() {
    method getClassificationInfo (line 55) | public String getClassificationInfo() {
    method setClassificationEntity (line 59) | public void setClassificationEntity(String classificationEntity) {
    method setClassificationTableIndex (line 63) | public void setClassificationTableIndex(int classificationTableIndex) {
    method setLanguage (line 67) | public void setLanguage(String language) {
    method setClassificationInfo (line 71) | public void setClassificationInfo(String classificationInfo) {
    method getContentSize (line 75) | protected long getContentSize() {
    method _parseDetails (line 79) | @Override
    method getContent (line 90) | @Override
    method toString (line 100) | public String toString() {

FILE: src/com/coremedia/iso/boxes/CompositionShiftLeastGreatestAtom.java
  class CompositionShiftLeastGreatestAtom (line 15) | public class CompositionShiftLeastGreatestAtom extends AbstractFullBox {
    method CompositionShiftLeastGreatestAtom (line 16) | public CompositionShiftLeastGreatestAtom() {
    method getContentSize (line 36) | @Override
    method _parseDetails (line 41) | @Override
    method getContent (line 51) | @Override
    method getCompositionOffsetToDisplayOffsetShift (line 62) | public int getCompositionOffsetToDisplayOffsetShift() {
    method setCompositionOffsetToDisplayOffsetShift (line 66) | public void setCompositionOffsetToDisplayOffsetShift(int compositionOf...
    method getLeastDisplayOffset (line 70) | public int getLeastDisplayOffset() {
    method setLeastDisplayOffset (line 74) | public void setLeastDisplayOffset(int leastDisplayOffset) {
    method getGreatestDisplayOffset (line 78) | public int getGreatestDisplayOffset() {
    method setGreatestDisplayOffset (line 82) | public void setGreatestDisplayOffset(int greatestDisplayOffset) {
    method getDisplayStartTime (line 86) | public int getDisplayStartTime() {
    method setDisplayStartTime (line 90) | public void setDisplayStartTime(int displayStartTime) {
    method getDisplayEndTime (line 94) | public int getDisplayEndTime() {
    method setDisplayEndTime (line 98) | public void setDisplayEndTime(int displayEndTime) {

FILE: src/com/coremedia/iso/boxes/CompositionTimeToSample.java
  class CompositionTimeToSample (line 45) | public class CompositionTimeToSample extends AbstractFullBox {
    method CompositionTimeToSample (line 50) | public CompositionTimeToSample() {
    method getContentSize (line 54) | protected long getContentSize() {
    method getEntries (line 58) | public List<Entry> getEntries() {
    method setEntries (line 62) | public void setEntries(List<Entry> entries) {
    method _parseDetails (line 66) | @Override
    method getContent (line 77) | @Override
    class Entry (line 90) | public static class Entry {
      method Entry (line 94) | public Entry(int count, int offset) {
      method getCount (line 99) | public int getCount() {
      method getOffset (line 103) | public int getOffset() {
      method setCount (line 107) | public void setCount(int count) {
      method setOffset (line 111) | public void setOffset(int offset) {
      method toString (line 115) | @Override
    method blowupCompositionTimes (line 130) | public static int[] blowupCompositionTimes(List<CompositionTimeToSampl...

FILE: src/com/coremedia/iso/boxes/ContainerBox.java
  type ContainerBox (line 26) | public interface ContainerBox extends Box {
    method getBoxes (line 33) | List<Box> getBoxes();
    method setBoxes (line 39) | void setBoxes(List<Box> boxes);
    method getBoxes (line 47) | <T extends Box> List<T> getBoxes(Class<T> clazz);
    method getBoxes (line 56) | <T extends Box> List<T> getBoxes(Class<T> clazz, boolean recursive);
    method getParent (line 64) | ContainerBox getParent();
    method getNumOfBytesToFirstChild (line 71) | long getNumOfBytesToFirstChild();
    method getIsoFile (line 73) | IsoFile getIsoFile();

FILE: src/com/coremedia/iso/boxes/CopyrightBox.java
  class CopyrightBox (line 35) | public class CopyrightBox extends AbstractFullBox {
    method CopyrightBox (line 41) | public CopyrightBox() {
    method getLanguage (line 45) | public String getLanguage() {
    method getCopyright (line 49) | public String getCopyright() {
    method setLanguage (line 53) | public void setLanguage(String language) {
    method setCopyright (line 57) | public void setCopyright(String copyright) {
    method getContentSize (line 61) | protected long getContentSize() {
    method _parseDetails (line 65) | @Override
    method getContent (line 72) | @Override
    method toString (line 80) | public String toString() {

FILE: src/com/coremedia/iso/boxes/DataEntryUrlBox.java
  class DataEntryUrlBox (line 28) | public class DataEntryUrlBox extends AbstractFullBox {
    method DataEntryUrlBox (line 31) | public DataEntryUrlBox() {
    method _parseDetails (line 35) | @Override
    method getContent (line 41) | @Override
    method getContentSize (line 46) | protected long getContentSize() {
    method toString (line 50) | public String toString() {

FILE: src/com/coremedia/iso/boxes/DataEntryUrnBox.java
  class DataEntryUrnBox (line 30) | public class DataEntryUrnBox extends AbstractFullBox {
    method DataEntryUrnBox (line 35) | public DataEntryUrnBox() {
    method getName (line 39) | public String getName() {
    method getLocation (line 43) | public String getLocation() {
    method getContentSize (line 47) | protected long getContentSize() {
    method _parseDetails (line 51) | @Override
    method getContent (line 58) | @Override
    method toString (line 66) | public String toString() {

FILE: src/com/coremedia/iso/boxes/DataInformationBox.java
  class DataInformationBox (line 29) | public class DataInformationBox extends AbstractContainerBox {
    method DataInformationBox (line 32) | public DataInformationBox() {

FILE: src/com/coremedia/iso/boxes/DataReferenceBox.java
  class DataReferenceBox (line 36) | public class DataReferenceBox extends FullContainerBox {
    method DataReferenceBox (line 40) | public DataReferenceBox() {
    method getContentSize (line 45) | @Override
    method _parseDetails (line 50) | @Override
    method getContent (line 58) | @Override

FILE: src/com/coremedia/iso/boxes/DescriptionBox.java
  class DescriptionBox (line 29) | public class DescriptionBox extends AbstractFullBox {
    method DescriptionBox (line 35) | public DescriptionBox() {
    method getLanguage (line 39) | public String getLanguage() {
    method getDescription (line 43) | public String getDescription() {
    method getContentSize (line 47) | protected long getContentSize() {
    method _parseDetails (line 51) | @Override
    method getContent (line 58) | @Override
    method toString (line 66) | public String toString() {
    method setLanguage (line 70) | public void setLanguage(String language) {
    method setDescription (line 74) | public void setDescription(String description) {

FILE: src/com/coremedia/iso/boxes/EditBox.java
  class EditBox (line 27) | public class EditBox extends AbstractContainerBox {
    method EditBox (line 30) | public EditBox() {

FILE: src/com/coremedia/iso/boxes/EditListBox.java
  class EditListBox (line 56) | public class EditListBox extends AbstractFullBox {
    method EditListBox (line 60) | public EditListBox() {
    method getEntries (line 65) | public List<Entry> getEntries() {
    method setEntries (line 69) | public void setEntries(List<Entry> entries) {
    method getContentSize (line 73) | protected long getContentSize() {
    method _parseDetails (line 84) | @Override
    method getContent (line 95) | @Override
    method toString (line 104) | @Override
    class Entry (line 111) | public static class Entry {
      method Entry (line 124) | public Entry(EditListBox editListBox, long segmentDuration, long med...
      method Entry (line 131) | public Entry(EditListBox editListBox, ByteBuffer bb) {
      method getSegmentDuration (line 151) | public long getSegmentDuration() {
      method setSegmentDuration (line 162) | public void setSegmentDuration(long segmentDuration) {
      method getMediaTime (line 173) | public long getMediaTime() {
      method setMediaTime (line 184) | public void setMediaTime(long mediaTime) {
      method getMediaRate (line 194) | public double getMediaRate() {
      method setMediaRate (line 204) | public void setMediaRate(double mediaRate) {
      method equals (line 208) | @Override
      method hashCode (line 221) | @Override
      method getContent (line 228) | public void getContent(ByteBuffer bb)  {
      method toString (line 239) | @Override

FILE: src/com/coremedia/iso/boxes/FileTypeBox.java
  class FileTypeBox (line 36) | public class FileTypeBox extends AbstractBox {
    method FileTypeBox (line 43) | public FileTypeBox() {
    method FileTypeBox (line 47) | public FileTypeBox(String majorBrand, long minorVersion, List<String> ...
    method getContentSize (line 54) | protected long getContentSize() {
    method _parseDetails (line 59) | @Override
    method getContent (line 70) | @Override
    method getMajorBrand (line 85) | public String getMajorBrand() {
    method setMajorBrand (line 94) | public void setMajorBrand(String majorBrand) {
    method setMinorVersion (line 103) | public void setMinorVersion(int minorVersion) {
    method getMinorVersion (line 113) | public long getMinorVersion() {
    method getCompatibleBrands (line 122) | public List<String> getCompatibleBrands() {
    method setCompatibleBrands (line 126) | public void setCompatibleBrands(List<String> compatibleBrands) {
    method toString (line 130) | @DoNotParseDetail

FILE: src/com/coremedia/iso/boxes/FreeBox.java
  class FreeBox (line 27) | public class FreeBox extends AbstractBox {
    method FreeBox (line 31) | public FreeBox() {
    method FreeBox (line 35) | public FreeBox(int size) {
    method getContentSize (line 40) | @Override
    method _parseDetails (line 45) | @Override
    method getContent (line 51) | @Override
    method getData (line 57) | public ByteBuffer getData() {
    method setData (line 61) | public void setData(ByteBuffer data) {

FILE: src/com/coremedia/iso/boxes/FreeSpaceBox.java
  class FreeSpaceBox (line 28) | public class FreeSpaceBox extends AbstractBox {
    method getContentSize (line 33) | protected long getContentSize() {
    method FreeSpaceBox (line 37) | public FreeSpaceBox() {
    method setData (line 41) | public void setData(byte[] data) {
    method getData (line 45) | public byte[] getData() {
    method _parseDetails (line 49) | @Override
    method getContent (line 55) | @Override
    method toString (line 60) | public String toString() {

FILE: src/com/coremedia/iso/boxes/FullBox.java
  type FullBox (line 9) | public interface FullBox extends Box {
    method getVersion (line 10) | int getVersion();
    method setVersion (line 12) | void setVersion(int version);
    method getFlags (line 14) | int getFlags();
    method setFlags (line 16) | void setFlags(int flags);

FILE: src/com/coremedia/iso/boxes/GenericMediaHeaderBoxImpl.java
  class GenericMediaHeaderBoxImpl (line 5) | public class GenericMediaHeaderBoxImpl extends AbstractMediaHeaderBox {
    method getContentSize (line 9) | @Override
    method _parseDetails (line 14) | @Override
    method getContent (line 22) | @Override
    method GenericMediaHeaderBoxImpl (line 28) | public GenericMediaHeaderBoxImpl() {
    method getData (line 32) | public ByteBuffer getData() {
    method setData (line 36) | public void setData(ByteBuffer data) {

FILE: src/com/coremedia/iso/boxes/GenreBox.java
  class GenreBox (line 31) | public class GenreBox extends AbstractFullBox {
    method GenreBox (line 37) | public GenreBox() {
    method getLanguage (line 41) | public String getLanguage() {
    method getGenre (line 45) | public String getGenre() {
    method setLanguage (line 49) | public void setLanguage(String language) {
    method setGenre (line 53) | public void setGenre(String genre) {
    method getContentSize (line 57) | protected long getContentSize() {
    method _parseDetails (line 61) | @Override
    method getContent (line 68) | @Override
    method toString (line 76) | public String toString() {

FILE: src/com/coremedia/iso/boxes/HandlerBox.java
  class HandlerBox (line 40) | public class HandlerBox extends AbstractFullBox {
    method HandlerBox (line 73) | public HandlerBox() {
    method getHandlerType (line 77) | public String getHandlerType() {
    method setName (line 86) | public void setName(String name) {
    method setHandlerType (line 90) | public void setHandlerType(String handlerType) {
    method getName (line 94) | public String getName() {
    method getHumanReadableTrackType (line 98) | public String getHumanReadableTrackType() {
    method getContentSize (line 102) | protected long getContentSize() {
    method _parseDetails (line 111) | @Override
    method getContent (line 132) | @Override
    method toString (line 148) | public String toString() {

FILE: src/com/coremedia/iso/boxes/HintMediaHeaderBox.java
  class HintMediaHeaderBox (line 30) | public class HintMediaHeaderBox extends AbstractMediaHeaderBox {
    method HintMediaHeaderBox (line 37) | public HintMediaHeaderBox() {
    method getMaxPduSize (line 41) | public int getMaxPduSize() {
    method getAvgPduSize (line 45) | public int getAvgPduSize() {
    method getMaxBitrate (line 49) | public long getMaxBitrate() {
    method getAvgBitrate (line 53) | public long getAvgBitrate() {
    method getContentSize (line 57) | protected long getContentSize() {
    method _parseDetails (line 61) | @Override
    method getContent (line 72) | @Override
    method toString (line 82) | @Override

FILE: src/com/coremedia/iso/boxes/ItemDataBox.java
  class ItemDataBox (line 10) | public class ItemDataBox extends AbstractBox {
    method ItemDataBox (line 15) | public ItemDataBox() {
    method getData (line 19) | public ByteBuffer getData() {
    method setData (line 23) | public void setData(ByteBuffer data) {
    method getContentSize (line 27) | @Override
    method _parseDetails (line 33) | @Override
    method getContent (line 39) | @Override

FILE: src/com/coremedia/iso/boxes/ItemLocationBox.java
  class ItemLocationBox (line 60) | public class ItemLocationBox extends AbstractFullBox {
    method ItemLocationBox (line 69) | public ItemLocationBox() {
    method getContentSize (line 73) | @Override
    method getContent (line 83) | @Override
    method _parseDetails (line 98) | @Override
    method getOffsetSize (line 117) | public int getOffsetSize() {
    method setOffsetSize (line 121) | public void setOffsetSize(int offsetSize) {
    method getLengthSize (line 125) | public int getLengthSize() {
    method setLengthSize (line 129) | public void setLengthSize(int lengthSize) {
    method getBaseOffsetSize (line 133) | public int getBaseOffsetSize() {
    method setBaseOffsetSize (line 137) | public void setBaseOffsetSize(int baseOffsetSize) {
    method getIndexSize (line 141) | public int getIndexSize() {
    method setIndexSize (line 145) | public void setIndexSize(int indexSize) {
    method getItems (line 149) | public List<Item> getItems() {
    method setItems (line 153) | public void setItems(List<Item> items) {
    method createItem (line 158) | public Item createItem(int itemId, int constructionMethod, int dataRef...
    method createItem (line 162) | Item createItem(ByteBuffer bb) {
    class Item (line 166) | public class Item {
      method Item (line 173) | public Item(ByteBuffer in) {
      method Item (line 195) | public Item(int itemId, int constructionMethod, int dataReferenceInd...
      method getSize (line 203) | public int getSize() {
      method setBaseOffset (line 221) | public void setBaseOffset(long baseOffset) {
      method getContent (line 225) | public void getContent(ByteBuffer bb)  {
      method equals (line 244) | @Override
      method hashCode (line 260) | @Override
      method toString (line 270) | @Override
    method createExtent (line 283) | public Extent createExtent(long extentOffset, long extentLength, long ...
    method createExtent (line 287) | Extent createExtent(ByteBuffer bb) {
    class Extent (line 292) | public class Extent {
      method Extent (line 297) | public Extent(long extentOffset, long extentLength, long extentIndex) {
      method Extent (line 304) | public Extent(ByteBuffer in) {
      method getContent (line 312) | public void getContent(ByteBuffer os)  {
      method getSize (line 320) | public int getSize() {
      method equals (line 325) | @Override
      method hashCode (line 339) | @Override
      method toString (line 347) | @Override

FILE: src/com/coremedia/iso/boxes/ItemProtectionBox.java
  class ItemProtectionBox (line 30) | public class ItemProtectionBox extends FullContainerBox {
    method ItemProtectionBox (line 34) | public ItemProtectionBox() {
    method getItemProtectionScheme (line 38) | public SchemeInformationBox getItemProtectionScheme() {
    method _parseDetails (line 46) | @Override
    method getContent (line 54) | @Override

FILE: src/com/coremedia/iso/boxes/KeywordsBox.java
  class KeywordsBox (line 29) | public class KeywordsBox extends AbstractFullBox {
    method KeywordsBox (line 35) | public KeywordsBox() {
    method getLanguage (line 39) | public String getLanguage() {
    method getKeywords (line 43) | public String[] getKeywords() {
    method setLanguage (line 47) | public void setLanguage(String language) {
    method setKeywords (line 51) | public void setKeywords(String[] keywords) {
    method getContentSize (line 55) | protected long getContentSize() {
    method _parseDetails (line 63) | @Override
    method getContent (line 75) | @Override
    method toString (line 86) | public String toString() {

FILE: src/com/coremedia/iso/boxes/MediaBox.java
  class MediaBox (line 26) | public class MediaBox extends AbstractContainerBox {
    method MediaBox (line 29) | public MediaBox() {
    method getMediaInformationBox (line 33) | public MediaInformationBox getMediaInformationBox() {
    method getMediaHeaderBox (line 42) | public MediaHeaderBox getMediaHeaderBox() {
    method getHandlerBox (line 51) | public HandlerBox getHandlerBox() {

FILE: src/com/coremedia/iso/boxes/MediaHeaderBox.java
  class MediaHeaderBox (line 29) | public class MediaHeaderBox extends AbstractFullBox {
    method MediaHeaderBox (line 39) | public MediaHeaderBox() {
    method getCreationTime (line 43) | public long getCreationTime() {
    method getModificationTime (line 47) | public long getModificationTime() {
    method getTimescale (line 51) | public long getTimescale() {
    method getDuration (line 55) | public long getDuration() {
    method getLanguage (line 59) | public String getLanguage() {
    method getContentSize (line 63) | protected long getContentSize() {
    method setCreationTime (line 76) | public void setCreationTime(long creationTime) {
    method setModificationTime (line 80) | public void setModificationTime(long modificationTime) {
    method setTimescale (line 84) | public void setTimescale(long timescale) {
    method setDuration (line 88) | public void setDuration(long duration) {
    method setLanguage (line 92) | public void setLanguage(String language) {
    method _parseDetails (line 96) | @Override
    method toString (line 115) | public String toString() {
    method getContent (line 131) | protected void getContent(ByteBuffer byteBuffer) {

FILE: src/com/coremedia/iso/boxes/MediaInformationBox.java
  class MediaInformationBox (line 24) | public class MediaInformationBox extends AbstractContainerBox {
    method MediaInformationBox (line 27) | public MediaInformationBox() {
    method getSampleTableBox (line 31) | public SampleTableBox getSampleTableBox() {
    method getMediaHeaderBox (line 40) | public AbstractMediaHeaderBox getMediaHeaderBox() {

FILE: src/com/coremedia/iso/boxes/MetaBox.java
  class MetaBox (line 31) | public class MetaBox extends AbstractContainerBox {
    method MetaBox (line 37) | public MetaBox() {
    method getContentSize (line 41) | @Override
    method getNumOfBytesToFirstChild (line 52) | @Override
    method _parseDetails (line 63) | @Override
    method getContent (line 90) | @Override
    method isMp4Box (line 100) | public boolean isMp4Box() {
    method setMp4Box (line 104) | public void setMp4Box(boolean mp4) {

FILE: src/com/coremedia/iso/boxes/MovieBox.java
  class MovieBox (line 29) | public class MovieBox extends AbstractContainerBox {
    method MovieBox (line 32) | public MovieBox() {
    method getTrackCount (line 36) | public int getTrackCount() {
    method getTrackNumbers (line 46) | public long[] getTrackNumbers() {
    method getMovieHeaderBox (line 58) | public MovieHeaderBox getMovieHeaderBox() {

FILE: src/com/coremedia/iso/boxes/MovieHeaderBox.java
  class MovieHeaderBox (line 35) | public class MovieHeaderBox extends AbstractFullBox {
    method MovieHeaderBox (line 46) | public MovieHeaderBox() {
    method getCreationTime (line 50) | public long getCreationTime() {
    method getModificationTime (line 54) | public long getModificationTime() {
    method getTimescale (line 58) | public long getTimescale() {
    method getDuration (line 62) | public long getDuration() {
    method getRate (line 66) | public double getRate() {
    method getVolume (line 70) | public float getVolume() {
    method getMatrix (line 74) | public long[] getMatrix() {
    method getNextTrackId (line 78) | public long getNextTrackId() {
    method getContentSize (line 82) | protected long getContentSize() {
    method _parseDetails (line 93) | @Override
    method toString (line 123) | public String toString() {
    method getContent (line 148) | @Override
    method setCreationTime (line 179) | public void setCreationTime(long creationTime) {
    method setModificationTime (line 183) | public void setModificationTime(long modificationTime) {
    method setTimescale (line 187) | public void setTimescale(long timescale) {
    method setDuration (line 191) | public void setDuration(long duration) {
    method setRate (line 195) | public void setRate(double rate) {
    method setVolume (line 199) | public void setVolume(float volume) {
    method setMatrix (line 203) | public void setMatrix(long[] matrix) {
    method setNextTrackId (line 207) | public void setNextTrackId(long nextTrackId) {

FILE: src/com/coremedia/iso/boxes/NullMediaHeaderBox.java
  class NullMediaHeaderBox (line 24) | public class NullMediaHeaderBox extends AbstractMediaHeaderBox {
    method NullMediaHeaderBox (line 25) | public NullMediaHeaderBox() {
    method getContentSize (line 29) | @Override
    method _parseDetails (line 34) | @Override
    method getContent (line 39) | @Override

FILE: src/com/coremedia/iso/boxes/OmaDrmAccessUnitFormatBox.java
  class OmaDrmAccessUnitFormatBox (line 28) | public final class OmaDrmAccessUnitFormatBox extends AbstractFullBox {
    method getContentSize (line 37) | protected long getContentSize() {
    method OmaDrmAccessUnitFormatBox (line 41) | public OmaDrmAccessUnitFormatBox() {
    method isSelectiveEncryption (line 45) | public boolean isSelectiveEncryption() {
    method getKeyIndicatorLength (line 49) | public int getKeyIndicatorLength() {
    method getInitVectorLength (line 53) | public int getInitVectorLength() {
    method setInitVectorLength (line 57) | public void setInitVectorLength(int initVectorLength) {
    method setKeyIndicatorLength (line 61) | public void setKeyIndicatorLength(int keyIndicatorLength) {
    method setAllBits (line 65) | public void setAllBits(byte allBits) {
    method _parseDetails (line 70) | @Override
    method getContent (line 79) | @Override

FILE: src/com/coremedia/iso/boxes/OriginalFormatBox.java
  class OriginalFormatBox (line 32) | public class OriginalFormatBox extends AbstractBox {
    method OriginalFormatBox (line 37) | public OriginalFormatBox() {
    method getDataFormat (line 41) | public String getDataFormat() {
    method setDataFormat (line 46) | public void setDataFormat(String dataFormat) {
    method getContentSize (line 51) | protected long getContentSize() {
    method _parseDetails (line 55) | @Override
    method getContent (line 60) | @Override
    method toString (line 66) | public String toString() {

FILE: src/com/coremedia/iso/boxes/PerformerBox.java
  class PerformerBox (line 30) | public class PerformerBox extends AbstractFullBox {
    method PerformerBox (line 36) | public PerformerBox() {
    method getLanguage (line 40) | public String getLanguage() {
    method getPerformer (line 44) | public String getPerformer() {
    method setLanguage (line 48) | public void setLanguage(String language) {
    method setPerformer (line 52) | public void setPerformer(String performer) {
    method getContentSize (line 56) | protected long getContentSize() {
    method getContent (line 60) | @Override
    method _parseDetails (line 68) | @Override
    method toString (line 75) | public String toString() {

FILE: src/com/coremedia/iso/boxes/ProgressiveDownloadInformationBox.java
  class ProgressiveDownloadInformationBox (line 12) | public class ProgressiveDownloadInformationBox extends AbstractFullBox {
    method ProgressiveDownloadInformationBox (line 17) | public ProgressiveDownloadInformationBox() {
    method getContentSize (line 21) | @Override
    method getContent (line 26) | @Override
    method getEntries (line 35) | public List<Entry> getEntries() {
    method setEntries (line 39) | public void setEntries(List<Entry> entries) {
    method _parseDetails (line 43) | @Override
    class Entry (line 54) | public static class Entry {
      method Entry (line 58) | public Entry(long rate, long initialDelay) {
      method getRate (line 63) | public long getRate() {
      method setRate (line 67) | public void setRate(long rate) {
      method getInitialDelay (line 71) | public long getInitialDelay() {
      method setInitialDelay (line 75) | public void setInitialDelay(long initialDelay) {
      method toString (line 79) | @Override
    method toString (line 88) | @Override

FILE: src/com/coremedia/iso/boxes/ProtectionSchemeInformationBox.java
  class ProtectionSchemeInformationBox (line 33) | public class ProtectionSchemeInformationBox extends AbstractContainerBox {
    method ProtectionSchemeInformationBox (line 36) | public ProtectionSchemeInformationBox() {

FILE: src/com/coremedia/iso/boxes/RatingBox.java
  class RatingBox (line 32) | public class RatingBox extends AbstractFullBox {
    method RatingBox (line 40) | public RatingBox() {
    method setRatingEntity (line 45) | public void setRatingEntity(String ratingEntity) {
    method setRatingCriteria (line 49) | public void setRatingCriteria(String ratingCriteria) {
    method setLanguage (line 53) | public void setLanguage(String language) {
    method setRatingInfo (line 57) | public void setRatingInfo(String ratingInfo) {
    method getLanguage (line 61) | public String getLanguage() {
    method getRatingEntity (line 72) | public String getRatingEntity() {
    method getRatingCriteria (line 82) | public String getRatingCriteria() {
    method getRatingInfo (line 86) | public String getRatingInfo() {
    method getContentSize (line 90) | protected long getContentSize() {
    method _parseDetails (line 94) | @Override
    method getContent (line 104) | @Override
    method toString (line 114) | public String toString() {

FILE: src/com/coremedia/iso/boxes/RecordingYearBox.java
  class RecordingYearBox (line 28) | public class RecordingYearBox extends AbstractFullBox {
    method RecordingYearBox (line 33) | public RecordingYearBox() {
    method getContentSize (line 38) | protected long getContentSize() {
    method getRecordingYear (line 42) | public int getRecordingYear() {
    method setRecordingYear (line 46) | public void setRecordingYear(int recordingYear) {
    method _parseDetails (line 51) | @Override
    method getContent (line 57) | @Override

FILE: src/com/coremedia/iso/boxes/SampleAuxiliaryInformationOffsetsBox.java
  class SampleAuxiliaryInformationOffsetsBox (line 48) | public class SampleAuxiliaryInformationOffsetsBox extends AbstractFullBox {
    method SampleAuxiliaryInformationOffsetsBox (line 55) | public SampleAuxiliaryInformationOffsetsBox() {
    method getContentSize (line 59) | @Override
    method getContent (line 64) | @Override
    method _parseDetails (line 82) | @Override
    method getAuxInfoType (line 104) | public long getAuxInfoType() {
    method setAuxInfoType (line 108) | public void setAuxInfoType(long auxInfoType) {
    method getAuxInfoTypeParameter (line 112) | public long getAuxInfoTypeParameter() {
    method setAuxInfoTypeParameter (line 116) | public void setAuxInfoTypeParameter(long auxInfoTypeParameter) {
    method getOffsets (line 120) | public List<Long> getOffsets() {
    method setOffsets (line 124) | public void setOffsets(List<Long> offsets) {

FILE: src/com/coremedia/iso/boxes/SampleAuxiliaryInformationSizesBox.java
  class SampleAuxiliaryInformationSizesBox (line 30) | public class SampleAuxiliaryInformationSizesBox extends AbstractFullBox {
    method SampleAuxiliaryInformationSizesBox (line 39) | public SampleAuxiliaryInformationSizesBox() {
    method getContentSize (line 43) | @Override
    method getContent (line 55) | @Override
    method _parseDetails (line 74) | @Override
    method getAuxInfoType (line 92) | public String getAuxInfoType() {
    method setAuxInfoType (line 96) | public void setAuxInfoType(String auxInfoType) {
    method getAuxInfoTypeParameter (line 100) | public String getAuxInfoTypeParameter() {
    method setAuxInfoTypeParameter (line 104) | public void setAuxInfoTypeParameter(String auxInfoTypeParameter) {
    method getDefaultSampleInfoSize (line 108) | public int getDefaultSampleInfoSize() {
    method setDefaultSampleInfoSize (line 112) | public void setDefaultSampleInfoSize(int defaultSampleInfoSize) {
    method getSampleInfoSizes (line 119) | public List<Short> getSampleInfoSizes() {
    method setSampleInfoSizes (line 123) | public void setSampleInfoSizes(List<Short> sampleInfoSizes) {
    method getSampleCount (line 127) | public int getSampleCount() {
    method setSampleCount (line 131) | public void setSampleCount(int sampleCount) {

FILE: src/com/coremedia/iso/boxes/SampleDependencyTypeBox.java
  class SampleDependencyTypeBox (line 38) | public class SampleDependencyTypeBox extends AbstractFullBox {
    class Entry (line 43) | public static class Entry {
      method Entry (line 45) | public Entry(int value) {
      method getReserved (line 52) | public int getReserved() {
      method setReserved (line 56) | public void setReserved(int res) {
      method getSampleDependsOn (line 60) | public int getSampleDependsOn() {
      method setSampleDependsOn (line 64) | public void setSampleDependsOn(int sdo) {
      method getSampleIsDependentOn (line 68) | public int getSampleIsDependentOn() {
      method setSampleIsDependentOn (line 72) | public void setSampleIsDependentOn(int sido) {
      method getSampleHasRedundancy (line 76) | public int getSampleHasRedundancy() {
      method setSampleHasRedundancy (line 80) | public void setSampleHasRedundancy(int shr) {
      method toString (line 84) | @Override
    method SampleDependencyTypeBox (line 95) | public SampleDependencyTypeBox() {
    method getContentSize (line 99) | @Override
    method getContent (line 104) | @Override
    method _parseDetails (line 112) | @Override
    method getEntries (line 120) | public List<Entry> getEntries() {
    method setEntries (line 124) | public void setEntries(List<Entry> entries) {
    method toString (line 128) | @Override

FILE: src/com/coremedia/iso/boxes/SampleDescriptionBox.java
  class SampleDescriptionBox (line 47) | public class SampleDescriptionBox extends FullContainerBox {
    method SampleDescriptionBox (line 50) | public SampleDescriptionBox() {
    method getContentSize (line 54) | @Override
    method _parseDetails (line 59) | @Override
    method getContent (line 66) | @Override
    method getSampleEntry (line 73) | public SampleEntry getSampleEntry() {

FILE: src/com/coremedia/iso/boxes/SampleSizeBox.java
  class SampleSizeBox (line 32) | public class SampleSizeBox extends AbstractFullBox {
    method SampleSizeBox (line 38) | public SampleSizeBox() {
    method getSampleSize (line 49) | public long getSampleSize() {
    method setSampleSize (line 53) | public void setSampleSize(long sampleSize) {
    method getSampleSizeAtIndex (line 58) | public long getSampleSizeAtIndex(int index) {
    method getSampleCount (line 66) | public long getSampleCount() {
    method getSampleSizes (line 75) | public long[] getSampleSizes() {
    method setSampleSizes (line 79) | public void setSampleSizes(long[] sampleSizes) {
    method getContentSize (line 83) | protected long getContentSize() {
    method _parseDetails (line 87) | @Override
    method getContent (line 102) | @Override
    method toString (line 118) | public String toString() {

FILE: src/com/coremedia/iso/boxes/SampleTableBox.java
  class SampleTableBox (line 36) | public class SampleTableBox extends AbstractContainerBox {
    method SampleTableBox (line 39) | public SampleTableBox() {
    method getSampleDescriptionBox (line 43) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getSampleSizeBox (line 52) | public SampleSizeBox getSampleSizeBox() {
    method getSampleToChunkBox (line 61) | public SampleToChunkBox getSampleToChunkBox() {
    method getChunkOffsetBox (line 70) | public ChunkOffsetBox getChunkOffsetBox() {
    method setChunkOffsetBox (line 79) | public void setChunkOffsetBox(ChunkOffsetBox b) {
    method getTimeToSampleBox (line 88) | public TimeToSampleBox getTimeToSampleBox() {
    method getSyncSampleBox (line 97) | public SyncSampleBox getSyncSampleBox() {
    method getCompositionTimeToSample (line 106) | public CompositionTimeToSample getCompositionTimeToSample() {
    method getSampleDependencyTypeBox (line 115) | public SampleDependencyTypeBox getSampleDependencyTypeBox() {

FILE: src/com/coremedia/iso/boxes/SampleToChunkBox.java
  class SampleToChunkBox (line 37) | public class SampleToChunkBox extends AbstractFullBox {
    method SampleToChunkBox (line 42) | public SampleToChunkBox() {
    method getEntries (line 46) | public List<Entry> getEntries() {
    method setEntries (line 50) | public void setEntries(List<Entry> entries) {
    method getContentSize (line 54) | protected long getContentSize() {
    method _parseDetails (line 58) | @Override
    method getContent (line 72) | @Override
    method toString (line 83) | public String toString() {
    method blowup (line 94) | public long[] blowup(int chunkCount) {
    class Entry (line 112) | public static class Entry {
      method Entry (line 117) | public Entry(long firstChunk, long samplesPerChunk, long sampleDescr...
      method getFirstChunk (line 123) | public long getFirstChunk() {
      method setFirstChunk (line 127) | public void setFirstChunk(long firstChunk) {
      method getSamplesPerChunk (line 131) | public long getSamplesPerChunk() {
      method setSamplesPerChunk (line 135) | public void setSamplesPerChunk(long samplesPerChunk) {
      method getSampleDescriptionIndex (line 139) | public long getSampleDescriptionIndex() {
      method setSampleDescriptionIndex (line 143) | public void setSampleDescriptionIndex(long sampleDescriptionIndex) {
      method toString (line 147) | @Override

FILE: src/com/coremedia/iso/boxes/SampleToGroupBox.java
  class SampleToGroupBox (line 24) | public class SampleToGroupBox extends AbstractFullBox {
    method SampleToGroupBox (line 31) | public SampleToGroupBox() {
    method getContentSize (line 35) | @Override
    method getGroupingTypeParameter (line 40) | public long getGroupingTypeParameter() {
    method setGroupingTypeParameter (line 47) | public void setGroupingTypeParameter(long groupingTypeParameter) {
    method getEntries (line 51) | public List<Entry> getEntries() {
    method setEntries (line 55) | public void setEntries(List<Entry> entries) {
    method getGroupingType (line 59) | public long getGroupingType() {
    method setGroupingType (line 64) | public void setGroupingType(long groupingType) {
    method _parseDetails (line 68) | @Override
    method getContent (line 87) | @Override
    class Entry (line 102) | public static class Entry {
      method getSampleCount (line 106) | public long getSampleCount() {
      method setSampleCount (line 110) | public void setSampleCount(long sampleCount) {
      method getGroupDescriptionIndex (line 114) | public long getGroupDescriptionIndex() {
      method setGroupDescriptionIndex (line 118) | public void setGroupDescriptionIndex(long groupDescriptionIndex) {

FILE: src/com/coremedia/iso/boxes/SchemeInformationBox.java
  class SchemeInformationBox (line 26) | public class SchemeInformationBox extends AbstractContainerBox {
    method SchemeInformationBox (line 29) | public SchemeInformationBox() {

FILE: src/com/coremedia/iso/boxes/SchemeTypeBox.java
  class SchemeTypeBox (line 33) | public class SchemeTypeBox extends AbstractFullBox {
    method SchemeTypeBox (line 39) | public SchemeTypeBox() {
    method getSchemeType (line 43) | public String getSchemeType() {
    method getSchemeVersion (line 47) | public long getSchemeVersion() {
    method getSchemeUri (line 51) | public String getSchemeUri() {
    method setSchemeType (line 55) | public void setSchemeType(String schemeType) {
    method setSchemeVersion (line 60) | public void setSchemeVersion(int schemeVersion) {
    method setSchemeUri (line 64) | public void setSchemeUri(String schemeUri) {
    method getContentSize (line 68) | protected long getContentSize() {
    method _parseDetails (line 72) | @Override
    method getContent (line 82) | @Override
    method toString (line 92) | public String toString() {

FILE: src/com/coremedia/iso/boxes/SoundMediaHeaderBox.java
  class SoundMediaHeaderBox (line 24) | public class SoundMediaHeaderBox extends AbstractMediaHeaderBox {
    method SoundMediaHeaderBox (line 29) | public SoundMediaHeaderBox() {
    method getBalance (line 33) | public float getBalance() {
    method getContentSize (line 37) | protected long getContentSize() {
    method _parseDetails (line 41) | @Override
    method getContent (line 48) | @Override
    method toString (line 55) | public String toString() {

FILE: src/com/coremedia/iso/boxes/StaticChunkOffsetBox.java
  class StaticChunkOffsetBox (line 29) | public class StaticChunkOffsetBox extends ChunkOffsetBox {
    method StaticChunkOffsetBox (line 34) | public StaticChunkOffsetBox() {
    method getChunkOffsets (line 38) | public long[] getChunkOffsets() {
    method getContentSize (line 42) | protected long getContentSize() {
    method setChunkOffsets (line 46) | public void setChunkOffsets(long[] chunkOffsets) {
    method _parseDetails (line 50) | @Override
    method getContent (line 61) | @Override

FILE: src/com/coremedia/iso/boxes/SubSampleInformationBox.java
  class SubSampleInformationBox (line 39) | public class SubSampleInformationBox extends AbstractFullBox {
    method SubSampleInformationBox (line 45) | public SubSampleInformationBox() {
    method getEntries (line 49) | public List<SampleEntry> getEntries() {
    method setEntries (line 53) | public void setEntries(List<SampleEntry> entries) {
    method getContentSize (line 58) | @Override
    method _parseDetails (line 68) | @Override
    method getContent (line 91) | @Override
    method toString (line 112) | @Override
    class SampleEntry (line 120) | public static class SampleEntry {
      method getSampleDelta (line 125) | public long getSampleDelta() {
      method setSampleDelta (line 129) | public void setSampleDelta(long sampleDelta) {
      method getSubsampleCount (line 133) | public int getSubsampleCount() {
      method setSubsampleCount (line 137) | public void setSubsampleCount(int subsampleCount) {
      method getSubsampleEntries (line 141) | public List<SubsampleEntry> getSubsampleEntries() {
      method addSubsampleEntry (line 145) | public void addSubsampleEntry(SubsampleEntry subsampleEntry) {
      class SubsampleEntry (line 150) | public static class SubsampleEntry {
        method getSubsampleSize (line 156) | public long getSubsampleSize() {
        method setSubsampleSize (line 160) | public void setSubsampleSize(long subsampleSize) {
        method getSubsamplePriority (line 164) | public int getSubsamplePriority() {
        method setSubsamplePriority (line 168) | public void setSubsamplePriority(int subsamplePriority) {
        method getDiscardable (line 172) | public int getDiscardable() {
        method setDiscardable (line 176) | public void setDiscardable(int discardable) {
        method getReserved (line 180) | public long getReserved() {
        method setReserved (line 184) | public void setReserved(long reserved) {
        method toString (line 188) | @Override
      method toString (line 199) | @Override

FILE: src/com/coremedia/iso/boxes/SubtitleMediaHeaderBox.java
  class SubtitleMediaHeaderBox (line 5) | public class SubtitleMediaHeaderBox extends AbstractMediaHeaderBox {
    method SubtitleMediaHeaderBox (line 9) | public SubtitleMediaHeaderBox() {
    method getContentSize (line 13) | protected long getContentSize() {
    method _parseDetails (line 17) | @Override
    method getContent (line 22) | @Override
    method toString (line 27) | public String toString() {

FILE: src/com/coremedia/iso/boxes/SyncSampleBox.java
  class SyncSampleBox (line 31) | public class SyncSampleBox extends AbstractFullBox {
    method SyncSampleBox (line 36) | public SyncSampleBox() {
    method getSampleNumber (line 45) | public long[] getSampleNumber() {
    method getContentSize (line 49) | protected long getContentSize() {
    method _parseDetails (line 53) | @Override
    method getContent (line 64) | @Override
    method toString (line 76) | public String toString() {
    method setSampleNumber (line 80) | public void setSampleNumber(long[] sampleNumber) {

FILE: src/com/coremedia/iso/boxes/TimeToSampleBox.java
  class TimeToSampleBox (line 44) | public class TimeToSampleBox extends AbstractFullBox {
    method TimeToSampleBox (line 50) | public TimeToSampleBox() {
    method getContentSize (line 54) | protected long getContentSize() {
    method _parseDetails (line 58) | @Override
    method getContent (line 70) | @Override
    method getEntries (line 80) | public List<Entry> getEntries() {
    method setEntries (line 84) | public void setEntries(List<Entry> entries) {
    method toString (line 88) | public String toString() {
    class Entry (line 92) | public static class Entry {
      method Entry (line 96) | public Entry(long count, long delta) {
      method getCount (line 101) | public long getCount() {
      method getDelta (line 105) | public long getDelta() {
      method setCount (line 109) | public void setCount(long count) {
      method setDelta (line 113) | public void setDelta(long delta) {
      method toString (line 117) | @Override
    method blowupTimeToSamples (line 131) | public static long[] blowupTimeToSamples(List<TimeToSampleBox.Entry> e...

FILE: src/com/coremedia/iso/boxes/TitleBox.java
  class TitleBox (line 36) | public class TitleBox extends AbstractFullBox {
    method TitleBox (line 42) | public TitleBox() {
    method getLanguage (line 46) | public String getLanguage() {
    method getTitle (line 50) | public String getTitle() {
    method setLanguage (line 59) | public void setLanguage(String language) {
    method setTitle (line 63) | public void setTitle(String title) {
    method getContentSize (line 67) | protected long getContentSize() {
    method getContent (line 72) | protected void getContent(ByteBuffer byteBuffer) {
    method _parseDetails (line 79) | @Override
    method toString (line 86) | public String toString() {

FILE: src/com/coremedia/iso/boxes/TrackBox.java
  class TrackBox (line 28) | public class TrackBox extends AbstractContainerBox {
    method TrackBox (line 31) | public TrackBox() {
    method getTrackHeaderBox (line 35) | public TrackHeaderBox getTrackHeaderBox() {
    method getSampleTableBox (line 49) | public SampleTableBox getSampleTableBox() {
    method getMediaBox (line 62) | public MediaBox getMediaBox() {

FILE: src/com/coremedia/iso/boxes/TrackHeaderBox.java
  class TrackHeaderBox (line 35) | public class TrackHeaderBox extends AbstractFullBox {
    method TrackHeaderBox (line 51) | public TrackHeaderBox() {
    method getCreationTime (line 56) | public long getCreationTime() {
    method getModificationTime (line 60) | public long getModificationTime() {
    method getTrackId (line 64) | public long getTrackId() {
    method getDuration (line 68) | public long getDuration() {
    method getLayer (line 72) | public int getLayer() {
    method getAlternateGroup (line 76) | public int getAlternateGroup() {
    method getVolume (line 80) | public float getVolume() {
    method getMatrix (line 84) | public long[] getMatrix() {
    method getWidth (line 88) | public double getWidth() {
    method getHeight (line 92) | public double getHeight() {
    method getContentSize (line 96) | protected long getContentSize() {
    method _parseDetails (line 107) | @Override
    method getContent (line 137) | public void getContent(ByteBuffer byteBuffer) {
    method toString (line 165) | public String toString() {
    method setCreationTime (line 193) | public void setCreationTime(long creationTime) {
    method setModificationTime (line 197) | public void setModificationTime(long modificationTime) {
    method setTrackId (line 201) | public void setTrackId(long trackId) {
    method setDuration (line 205) | public void setDuration(long duration) {
    method setLayer (line 209) | public void setLayer(int layer) {
    method setAlternateGroup (line 213) | public void setAlternateGroup(int alternateGroup) {
    method setVolume (line 217) | public void setVolume(float volume) {
    method setMatrix (line 221) | public void setMatrix(long[] matrix) {
    method setWidth (line 225) | public void setWidth(double width) {
    method setHeight (line 229) | public void setHeight(double height) {
    method isEnabled (line 234) | public boolean isEnabled() {
    method isInMovie (line 238) | public boolean isInMovie() {
    method isInPreview (line 242) | public boolean isInPreview() {
    method isInPoster (line 246) | public boolean isInPoster() {

FILE: src/com/coremedia/iso/boxes/TrackReferenceBox.java
  class TrackReferenceBox (line 35) | public class TrackReferenceBox extends AbstractContainerBox {
    method TrackReferenceBox (line 38) | public TrackReferenceBox() {

FILE: src/com/coremedia/iso/boxes/TrackReferenceTypeBox.java
  class TrackReferenceTypeBox (line 28) | public class TrackReferenceTypeBox extends AbstractBox {
    method TrackReferenceTypeBox (line 35) | public TrackReferenceTypeBox(String type) {
    method getTrackIds (line 39) | public long[] getTrackIds() {
    method _parseDetails (line 43) | @Override
    method getContent (line 52) | @Override
    method getContentSize (line 60) | protected long getContentSize() {
    method toString (line 64) | public String toString() {

FILE: src/com/coremedia/iso/boxes/UnknownBox.java
  class UnknownBox (line 28) | public class UnknownBox extends AbstractBox {
    method UnknownBox (line 31) | public UnknownBox(String type) {
    method getContentSize (line 35) | @Override
    method _parseDetails (line 40) | @Override
    method getContent (line 46) | @Override
    method getData (line 52) | public ByteBuffer getData() {
    method setData (line 56) | public void setData(ByteBuffer data) {

FILE: src/com/coremedia/iso/boxes/UserBox.java
  class UserBox (line 26) | public class UserBox extends AbstractBox {
    method UserBox (line 30) | public UserBox(byte[] userType) {
    method getContentSize (line 35) | protected long getContentSize() {
    method toString (line 39) | public String toString() {
    method getData (line 46) | public byte[] getData() {
    method setData (line 50) | public void setData(byte[] data) {
    method _parseDetails (line 54) | @Override
    method getContent (line 60) | @Override

FILE: src/com/coremedia/iso/boxes/UserDataBox.java
  class UserDataBox (line 32) | public class UserDataBox extends AbstractContainerBox {
    method getContentSize (line 35) | @Override
    method parse (line 40) | @Override
    method _parseDetails (line 45) | @Override
    method getContent (line 50) | @Override
    method UserDataBox (line 55) | public UserDataBox() {

FILE: src/com/coremedia/iso/boxes/VideoMediaHeaderBox.java
  class VideoMediaHeaderBox (line 28) | public class VideoMediaHeaderBox extends AbstractMediaHeaderBox {
    method VideoMediaHeaderBox (line 33) | public VideoMediaHeaderBox() {
    method getGraphicsmode (line 38) | public int getGraphicsmode() {
    method getOpcolor (line 42) | public int[] getOpcolor() {
    method getContentSize (line 46) | protected long getContentSize() {
    method _parseDetails (line 51) | @Override
    method getContent (line 61) | @Override
    method toString (line 70) | public String toString() {
    method setOpcolor (line 74) | public void setOpcolor(int[] opcolor) {
    method setGraphicsmode (line 78) | public void setGraphicsmode(int graphicsmode) {

FILE: src/com/coremedia/iso/boxes/WriteListener.java
  type WriteListener (line 8) | public interface WriteListener {
    method beforeWrite (line 9) | public void beforeWrite(long offset);

FILE: src/com/coremedia/iso/boxes/XmlBox.java
  class XmlBox (line 12) | public class XmlBox extends AbstractFullBox {
    method XmlBox (line 16) | public XmlBox() {
    method getXml (line 20) | public String getXml() {
    method setXml (line 24) | public void setXml(String xml) {
    method getContentSize (line 28) | @Override
    method _parseDetails (line 33) | @Override
    method getContent (line 39) | @Override

FILE: src/com/coremedia/iso/boxes/apple/AbstractAppleMetaDataBox.java
  class AbstractAppleMetaDataBox (line 21) | public abstract class AbstractAppleMetaDataBox extends AbstractBox imple...
    method getBoxes (line 25) | public List<Box> getBoxes() {
    method setBoxes (line 29) | public void setBoxes(List<Box> boxes) {
    method getBoxes (line 37) | public <T extends Box> List<T> getBoxes(Class<T> clazz) {
    method getBoxes (line 41) | public <T extends Box> List<T> getBoxes(Class<T> clazz, boolean recurs...
    method AbstractAppleMetaDataBox (line 49) | public AbstractAppleMetaDataBox(String type) {
    method _parseDetails (line 53) | @Override
    method getContentSize (line 68) | protected long getContentSize() {
    method getContent (line 72) | protected void getContent(ByteBuffer byteBuffer) {
    method getNumOfBytesToFirstChild (line 80) | public long getNumOfBytesToFirstChild() {
    method toString (line 84) | @Override
    method toLong (line 91) | static long toLong(byte b) {
    method setValue (line 95) | public void setValue(String value) {
    method getValue (line 134) | public String getValue() {
    method hexStringToByteArray (line 153) | public static byte[] hexStringToByteArray(String s) {

FILE: src/com/coremedia/iso/boxes/apple/AppleAlbumArtistBox.java
  class AppleAlbumArtistBox (line 6) | public class AppleAlbumArtistBox extends AbstractAppleMetaDataBox {
    method AppleAlbumArtistBox (line 10) | public AppleAlbumArtistBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleAlbumBox.java
  class AppleAlbumBox (line 6) | public final class AppleAlbumBox extends AbstractAppleMetaDataBox {
    method AppleAlbumBox (line 10) | public AppleAlbumBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleArtistBox.java
  class AppleArtistBox (line 6) | public final class AppleArtistBox extends AbstractAppleMetaDataBox {
    method AppleArtistBox (line 10) | public AppleArtistBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleCommentBox.java
  class AppleCommentBox (line 6) | public final class AppleCommentBox extends AbstractAppleMetaDataBox {
    method AppleCommentBox (line 10) | public AppleCommentBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleCompilationBox.java
  class AppleCompilationBox (line 6) | public final class AppleCompilationBox extends AbstractAppleMetaDataBox {
    method AppleCompilationBox (line 10) | public AppleCompilationBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleCopyrightBox.java
  class AppleCopyrightBox (line 6) | public final class AppleCopyrightBox extends AbstractAppleMetaDataBox {
    method AppleCopyrightBox (line 10) | public AppleCopyrightBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleCoverBox.java
  class AppleCoverBox (line 8) | public final class AppleCoverBox extends AbstractAppleMetaDataBox {
    method AppleCoverBox (line 13) | public AppleCoverBox() {
    method setPng (line 18) | public void setPng(byte[] pngData) {
    method setJpg (line 27) | public void setJpg(byte[] jpgData) {
    method setValue (line 35) | @Override
    method getValue (line 40) | @Override

FILE: src/com/coremedia/iso/boxes/apple/AppleCustomGenreBox.java
  class AppleCustomGenreBox (line 8) | public final class AppleCustomGenreBox extends AbstractAppleMetaDataBox {
    method AppleCustomGenreBox (line 12) | public AppleCustomGenreBox() {
    method setGenre (line 17) | public void setGenre(String genre) {
    method getGenre (line 25) | public String getGenre() {

FILE: src/com/coremedia/iso/boxes/apple/AppleDataBox.java
  class AppleDataBox (line 10) | public final class AppleDataBox extends AbstractFullBox {
    method getEmpty (line 16) | private static AppleDataBox getEmpty() {
    method getStringAppleDataBox (line 23) | public static AppleDataBox getStringAppleDataBox() {
    method getUint8AppleDataBox (line 30) | public static AppleDataBox getUint8AppleDataBox() {
    method getUint16AppleDataBox (line 37) | public static AppleDataBox getUint16AppleDataBox() {
    method getUint32AppleDataBox (line 44) | public static AppleDataBox getUint32AppleDataBox() {
    method AppleDataBox (line 51) | public AppleDataBox() {
    method getContentSize (line 55) | protected long getContentSize() {
    method setData (line 59) | public void setData(byte[] data) {
    method setFourBytes (line 64) | public void setFourBytes(byte[] fourBytes) {
    method _parseDetails (line 68) | @Override
    method getContent (line 78) | @Override
    method getFourBytes (line 85) | public byte[] getFourBytes() {
    method getData (line 89) | public byte[] getData() {

FILE: src/com/coremedia/iso/boxes/apple/AppleDataRateBox.java
  class AppleDataRateBox (line 25) | public class AppleDataRateBox extends AbstractFullBox {
    method AppleDataRateBox (line 29) | public AppleDataRateBox() {
    method getContentSize (line 33) | protected long getContentSize() {
    method _parseDetails (line 37) | @Override
    method getContent (line 43) | @Override
    method getDataRate (line 50) | public long getDataRate() {

FILE: src/com/coremedia/iso/boxes/apple/AppleDataReferenceBox.java
  class AppleDataReferenceBox (line 29) | public class AppleDataReferenceBox extends AbstractFullBox {
    method AppleDataReferenceBox (line 35) | public AppleDataReferenceBox() {
    method getContentSize (line 40) | protected long getContentSize() {
    method _parseDetails (line 44) | @Override
    method getContent (line 52) | @Override
    method getDataReferenceSize (line 60) | public long getDataReferenceSize() {
    method getDataReferenceType (line 64) | public String getDataReferenceType() {
    method getDataReference (line 68) | public String getDataReference() {

FILE: src/com/coremedia/iso/boxes/apple/AppleDescriptionBox.java
  class AppleDescriptionBox (line 6) | public final class AppleDescriptionBox extends AbstractAppleMetaDataBox {
    method AppleDescriptionBox (line 10) | public AppleDescriptionBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleEncoderBox.java
  class AppleEncoderBox (line 6) | public final class AppleEncoderBox extends AbstractAppleMetaDataBox {
    method AppleEncoderBox (line 10) | public AppleEncoderBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleGaplessPlaybackBox.java
  class AppleGaplessPlaybackBox (line 6) | public final class AppleGaplessPlaybackBox extends AbstractAppleMetaData...
    method AppleGaplessPlaybackBox (line 10) | public AppleGaplessPlaybackBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleGenericBox.java
  class AppleGenericBox (line 8) | public final class AppleGenericBox extends AbstractContainerBox {
    method AppleGenericBox (line 11) | public AppleGenericBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleGroupingBox.java
  class AppleGroupingBox (line 6) | public final class AppleGroupingBox extends AbstractAppleMetaDataBox {
    method AppleGroupingBox (line 10) | public AppleGroupingBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleIdBox.java
  class AppleIdBox (line 6) | public final class AppleIdBox extends AbstractAppleMetaDataBox {
    method AppleIdBox (line 10) | public AppleIdBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleItemListBox.java
  class AppleItemListBox (line 8) | public class AppleItemListBox extends AbstractContainerBox {
    method AppleItemListBox (line 11) | public AppleItemListBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleLosslessSpecificBox.java
  class AppleLosslessSpecificBox (line 12) | public final class AppleLosslessSpecificBox extends AbstractFullBox {
    method getMaxSamplePerFrame (line 34) | public long getMaxSamplePerFrame() {
    method setMaxSamplePerFrame (line 38) | public void setMaxSamplePerFrame(int maxSamplePerFrame) {
    method getUnknown1 (line 42) | public int getUnknown1() {
    method setUnknown1 (line 46) | public void setUnknown1(int unknown1) {
    method getSampleSize (line 50) | public int getSampleSize() {
    method setSampleSize (line 54) | public void setSampleSize(int sampleSize) {
    method getHistoryMult (line 58) | public int getHistoryMult() {
    method setHistoryMult (line 62) | public void setHistoryMult(int historyMult) {
    method getInitialHistory (line 66) | public int getInitialHistory() {
    method setInitialHistory (line 70) | public void setInitialHistory(int initialHistory) {
    method getKModifier (line 74) | public int getKModifier() {
    method setKModifier (line 78) | public void setKModifier(int kModifier) {
    method getChannels (line 82) | public int getChannels() {
    method setChannels (line 86) | public void setChannels(int channels) {
    method getUnknown2 (line 90) | public int getUnknown2() {
    method setUnknown2 (line 94) | public void setUnknown2(int unknown2) {
    method getMaxCodedFrameSize (line 98) | public long getMaxCodedFrameSize() {
    method setMaxCodedFrameSize (line 102) | public void setMaxCodedFrameSize(int maxCodedFrameSize) {
    method getBitRate (line 106) | public long getBitRate() {
    method setBitRate (line 110) | public void setBitRate(int bitRate) {
    method getSampleRate (line 114) | public long getSampleRate() {
    method setSampleRate (line 118) | public void setSampleRate(int sampleRate) {
    method _parseDetails (line 123) | @Override
    method getContent (line 139) | @Override
    method AppleLosslessSpecificBox (line 155) | public AppleLosslessSpecificBox() {
    method getContentSize (line 159) | protected long getContentSize() {

FILE: src/com/coremedia/iso/boxes/apple/AppleMeanBox.java
  class AppleMeanBox (line 14) | public final class AppleMeanBox extends AbstractFullBox {
    method AppleMeanBox (line 18) | public AppleMeanBox() {
    method getContentSize (line 22) | protected long getContentSize() {
    method _parseDetails (line 26) | @Override
    method getContent (line 32) | @Override
    method getMeaning (line 38) | public String getMeaning() {
    method setMeaning (line 42) | public void setMeaning(String meaning) {

FILE: src/com/coremedia/iso/boxes/apple/AppleMediaTypeBox.java
  class AppleMediaTypeBox (line 9) | public class AppleMediaTypeBox extends AbstractAppleMetaDataBox {
    method AppleMediaTypeBox (line 26) | public AppleMediaTypeBox() {
    method getReadableValue (line 31) | public String getReadableValue() {

FILE: src/com/coremedia/iso/boxes/apple/AppleNameBox.java
  class AppleNameBox (line 14) | public final class AppleNameBox extends AbstractFullBox {
    method AppleNameBox (line 18) | public AppleNameBox() {
    method getContentSize (line 22) | protected long getContentSize() {
    method getName (line 26) | public String getName() {
    method setName (line 30) | public void setName(String name) {
    method _parseDetails (line 34) | @Override
    method getContent (line 40) | @Override

FILE: src/com/coremedia/iso/boxes/apple/AppleNetworkBox.java
  class AppleNetworkBox (line 6) | public final class AppleNetworkBox extends AbstractAppleMetaDataBox {
    method AppleNetworkBox (line 10) | public AppleNetworkBox() {

FILE: src/com/coremedia/iso/boxes/apple/ApplePurchaseDateBox.java
  class ApplePurchaseDateBox (line 6) | public final class ApplePurchaseDateBox extends AbstractAppleMetaDataBox {
    method ApplePurchaseDateBox (line 10) | public ApplePurchaseDateBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleRatingBox.java
  class AppleRatingBox (line 6) | public final class AppleRatingBox extends AbstractAppleMetaDataBox {
    method AppleRatingBox (line 10) | public AppleRatingBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleRecordingYearBox.java
  class AppleRecordingYearBox (line 6) | public class AppleRecordingYearBox extends AbstractAppleMetaDataBox {
    method AppleRecordingYearBox (line 10) | public AppleRecordingYearBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleReferenceMovieBox.java
  class AppleReferenceMovieBox (line 21) | public class AppleReferenceMovieBox extends AbstractContainerBox {
    method AppleReferenceMovieBox (line 24) | public AppleReferenceMovieBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleReferenceMovieDescriptorBox.java
  class AppleReferenceMovieDescriptorBox (line 21) | public class AppleReferenceMovieDescriptorBox extends AbstractContainerB...
    method AppleReferenceMovieDescriptorBox (line 24) | public AppleReferenceMovieDescriptorBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleShowBox.java
  class AppleShowBox (line 6) | public final class AppleShowBox extends AbstractAppleMetaDataBox {
    method AppleShowBox (line 10) | public AppleShowBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleSortAlbumBox.java
  class AppleSortAlbumBox (line 6) | public final class AppleSortAlbumBox extends AbstractAppleMetaDataBox {
    method AppleSortAlbumBox (line 10) | public AppleSortAlbumBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleStandardGenreBox.java
  class AppleStandardGenreBox (line 6) | public final class AppleStandardGenreBox extends AbstractAppleMetaDataBox {
    method AppleStandardGenreBox (line 10) | public AppleStandardGenreBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleStoreAccountTypeBox.java
  class AppleStoreAccountTypeBox (line 6) | public class AppleStoreAccountTypeBox extends AbstractAppleMetaDataBox {
    method AppleStoreAccountTypeBox (line 10) | public AppleStoreAccountTypeBox() {
    method getReadableValue (line 15) | public String getReadableValue() {

FILE: src/com/coremedia/iso/boxes/apple/AppleStoreCountryCodeBox.java
  class AppleStoreCountryCodeBox (line 9) | public class AppleStoreCountryCodeBox extends AbstractAppleMetaDataBox {
    method AppleStoreCountryCodeBox (line 40) | public AppleStoreCountryCodeBox() {
    method getReadableValue (line 46) | public String getReadableValue() {

FILE: src/com/coremedia/iso/boxes/apple/AppleSynopsisBox.java
  class AppleSynopsisBox (line 6) | public final class AppleSynopsisBox extends AbstractAppleMetaDataBox {
    method AppleSynopsisBox (line 10) | public AppleSynopsisBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleTempBox.java
  class AppleTempBox (line 6) | public final class AppleTempBox extends AbstractAppleMetaDataBox {
    method AppleTempBox (line 10) | public AppleTempBox() {
    method getTempo (line 16) | public int getTempo() {
    method setTempo (line 20) | public void setTempo(int tempo) {

FILE: src/com/coremedia/iso/boxes/apple/AppleTrackAuthorBox.java
  class AppleTrackAuthorBox (line 6) | public final class AppleTrackAuthorBox extends AbstractAppleMetaDataBox {
    method AppleTrackAuthorBox (line 10) | public AppleTrackAuthorBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleTrackNumberBox.java
  class AppleTrackNumberBox (line 6) | public final class AppleTrackNumberBox extends AbstractAppleMetaDataBox {
    method AppleTrackNumberBox (line 10) | public AppleTrackNumberBox() {
    method setTrackNumber (line 19) | public void setTrackNumber(byte track, byte of) {
    method getTrackNumber (line 27) | public byte getTrackNumber() {
    method getNumberOfTracks (line 31) | public byte getNumberOfTracks() {
    method setNumberOfTracks (line 35) | public void setNumberOfTracks(byte numberOfTracks) {
    method setTrackNumber (line 41) | public void setTrackNumber(byte trackNumber) {

FILE: src/com/coremedia/iso/boxes/apple/AppleTrackTitleBox.java
  class AppleTrackTitleBox (line 6) | public final class AppleTrackTitleBox extends AbstractAppleMetaDataBox {
    method AppleTrackTitleBox (line 10) | public AppleTrackTitleBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleTvEpisodeBox.java
  class AppleTvEpisodeBox (line 6) | public class AppleTvEpisodeBox extends AbstractAppleMetaDataBox {
    method AppleTvEpisodeBox (line 10) | public AppleTvEpisodeBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleTvEpisodeNumberBox.java
  class AppleTvEpisodeNumberBox (line 6) | public class AppleTvEpisodeNumberBox extends AbstractAppleMetaDataBox {
    method AppleTvEpisodeNumberBox (line 10) | public AppleTvEpisodeNumberBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleTvSeasonBox.java
  class AppleTvSeasonBox (line 6) | public final class AppleTvSeasonBox extends AbstractAppleMetaDataBox {
    method AppleTvSeasonBox (line 10) | public AppleTvSeasonBox() {

FILE: src/com/coremedia/iso/boxes/apple/AppleWaveBox.java
  class AppleWaveBox (line 8) | public final class AppleWaveBox extends AbstractContainerBox {
    method AppleWaveBox (line 11) | public AppleWaveBox() {

FILE: src/com/coremedia/iso/boxes/dece/TrickPlayBox.java
  class TrickPlayBox (line 21) | public class TrickPlayBox extends AbstractFullBox {
    method TrickPlayBox (line 26) | public TrickPlayBox() {
    method setEntries (line 30) | public void setEntries(List<Entry> entries) {
    method getEntries (line 34) | public List<Entry> getEntries() {
    class Entry (line 38) | public static class Entry {
      method Entry (line 40) | public Entry() {
      method Entry (line 43) | public Entry(int value) {
      method getPicType (line 50) | public int getPicType() {
      method setPicType (line 54) | public void setPicType(int picType) {
      method getDependencyLevel (line 59) | public int getDependencyLevel() {
      method setDependencyLevel (line 63) | public void setDependencyLevel(int dependencyLevel) {
      method toString (line 68) | @Override
    method getContentSize (line 79) | @Override
    method _parseDetails (line 84) | @Override
    method getContent (line 92) | @Override
    method toString (line 100) | @Override

FILE: src/com/coremedia/iso/boxes/fragment/MovieExtendsBox.java
  class MovieExtendsBox (line 25) | public class MovieExtendsBox extends AbstractContainerBox {
    method MovieExtendsBox (line 28) | public MovieExtendsBox() {

FILE: src/com/coremedia/iso/boxes/fragment/MovieExtendsHeaderBox.java
  class MovieExtendsHeaderBox (line 34) | public class MovieExtendsHeaderBox extends AbstractFullBox {
    method MovieExtendsHeaderBox (line 38) | public MovieExtendsHeaderBox() {
    method getContentSize (line 42) | @Override
    method _parseDetails (line 47) | @Override
    method getContent (line 54) | @Override
    method getFragmentDuration (line 64) | public long getFragmentDuration() {

FILE: src/com/coremedia/iso/boxes/fragment/MovieFragmentBox.java
  class MovieFragmentBox (line 32) | public class MovieFragmentBox extends AbstractContainerBox {
    method MovieFragmentBox (line 35) | public MovieFragmentBox() {
    method getSyncSamples (line 40) | public List<Long> getSyncSamples(SampleDependencyTypeBox sdtp) {
    method getOffset (line 55) | @DoNotParseDetail
    method getTrackCount (line 72) | public int getTrackCount() {
    method getTrackNumbers (line 82) | public long[] getTrackNumbers() {
    method getTrackRunBoxes (line 93) | public List<TrackRunBox> getTrackRunBoxes() {

FILE: src/com/coremedia/iso/boxes/fragment/MovieFragmentHeaderBox.java
  class MovieFragmentHeaderBox (line 32) | public class MovieFragmentHeaderBox extends AbstractFullBox {
    method MovieFragmentHeaderBox (line 36) | public MovieFragmentHeaderBox() {
    method getContentSize (line 40) | protected long getContentSize() {
    method getContent (line 44) | @Override
    method _parseDetails (line 51) | @Override
    method getSequenceNumber (line 58) | public long getSequenceNumber() {
    method setSequenceNumber (line 62) | public void setSequenceNumber(long sequenceNumber) {
    method toString (line 66) | @Override

FILE: src/com/coremedia/iso/boxes/fragment/MovieFragmentRandomAccessBox.java
  class MovieFragmentRandomAccessBox (line 27) | public class MovieFragmentRandomAccessBox extends AbstractContainerBox {
    method MovieFragmentRandomAccessBox (line 30) | public MovieFragmentRandomAccessBox() {

FILE: src/com/coremedia/iso/boxes/fragment/MovieFragmentRandomAccessOffsetBox.java
  class MovieFragmentRandomAccessOffsetBox (line 31) | public class MovieFragmentRandomAccessOffsetBox extends AbstractFullBox {
    method MovieFragmentRandomAccessOffsetBox (line 35) | public MovieFragmentRandomAccessOffsetBox() {
    method getContentSize (line 39) | protected long getContentSize() {
    method _parseDetails (line 43) | @Override
    method getContent (line 49) | @Override
    method getMfraSize (line 55) | public long getMfraSize() {
    method setMfraSize (line 59) | public void setMfraSize(long mfraSize) {

FILE: src/com/coremedia/iso/boxes/fragment/SampleFlags.java
  class SampleFlags (line 35) | public class SampleFlags {
    method SampleFlags (line 44) | public SampleFlags() {
    method SampleFlags (line 48) | public SampleFlags(ByteBuffer bb) {
    method getContent (line 60) | public void getContent(ByteBuffer os) {
    method getReserved (line 71) | public int getReserved() {
    method setReserved (line 75) | public void setReserved(int reserved) {
    method getSampleDependsOn (line 82) | public int getSampleDependsOn() {
    method setSampleDependsOn (line 96) | public void setSampleDependsOn(int sampleDependsOn) {
    method getSampleIsDependedOn (line 103) | public int getSampleIsDependedOn() {
    method setSampleIsDependedOn (line 117) | public void setSampleIsDependedOn(int sampleIsDependedOn) {
    method getSampleHasRedundancy (line 124) | public int getSampleHasRedundancy() {
    method setSampleHasRedundancy (line 137) | public void setSampleHasRedundancy(int sampleHasRedundancy) {
    method getSamplePaddingValue (line 141) | public int getSamplePaddingValue() {
    method setSamplePaddingValue (line 145) | public void setSamplePaddingValue(int samplePaddingValue) {
    method isSampleIsDifferenceSample (line 149) | public boolean isSampleIsDifferenceSample() {
    method setSampleIsDifferenceSample (line 154) | public void setSampleIsDifferenceSample(boolean sampleIsDifferenceSamp...
    method getSampleDegradationPriority (line 158) | public int getSampleDegradationPriority() {
    method setSampleDegradationPriority (line 162) | public void setSampleDegradationPriority(int sampleDegradationPriority) {
    method toString (line 166) | @Override
    method equals (line 178) | @Override
    method hashCode (line 196) | @Override

FILE: src/com/coremedia/iso/boxes/fragment/TrackExtendsBox.java
  class TrackExtendsBox (line 34) | public class TrackExtendsBox extends AbstractFullBox {
    method TrackExtendsBox (line 42) | public TrackExtendsBox() {
    method getContentSize (line 46) | @Override
    method getContent (line 51) | @Override
    method _parseDetails (line 61) | @Override
    method getTrackId (line 71) | public long getTrackId() {
    method getDefaultSampleDescriptionIndex (line 75) | public long getDefaultSampleDescriptionIndex() {
    method getDefaultSampleDuration (line 79) | public long getDefaultSampleDuration() {
    method getDefaultSampleSize (line 83) | public long getDefaultSampleSize() {
    method getDefaultSampleFlags (line 87) | public SampleFlags getDefaultSampleFlags() {
    method getDefaultSampleFlagsStr (line 91) | public String getDefaultSampleFlagsStr() {
    method setTrackId (line 95) | public void setTrackId(long trackId) {
    method setDefaultSampleDescriptionIndex (line 99) | public void setDefaultSampleDescriptionIndex(long defaultSampleDescrip...
    method setDefaultSampleDuration (line 103) | public void setDefaultSampleDuration(long defaultSampleDuration) {
    method setDefaultSampleSize (line 107) | public void setDefaultSampleSize(long defaultSampleSize) {
    method setDefaultSampleFlags (line 111) | public void setDefaultSampleFlags(SampleFlags defaultSampleFlags) {

FILE: src/com/coremedia/iso/boxes/fragment/TrackFragmentBaseMediaDecodeTimeBox.java
  class TrackFragmentBaseMediaDecodeTimeBox (line 25) | public class TrackFragmentBaseMediaDecodeTimeBox extends AbstractFullBox {
    method TrackFragmentBaseMediaDecodeTimeBox (line 30) | public TrackFragmentBaseMediaDecodeTimeBox() {
    method getContentSize (line 34) | @Override
    method getContent (line 39) | @Override
    method _parseDetails (line 50) | @Override
    method getBaseMediaDecodeTime (line 62) | public long getBaseMediaDecodeTime() {
    method setBaseMediaDecodeTime (line 66) | public void setBaseMediaDecodeTime(long baseMediaDecodeTime) {
    method toString (line 70) | @Override

FILE: src/com/coremedia/iso/boxes/fragment/TrackFragmentBox.java
  class TrackFragmentBox (line 26) | public class TrackFragmentBox extends AbstractContainerBox {
    method TrackFragmentBox (line 29) | public TrackFragmentBox() {
    method getTrackFragmentHeaderBox (line 34) | public TrackFragmentHeaderBox getTrackFragmentHeaderBox() {

FILE: src/com/coremedia/iso/boxes/fragment/TrackFragmentHeaderBox.java
  class TrackFragmentHeaderBox (line 37) | public class TrackFragmentHeaderBox extends AbstractFullBox {
    method TrackFragmentHeaderBox (line 48) | public TrackFragmentHeaderBox() {
    method getContentSize (line 52) | protected long getContentSize() {
    method getContent (line 74) | protected void getContent(ByteBuffer byteBuffer) {
    method _parseDetails (line 95) | @Override
    method hasBaseDataOffset (line 119) | public boolean hasBaseDataOffset() {
    method getTrackId (line 123) | public long getTrackId() {
    method getBaseDataOffset (line 127) | public long getBaseDataOffset() {
    method getSampleDescriptionIndex (line 131) | public long getSampleDescriptionIndex() {
    method getDefaultSampleDuration (line 135) | public long getDefaultSampleDuration() {
    method getDefaultSampleSize (line 139) | public long getDefaultSampleSize() {
    method getDefaultSampleFlags (line 143) | public SampleFlags getDefaultSampleFlags() {
    method isDurationIsEmpty (line 147) | public boolean isDurationIsEmpty() {
    method setTrackId (line 151) | public void setTrackId(long trackId) {
    method setBaseDataOffset (line 155) | public void setBaseDataOffset(long baseDataOffset) {
    method setSampleDescriptionIndex (line 164) | public void setSampleDescriptionIndex(long sampleDescriptionIndex) {
    method setDefaultSampleDuration (line 173) | public void setDefaultSampleDuration(long defaultSampleDuration) {
    method setDefaultSampleSize (line 178) | public void setDefaultSampleSize(long defaultSampleSize) {
    method setDefaultSampleFlags (line 183) | public void setDefaultSampleFlags(SampleFlags defaultSampleFlags) {
    method setDurationIsEmpty (line 188) | public void setDurationIsEmpty(boolean durationIsEmpty) {
    method toString (line 193) | @Override

FILE: src/com/coremedia/iso/boxes/fragment/TrackFragmentRandomAccessBox.java
  class TrackFragmentRandomAccessBox (line 53) | public class TrackFragmentRandomAccessBox extends AbstractFullBox {
    method TrackFragmentRandomAccessBox (line 63) | public TrackFragmentRandomAccessBox() {
    method getContentSize (line 68) | protected long getContentSize() {
    method _parseDetails (line 83) | @Override
    method getContent (line 115) | @Override
    method setTrackId (line 143) | public void setTrackId(long trackId) {
    method setLengthSizeOfTrafNum (line 147) | public void setLengthSizeOfTrafNum(int lengthSizeOfTrafNum) {
    method setLengthSizeOfTrunNum (line 151) | public void setLengthSizeOfTrunNum(int lengthSizeOfTrunNum) {
    method setLengthSizeOfSampleNum (line 155) | public void setLengthSizeOfSampleNum(int lengthSizeOfSampleNum) {
    method getTrackId (line 159) | public long getTrackId() {
    method getReserved (line 163) | public int getReserved() {
    method getLengthSizeOfTrafNum (line 167) | public int getLengthSizeOfTrafNum() {
    method getLengthSizeOfTrunNum (line 171) | public int getLengthSizeOfTrunNum() {
    method getLengthSizeOfSampleNum (line 175) | public int getLengthSizeOfSampleNum() {
    method getNumberOfEntries (line 179) | public long getNumberOfEntries() {
    method getEntries (line 183) | public List<Entry> getEntries() {
    method setEntries (line 187) | public void setEntries(List<Entry> entries) {
    class Entry (line 191) | public static class Entry {
      method Entry (line 198) | public Entry() {
      method Entry (line 201) | public Entry(long time, long moofOffset, long trafNumber, long trunN...
      method getTime (line 209) | public long getTime() {
      method getMoofOffset (line 213) | public long getMoofOffset() {
      method getTrafNumber (line 217) | public long getTrafNumber() {
      method getTrunNumber (line 221) | public long getTrunNumber() {
      method getSampleNumber (line 225) | public long getSampleNumber() {
      method setTime (line 229) | public void setTime(long time) {
      method setMoofOffset (line 233) | public void setMoofOffset(long moofOffset) {
      method setTrafNumber (line 237) | public void setTrafNumber(long trafNumber) {
      method setTrunNumber (line 241) | public void setTrunNumber(long trunNumber) {
      method setSampleNumber (line 245) | public void setSampleNumber(long sampleNumber) {
      method toString (line 249) | @Override
      method equals (line 260) | @Override
      method hashCode (line 276) | @Override

FILE: src/com/coremedia/iso/boxes/fragment/TrackRunBox.java
  class TrackRunBox (line 46) | public class TrackRunBox extends AbstractFullBox {
    method getEntries (line 53) | public List<Entry> getEntries() {
    class Entry (line 57) | public static class Entry {
      method Entry (line 63) | public Entry() {
      method Entry (line 66) | public Entry(long sampleDuration, long sampleSize, SampleFlags sampl...
      method getSampleDuration (line 73) | public long getSampleDuration() {
      method getSampleSize (line 77) | public long getSampleSize() {
      method getSampleFlags (line 81) | public SampleFlags getSampleFlags() {
      method getSampleCompositionTimeOffset (line 85) | public int getSampleCompositionTimeOffset() {
      method setSampleDuration (line 89) | public void setSampleDuration(long sampleDuration) {
      method setSampleSize (line 93) | public void setSampleSize(long sampleSize) {
      method setSampleFlags (line 97) | public void setSampleFlags(SampleFlags sampleFlags) {
      method setSampleCompositionTimeOffset (line 101) | public void setSampleCompositionTimeOffset(int sampleCompositionTime...
      method toString (line 105) | @Override
    method setDataOffset (line 116) | public void setDataOffset(int dataOffset) {
    method getSampleOffsets (line 125) | public long[] getSampleOffsets() {
    method getSampleSizes (line 141) | public long[] getSampleSizes() {
    method getSampleCompositionTimeOffsets (line 155) | public long[] getSampleCompositionTimeOffsets() {
    method getSampleDurations (line 167) | public long[] getSampleDurations() {
    method TrackRunBox (line 181) | public TrackRunBox() {
    method getContentSize (line 185) | protected long getContentSize() {
    method getContent (line 213) | protected void getContent(ByteBuffer byteBuffer) {
    method _parseDetails (line 241) | @Override
    method getSampleCount (line 274) | public long getSampleCount() {
    method isDataOffsetPresent (line 278) | public boolean isDataOffsetPresent() {
    method isFirstSampleFlagsPresent (line 282) | public boolean isFirstSampleFlagsPresent() {
    method isSampleSizePresent (line 287) | public boolean isSampleSizePresent() {
    method isSampleDurationPresent (line 291) | public boolean isSampleDurationPresent() {
    method isSampleFlagsPresent (line 295) | public boolean isSampleFlagsPresent() {
    method isSampleCompositionTimeOffsetPresent (line 299) | public boolean isSampleCompositionTimeOffsetPresent() {
    method setDataOffsetPresent (line 303) | public void setDataOffsetPresent(boolean v) {
    method setSampleSizePresent (line 311) | public void setSampleSizePresent(boolean v) {
    method setSampleDurationPresent (line 319) | public void setSampleDurationPresent(boolean v) {
    method setSampleFlagsPresent (line 328) | public void setSampleFlagsPresent(boolean v) {
    method setSampleCompositionTimeOffsetPresent (line 336) | public void setSampleCompositionTimeOffsetPresent(boolean v) {
    method getDataOffset (line 345) | public int getDataOffset() {
    method getFirstSampleFlags (line 349) | public SampleFlags getFirstSampleFlags() {
    method setFirstSampleFlags (line 353) | public void setFirstSampleFlags(SampleFlags firstSampleFlags) {
    method toString (line 362) | @Override
    method setEntries (line 378) | public void setEntries(List<Entry> entries) {

FILE: src/com/coremedia/iso/boxes/h264/AvcConfigurationBox.java
  class AvcConfigurationBox (line 35) | public final class AvcConfigurationBox extends AbstractBox {
    method AvcConfigurationBox (line 52) | public AvcConfigurationBox() {
    method getConfigurationVersion (line 56) | public int getConfigurationVersion() {
    method getAvcProfileIndicaation (line 60) | public int getAvcProfileIndicaation() {
    method getProfileCompatibility (line 64) | public int getProfileCompatibility() {
    method getAvcLevelIndication (line 68) | public int getAvcLevelIndication() {
    method getLengthSizeMinusOne (line 72) | public int getLengthSizeMinusOne() {
    method getSequenceParameterSets (line 76) | public List<byte[]> getSequenceParameterSets() {
    method getPictureParameterSets (line 80) | public List<byte[]> getPictureParameterSets() {
    method setConfigurationVersion (line 84) | public void setConfigurationVersion(int configurationVersion) {
    method setAvcProfileIndicaation (line 88) | public void setAvcProfileIndicaation(int avcProfileIndicaation) {
    method setProfileCompatibility (line 92) | public void setProfileCompatibility(int profileCompatibility) {
    method setAvcLevelIndication (line 96) | public void setAvcLevelIndication(int avcLevelIndication) {
    method setLengthSizeMinusOne (line 100) | public void setLengthSizeMinusOne(int lengthSizeMinusOne) {
    method setSequenceParameterSets (line 104) | public void setSequenceParameterSets(List<byte[]> sequenceParameterSet...
    method setPictureParameterSets (line 108) | public void setPictureParameterSets(List<byte[]> pictureParameterSets) {
    method getChromaFormat (line 112) | public int getChromaFormat() {
    method setChromaFormat (line 116) | public void setChromaFormat(int chromaFormat) {
    method getBitDepthLumaMinus8 (line 120) | public int getBitDepthLumaMinus8() {
    method setBitDepthLumaMinus8 (line 124) | public void setBitDepthLumaMinus8(int bitDepthLumaMinus8) {
    method getBitDepthChromaMinus8 (line 128) | public int getBitDepthChromaMinus8() {
    method setBitDepthChromaMinus8 (line 132) | public void setBitDepthChromaMinus8(int bitDepthChromaMinus8) {
    method getSequenceParameterSetExts (line 136) | public List<byte[]> getSequenceParameterSetExts() {
    method setSequenceParameterSetExts (line 140) | public void setSequenceParameterSetExts(List<byte[]> sequenceParameter...
    method hasExts (line 144) | public boolean hasExts() {
    method setHasExts (line 148) | public void setHasExts(boolean hasExts) {
    method _parseDetails (line 152) | @Override
    method getContentSize (line 198) | public long getContentSize() {
    method getContent (line 222) | @Override
    method getPPS (line 253) | public String[] getPPS() {
    method getSPS (line 269) | public String[] getSPS() {

FILE: src/com/coremedia/iso/boxes/mdat/DummyMap.java
  class DummyMap (line 13) | public class DummyMap<K, V> implements Map<K, V> {
    method DummyMap (line 17) | public DummyMap(V value) {
    method comparator (line 21) | public Comparator<? super K> comparator() {
    method addKeys (line 25) | public void addKeys(K[] keys) {
    method size (line 30) | public int size() {
    method isEmpty (line 34) | public boolean isEmpty() {
    method containsKey (line 38) | public boolean containsKey(Object key) {
    method containsValue (line 42) | public boolean containsValue(Object value) {
    method get (line 46) | public V get(Object key) {
    method put (line 50) | public V put(K key, V value) {
    method remove (line 56) | public V remove(Object key) {
    method putAll (line 62) | public void putAll(Map<? extends K, ? extends V> m) {
    method clear (line 69) | public void clear() {
    method keySet (line 73) | public Set<K> keySet() {
    method values (line 77) | public Collection<V> values() {
    method entrySet (line 81) | public Set<Entry<K, V>> entrySet() {

FILE: src/com/coremedia/iso/boxes/mdat/MediaDataBox.java
  class MediaDataBox (line 43) | public final class MediaDataBox implements Box {
    method getParent (line 51) | public ContainerBox getParent() {
    method setParent (line 55) | public void setParent(ContainerBox parent) {
    method getType (line 59) | public String getType() {
    method getBox (line 63) | public void getBox(WritableByteChannel writableByteChannel) throws IOE...
    method getSize (line 70) | public long getSize() {
    method parse (line 74) | public void parse(ReadableByteChannel readableByteChannel, ByteBuffer ...
    method getContent (line 87) | public ByteBuffer getContent() {
    method getHeader (line 91) | public ByteBuffer getHeader() {

FILE: src/com/coremedia/iso/boxes/mdat/SampleList.java
  class SampleList (line 28) | public class SampleList extends AbstractList<ByteBuffer> {
    method getOffsetKeys (line 43) | public List<Long> getOffsetKeys() {
    method SampleList (line 56) | public SampleList(TrackBox trackBox) {
    method size (line 142) | @Override
    method get (line 148) | @Override
    method getOffsets (line 169) | Map<Long, Long> getOffsets(MovieFragmentBox moof, long trackId) {

FILE: src/com/coremedia/iso/boxes/mdat/Segment.java
  class Segment (line 3) | public class Segment {
    method Segment (line 4) | public Segment(long offset, long size) {

FILE: src/com/coremedia/iso/boxes/sampleentry/AmrSpecificBox.java
  class AmrSpecificBox (line 32) | public class AmrSpecificBox extends AbstractBox {
    method AmrSpecificBox (line 41) | public AmrSpecificBox() {
    method getVendor (line 45) | public String getVendor() {
    method getDecoderVersion (line 49) | public int getDecoderVersion() {
    method getModeSet (line 53) | public int getModeSet() {
    method getModeChangePeriod (line 57) | public int getModeChangePeriod() {
    method getFramesPerSample (line 61) | public int getFramesPerSample() {
    method getContentSize (line 65) | protected long getContentSize() {
    method _parseDetails (line 69) | @Override
    method getContent (line 83) | public void getContent(ByteBuffer byteBuffer) {
    method toString (line 91) | public String toString() {

FILE: src/com/coremedia/iso/boxes/sampleentry/AudioSampleEntry.java
  class AudioSampleEntry (line 31) | public class AudioSampleEntry extends SampleEntry implements ContainerBox {
    method AudioSampleEntry (line 66) | public AudioSampleEntry(String type) {
    method getChannelCount (line 70) | public int getChannelCount() {
    method getSampleSize (line 74) | public int getSampleSize() {
    method getSampleRate (line 78) | public long getSampleRate() {
    method getSoundVersion (line 82) | public int getSoundVersion() {
    method getCompressionId (line 86) | public int getCompressionId() {
    method getPacketSize (line 90) | public int getPacketSize() {
    method getSamplesPerPacket (line 94) | public long getSamplesPerPacket() {
    method getBytesPerPacket (line 98) | public long getBytesPerPacket() {
    method getBytesPerFrame (line 102) | public long getBytesPerFrame() {
    method getBytesPerSample (line 106) | public long getBytesPerSample() {
    method setChannelCount (line 110) | public void setChannelCount(int channelCount) {
    method setSampleSize (line 114) | public void setSampleSize(int sampleSize) {
    method setSampleRate (line 118) | public void setSampleRate(long sampleRate) {
    method setSoundVersion (line 122) | public void setSoundVersion(int soundVersion) {
    method setCompressionId (line 126) | public void setCompressionId(int compressionId) {
    method setPacketSize (line 130) | public void setPacketSize(int packetSize) {
    method setSamplesPerPacket (line 134) | public void setSamplesPerPacket(long samplesPerPacket) {
    method setBytesPerPacket (line 138) | public void setBytesPerPacket(long bytesPerPacket) {
    method setBytesPerFrame (line 142) | public void setBytesPerFrame(long bytesPerFrame) {
    method setBytesPerSample (line 146) | public void setBytesPerSample(long bytesPerSample) {
    method setReserved1 (line 150) | public void setReserved1(int reserved1) {
    method setReserved2 (line 154) | public void setReserved2(long reserved2) {
    method setSoundVersion2Data (line 158) | public void setSoundVersion2Data(byte[] soundVersion2Data) {
    method setBoxParser (line 162) | public void setBoxParser(BoxParser boxParser) {
    method _parseDetails (line 166) | @Override
    method getContentSize (line 206) | @Override
    method toString (line 218) | public String toString() {
    method getContent (line 222) | @Override

FILE: src/com/coremedia/iso/boxes/sampleentry/MpegSampleEntry.java
  class MpegSampleEntry (line 10) | public class MpegSampleEntry extends SampleEntry implements ContainerBox {
    method MpegSampleEntry (line 14) | public MpegSampleEntry(String type) {
    method _parseDetails (line 18) | @Override
    method getContentSize (line 25) | @Override
    method toString (line 34) | public String toString() {
    method getContent (line 38) | @Override

FILE: src/com/coremedia/iso/boxes/sampleentry/Ovc1VisualSampleEntryImpl.java
  class Ovc1VisualSampleEntryImpl (line 9) | public class Ovc1VisualSampleEntryImpl extends SampleEntry {
    method getContentSize (line 14) | @Override
    method _parseDetails (line 25) | @Override
    method getContent (line 33) | @Override
    method Ovc1VisualSampleEntryImpl (line 41) | protected Ovc1VisualSampleEntryImpl() {

FILE: src/com/coremedia/iso/boxes/sampleentry/SampleEntry.java
  class SampleEntry (line 44) | public abstract class SampleEntry extends AbstractBox implements Contain...
    method SampleEntry (line 52) | protected SampleEntry(String type) {
    method setType (line 56) | public void setType(String type) {
    method getDataReferenceIndex (line 60) | public int getDataReferenceIndex() {
    method setDataReferenceIndex (line 64) | public void setDataReferenceIndex(int dataReferenceIndex) {
    method setBoxes (line 68) | public void setBoxes(List<Box> boxes) {
    method addBox (line 72) | public void addBox(AbstractBox b) {
    method removeBox (line 76) | public boolean removeBox(Box b) {
    method getBoxes (line 80) | public List<Box> getBoxes() {
    method getBoxes (line 84) | @SuppressWarnings("unchecked")
    method getBoxes (line 101) | @SuppressWarnings("unchecked")
    method parse (line 106) | @Override
    method _parseReservedAndDataReferenceIndex (line 113) | public void _parseReservedAndDataReferenceIndex(ByteBuffer content) {
    method _parseChildBoxes (line 118) | public void _parseChildBoxes(ByteBuffer content) {
    method _writeReservedAndDataReferenceIndex (line 130) | public void _writeReservedAndDataReferenceIndex(ByteBuffer bb) {
    method _writeChildBoxes (line 135) | public void _writeChildBoxes(ByteBuffer bb) {
    method getNumOfBytesToFirstChild (line 149) | public long getNumOfBytesToFirstChild() {

FILE: src/com/coremedia/iso/boxes/sampleentry/SubtitleSampleEntry.java
  class SubtitleSampleEntry (line 15) | public class SubtitleSampleEntry extends SampleEntry {
    method SubtitleSampleEntry (line 25) | public SubtitleSampleEntry(String type) {
    method getContentSize (line 29) | @Override
    method _parseDetails (line 35) | @Override
    method getContent (line 44) | @Override
    method getNamespace (line 52) | public String getNamespace() {
    method setNamespace (line 56) | public void setNamespace(String namespace) {
    method getSchemaLocation (line 60) | public String getSchemaLocation() {
    method setSchemaLocation (line 64) | public void setSchemaLocation(String schemaLocation) {
    method getImageMimeType (line 68) | public String getImageMimeType() {
    method setImageMimeType (line 72) | public void setImageMimeType(String imageMimeType) {

FILE: src/com/coremedia/iso/boxes/sampleentry/TextSampleEntry.java
  class TextSampleEntry (line 29) | public class TextSampleEntry extends SampleEntry {
    method TextSampleEntry (line 53) | public TextSampleEntry(String type) {
    method _parseDetails (line 57) | @Override
    method getContentSize (line 77) | protected long getContentSize() {
    method toString (line 87) | public String toString() {
    method getContent (line 91) | @Override
    method getBoxRecord (line 107) | public BoxRecord getBoxRecord() {
    method setBoxRecord (line 111) | public void setBoxRecord(BoxRecord boxRecord) {
    method getStyleRecord (line 115) | public StyleRecord getStyleRecord() {
    method setStyleRecord (line 119) | public void setStyleRecord(StyleRecord styleRecord) {
    method isScrollIn (line 123) | public boolean isScrollIn() {
    method setScrollIn (line 127) | public void setScrollIn(boolean scrollIn) {
    method isScrollOut (line 135) | public boolean isScrollOut() {
    method setScrollOut (line 139) | public void setScrollOut(boolean scrollOutIn) {
    method isScrollDirection (line 147) | public boolean isScrollDirection() {
    method setScrollDirection (line 151) | public void setScrollDirection(boolean scrollOutIn) {
    method isContinuousKaraoke (line 159) | public boolean isContinuousKaraoke() {
    method setContinuousKaraoke (line 163) | public void setContinuousKaraoke(boolean continuousKaraoke) {
    method isWriteTextVertically (line 171) | public boolean isWriteTextVertically() {
    method setWriteTextVertically (line 175) | public void setWriteTextVertically(boolean writeTextVertically) {
    method isFillTextRegion (line 184) | public boolean isFillTextRegion() {
    method setFillTextRegion (line 188) | public void setFillTextRegion(boolean fillTextRegion) {
    method getHorizontalJustification (line 197) | public int getHorizontalJustification() {
    method setHorizontalJustification (line 201) | public void setHorizontalJustification(int horizontalJustification) {
    method getVerticalJustification (line 205) | public int getVerticalJustification() {
    method setVerticalJustification (line 209) | public void setVerticalJustification(int verticalJustification) {
    method getBackgroundColorRgba (line 213) | public int[] getBackgroundColorRgba() {
    method setBackgroundColorRgba (line 217) | public void setBackgroundColorRgba(int[] backgroundColorRgba) {
    class BoxRecord (line 221) | public static class BoxRecord {
      method parse (line 227) | public void parse(ByteBuffer in) {
      method getContent (line 234) | public void getContent(ByteBuffer bb)  {
      method getSize (line 241) | public int getSize() {
    class StyleRecord (line 265) | public static class StyleRecord {
      method parse (line 273) | public void parse(ByteBuffer in) {
      method getContent (line 287) | public void getContent(ByteBuffer bb) {
      method getSize (line 299) | public int getSize() {

FILE: src/com/coremedia/iso/boxes/sampleentry/VisualSampleEntry.java
  class VisualSampleEntry (line 50) | public class VisualSampleEntry extends SampleEntry implements ContainerB...
    method VisualSampleEntry (line 74) | public VisualSampleEntry(String type) {
    method getWidth (line 78) | public int getWidth() {
    method getHeight (line 82) | public int getHeight() {
    method getHorizresolution (line 86) | public double getHorizresolution() {
    method getVertresolution (line 90) | public double getVertresolution() {
    method getFrameCount (line 94) | public int getFrameCount() {
    method getCompressorname (line 98) | public String getCompressorname() {
    method getDepth (line 102) | public int getDepth() {
    method setCompressorname (line 106) | public void setCompressorname(String compressorname) {
    method setWidth (line 110) | public void setWidth(int width) {
    method setHeight (line 114) | public void setHeight(int height) {
    method setHorizresolution (line 118) | public void setHorizresolution(double horizresolution) {
    method setVertresolution (line 122) | public void setVertresolution(double vertresolution) {
    method setFrameCount (line 126) | public void setFrameCount(int frameCount) {
    method setDepth (line 130) | public void setDepth(int depth) {
    method _parseDetails (line 134) | @Override
    method getContentSize (line 173) | protected long getContentSize() {
    method getContent (line 181) | @Override

FILE: src/com/coremedia/iso/boxes/threegpp26244/LocationInformationBox.java
  class LocationInformationBox (line 13) | public class LocationInformationBox extends AbstractFullBox {
    method LocationInformationBox (line 25) | public LocationInformationBox() {
    method getLanguage (line 29) | public String getLanguage() {
    method setLanguage (line 33) | public void setLanguage(String language) {
    method getName (line 37) | public String getName() {
    method setName (line 41) | public void setName(String name) {
    method getRole (line 45) | public int getRole() {
    method setRole (line 49) | public void setRole(int role) {
    method getLongitude (line 53) | public double getLongitude() {
    method setLongitude (line 57) | public void setLongitude(double longitude) {
    method getLatitude (line 61) | public double getLatitude() {
    method setLatitude (line 65) | public void setLatitude(double latitude) {
    method getAltitude (line 69) | public double getAltitude() {
    method setAltitude (line 73) | public void setAltitude(double altitude) {
    method getAstronomicalBody (line 77) | public String getAstronomicalBody() {
    method setAstronomicalBody (line 81) | public void setAstronomicalBody(String astronomicalBody) {
    method getAdditionalNotes (line 85) | public String getAdditionalNotes() {
    method setAdditionalNotes (line 89) | public void setAdditionalNotes(String additionalNotes) {
    method getContentSize (line 93) | protected long getContentSize() {
    method _parseDetails (line 97) | @Override
    method getContent (line 111) | @Override

FILE: src/com/coremedia/iso/boxes/vodafone/AlbumArtistBox.java
  class AlbumArtistBox (line 31) | public class AlbumArtistBox extends AbstractFullBox {
    method AlbumArtistBox (line 37) | public AlbumArtistBox() {
    method getLanguage (line 41) | public String getLanguage() {
    method getAlbumArtist (line 45) | public String getAlbumArtist() {
    method setLanguage (line 49) | public void setLanguage(String language) {
    method setAlbumArtist (line 53) | public void setAlbumArtist(String albumArtist) {
    method getContentSize (line 57) | protected long getContentSize() {
    method _parseDetails (line 61) | @Override
    method getContent (line 68) | protected void getContent(ByteBuffer byteBuffer) {
    method toString (line 75) | public String toString() {

FILE: src/com/coremedia/iso/boxes/vodafone/ContentDistributorIdBox.java
  class ContentDistributorIdBox (line 29) | public class ContentDistributorIdBox extends AbstractFullBox {
    method ContentDistributorIdBox (line 35) | public ContentDistributorIdBox() {
    method getLanguage (line 39) | public String getLanguage() {
    method getContentDistributorId (line 43) | public String getContentDistributorId() {
    method getContentSize (line 47) | protected long getContentSize() {
    method _parseDetails (line 51) | @Override
    method getContent (line 58) | @Override
    method toString (line 67) | public String toString() {

FILE: src/com/coremedia/iso/boxes/vodafone/CoverUriBox.java
  class CoverUriBox (line 28) | public class CoverUriBox extends AbstractFullBox {
    method CoverUriBox (line 33) | public CoverUriBox() {
    method getCoverUri (line 37) | public String getCoverUri() {
    method setCoverUri (line 41) | public void setCoverUri(String coverUri) {
    method getContentSize (line 45) | protected long getContentSize() {
    method _parseDetails (line 49) | @Override
    method getContent (line 55) | @Override
    method toString (line 63) | public String toString() {

FILE: src/com/coremedia/iso/boxes/vodafone/LyricsUriBox.java
  class LyricsUriBox (line 29) | public class LyricsUriBox extends AbstractFullBox {
    method LyricsUriBox (line 34) | public LyricsUriBox() {
    method getLyricsUri (line 38) | public String getLyricsUri() {
    method setLyricsUri (line 42) | public void setLyricsUri(String lyricsUri) {
    method getContentSize (line 46) | protected long getContentSize() {
    method _parseDetails (line 50) | @Override
    method getContent (line 56) | @Override
    method toString (line 63) | public String toString() {

FILE: src/com/googlecode/mp4parser/AbstractBox.java
  class AbstractBox (line 48) | public abstract class AbstractBox implements Box {
    method AbstractBox (line 59) | protected AbstractBox(String type) {
    method AbstractBox (line 63) | protected AbstractBox(String type, byte[] userType) {
    method getContentSize (line 75) | protected abstract long getContentSize();
    method getContent (line 84) | protected abstract void getContent(ByteBuffer byteBuffer);
    method _parseDetails (line 91) | protected abstract void _parseDetails(ByteBuffer content);
    method parse (line 101) | @DoNotParseDetail
    method getBox (line 113) | public void getBox(WritableByteChannel os) throws IOException {
    method parseDetails (line 137) | synchronized final void parseDetails() {
    method setDeadBytes (line 156) | protected void setDeadBytes(ByteBuffer newDeadBytes) {
    method getSize (line 166) | public long getSize() {
    method getType (line 175) | @DoNotParseDetail
    method getUserType (line 180) | @DoNotParseDetail
    method getParent (line 185) | @DoNotParseDetail
    method setParent (line 190) | @DoNotParseDetail
    method getIsoFile (line 195) | @DoNotParseDetail
    method isParsed (line 205) | public boolean isParsed() {
    method verify (line 216) | private boolean verify(ByteBuffer content) {
    method isSmallBox (line 252) | private boolean isSmallBox() {
    method getHeader (line 256) | private void getHeader(ByteBuffer byteBuffer) {

FILE: src/com/googlecode/mp4parser/AbstractContainerBox.java
  class AbstractContainerBox (line 38) | public abstract class AbstractContainerBox extends AbstractBox implement...
    method getContentSize (line 44) | @Override
    method AbstractContainerBox (line 53) | public AbstractContainerBox(String type) {
    method getBoxes (line 57) | public List<Box> getBoxes() {
    method setBoxes (line 61) | public void setBoxes(List<Box> boxes) {
    method getBoxes (line 65) | @SuppressWarnings("unchecked")
    method getBoxes (line 70) | @SuppressWarnings("unchecked")
    method addBox (line 93) | public void addBox(Box b) {
    method removeBox (line 98) | public void removeBox(Box b) {
    method parse (line 102) | @Override
    method _parseDetails (line 108) | @Override
    method toString (line 114) | public String toString() {
    method getNumOfBytesToFirstChild (line 134) | public long getNumOfBytesToFirstChild() {
    method getContent (line 138) | @Override
    method parseChildBoxes (line 143) | protected final void parseChildBoxes(ByteBuffer content) {
    method writeChildBoxes (line 158) | protected final void writeChildBoxes(ByteBuffer bb) {

FILE: src/com/googlecode/mp4parser/AbstractFullBox.java
  class AbstractFullBox (line 29) | public abstract class AbstractFullBox extends AbstractBox implements Ful...
    method AbstractFullBox (line 33) | protected AbstractFullBox(String type) {
    method AbstractFullBox (line 37) | protected AbstractFullBox(String type, byte[] userType) {
    method getVersion (line 41) | public int getVersion() {
    method setVersion (line 45) | public void setVersion(int version) {
    method getFlags (line 49) | public int getFlags() {
    method setFlags (line 53) | public void setFlags(int flags) {
    method parseVersionAndFlags (line 64) | protected final long parseVersionAndFlags(ByteBuffer content) {
    method writeVersionAndFlags (line 70) | protected final void writeVersionAndFlags(ByteBuffer bb) {

FILE: src/com/googlecode/mp4parser/FullContainerBox.java
  class FullContainerBox (line 36) | public abstract class FullContainerBox extends AbstractFullBox implement...
    method setBoxes (line 41) | public void setBoxes(List<Box> boxes) {
    method getBoxes (line 45) | @SuppressWarnings("unchecked")
    method getBoxes (line 50) | @SuppressWarnings("unchecked")
    method getContentSize (line 67) | protected long getContentSize() {
    method addBox (line 75) | public void addBox(Box b) {
    method removeBox (line 79) | public void removeBox(Box b) {
    method FullContainerBox (line 83) | public FullContainerBox(String type) {
    method getBoxes (line 87) | public List<Box> getBoxes() {
    method parse (line 91) | @Override
    method _parseDetails (line 97) | @Override
    method parseChildBoxes (line 103) | protected final void parseChildBoxes(ByteBuffer content) {
    method toString (line 118) | public String toString() {
    method getContent (line 132) | protected void getContent(ByteBuffer byteBuffer) {
    method writeChildBoxes (line 137) | protected final void writeChildBoxes(ByteBuffer bb) {
    method getNumOfBytesToFirstChild (line 150) | public long getNumOfBytesToFirstChild() {

FILE: src/com/googlecode/mp4parser/authoring/AbstractTrack.java
  class AbstractTrack (line 22) | public abstract class AbstractTrack implements Track {
    method isEnabled (line 28) | public boolean isEnabled() {
    method isInMovie (line 32) | public boolean isInMovie() {
    method isInPreview (line 36) | public boolean isInPreview() {
    method isInPoster (line 40) | public boolean isInPoster() {
    method setEnabled (line 44) | public void setEnabled(boolean enabled) {
    method setInMovie (line 48) | public void setInMovie(boolean inMovie) {
    method setInPreview (line 52) | public void setInPreview(boolean inPreview) {
    method setInPoster (line 56) | public void setInPoster(boolean inPoster) {

FILE: src/com/googlecode/mp4parser/authoring/DateHelper.java
  class DateHelper (line 23) | public class DateHelper {
    method convert (line 30) | static public Date convert(long secondsSince) {
    method convert (line 41) | static public long convert(Date date) {

FILE: src/com/googlecode/mp4parser/authoring/Movie.java
  class Movie (line 24) | public class Movie {
    method getTracks (line 27) | public List<Track> getTracks() {
    method setTracks (line 31) | public void setTracks(List<Track> tracks) {
    method addTrack (line 35) | public void addTrack(Track nuTrack) {
    method toString (line 46) | @Override
    method getNextTrackId (line 57) | public long getNextTrackId() {
    method getTrackByTrackId (line 66) | public Track getTrackByTrackId(long trackId) {
    method getTimescale (line 76) | public long getTimescale() {
    method gcd (line 84) | public static long gcd(long a, long b) {

FILE: src/com/googlecode/mp4parser/authoring/Mp4TrackImpl.java
  class Mp4TrackImpl (line 34) | public class Mp4TrackImpl extends AbstractTrack {
    method Mp4TrackImpl (line 45) | public Mp4TrackImpl(TrackBox trackBox) {
    method getSamples (line 131) | public List<ByteBuffer> getSamples() {
    method getSampleDescriptionBox (line 136) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 140) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 144) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 148) | public long[] getSyncSamples() {
    method getSampleDependencies (line 152) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 156) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 160) | public String getHandler() {
    method getMediaHeaderBox (line 164) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 168) | public SubSampleInformationBox getSubsampleInformationBox() {
    method toString (line 172) | @Override

FILE: src/com/googlecode/mp4parser/authoring/Track.java
  type Track (line 30) | public interface Track {
    method getSampleDescriptionBox (line 32) | SampleDescriptionBox getSampleDescriptionBox();
    method getDecodingTimeEntries (line 34) | List<TimeToSampleBox.Entry> getDecodingTimeEntries();
    method getCompositionTimeEntries (line 36) | List<CompositionTimeToSample.Entry> getCompositionTimeEntries();
    method getSyncSamples (line 38) | long[] getSyncSamples();
    method getSampleDependencies (line 40) | List<SampleDependencyTypeBox.Entry> getSampleDependencies();
    method getTrackMetaData (line 42) | TrackMetaData getTrackMetaData();
    method getHandler (line 44) | String getHandler();
    method isEnabled (line 46) | boolean isEnabled();
    method isInMovie (line 48) | boolean isInMovie();
    method isInPreview (line 50) | boolean isInPreview();
    method isInPoster (line 52) | boolean isInPoster();
    method getSamples (line 54) | List<ByteBuffer> getSamples();
    method getMediaHeaderBox (line 56) | public AbstractMediaHeaderBox getMediaHeaderBox();
    method getSubsampleInformationBox (line 58) | public SubSampleInformationBox getSubsampleInformationBox();

FILE: src/com/googlecode/mp4parser/authoring/TrackMetaData.java
  class TrackMetaData (line 23) | public class TrackMetaData implements Cloneable {
    method getLanguage (line 43) | public String getLanguage() {
    method setLanguage (line 47) | public void setLanguage(String language) {
    method getTimescale (line 51) | public long getTimescale() {
    method setTimescale (line 55) | public void setTimescale(long timescale) {
    method getModificationTime (line 59) | public Date getModificationTime() {
    method setModificationTime (line 63) | public void setModificationTime(Date modificationTime) {
    method getCreationTime (line 67) | public Date getCreationTime() {
    method setCreationTime (line 71) | public void setCreationTime(Date creationTime) {
    method getWidth (line 75) | public double getWidth() {
    method setWidth (line 79) | public void setWidth(double width) {
    method getHeight (line 83) | public double getHeight() {
    method setHeight (line 87) | public void setHeight(double height) {
    method getTrackId (line 91) | public long getTrackId() {
    method setTrackId (line 95) | public void setTrackId(long trackId) {
    method getLayer (line 99) | public int getLayer() {
    method setLayer (line 103) | public void setLayer(int layer) {
    method getVolume (line 107) | public float getVolume() {
    method setVolume (line 111) | public void setVolume(float volume) {
    method getGroup (line 115) | public int getGroup() {
    method setGroup (line 119) | public void setGroup(int group) {
    method getStartTime (line 123) | public double getStartTime() {
    method setStartTime (line 127) | public void setStartTime(double startTime) {
    method clone (line 131) | public Object clone() {

FILE: src/com/googlecode/mp4parser/authoring/builder/ByteBufferHelper.java
  class ByteBufferHelper (line 26) | public class ByteBufferHelper {
    method mergeAdjacentBuffers (line 27) | public static List<ByteBuffer> mergeAdjacentBuffers(List<ByteBuffer> s...

FILE: src/com/googlecode/mp4parser/authoring/builder/DefaultMp4Builder.java
  class DefaultMp4Builder (line 71) | public class DefaultMp4Builder implements Mp4Builder {
    method setAllowedHandlers (line 81) | public void setAllowedHandlers(List<String> hdlrs) {
    method setIntersectionFinder (line 85) | public void setIntersectionFinder(FragmentIntersectionFinder intersect...
    method build (line 92) | public IsoFile build(Movie movie)  {
    method createMovieBox (line 133) | private MovieBox createMovieBox(Movie movie) {
    method createUdta (line 179) | protected Box createUdta(Movie movie) {
    method createTrackBox (line 183) | private TrackBox createTrackBox(Track track, Movie movie) {
    class InterleaveChunkMdat (line 345) | private class InterleaveChunkMdat implements Box {
      method getParent (line 352) | public ContainerBox getParent() {
      method setParent (line 356) | public void setParent(ContainerBox parent) {
      method parse (line 360) | public void parse(ReadableByteChannel readableByteChannel, ByteBuffe...
      method InterleaveChunkMdat (line 363) | private InterleaveChunkMdat(Movie movie) {
      method getDataOffset (line 393) | public long getDataOffset() {
      method getType (line 409) | public String getType() {
      method getSize (line 413) | public long getSize() {
      method isSmallBox (line 417) | private boolean isSmallBox(long contentSize) {
      method getBox (line 422) | public void getBox(WritableByteChannel writableByteChannel) throws I...
    method getChunkSizes (line 469) | int[] getChunkSizes(Track track, Movie movie) {
    method sum (line 494) | private static long sum(int[] ls) {
    method getDuration (line 502) | protected static long getDuration(Track track) {
    method getTimescale (line 510) | public long getTimescale(Movie movie) {
    method gcd (line 518) | public static long gcd(long a, long b) {
    method unifyAdjacentBuffers (line 525) | public List<ByteBuffer> unifyAdjacentBuffers(List<ByteBuffer> samples) {

FILE: src/com/googlecode/mp4parser/authoring/builder/FragmentIntersectionFinder.java
  type FragmentIntersectionFinder (line 24) | public interface FragmentIntersectionFinder {
    method sampleNumbers (line 33) | public long[] sampleNumbers(Track track, Movie movie);

FILE: src/com/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder.java
  class FragmentedMp4Builder (line 75) | public class FragmentedMp4Builder implements Mp4Builder {
    method getAllowedHandlers (line 80) | public List<String> getAllowedHandlers() {
    method createFtyp (line 84) | public Box createFtyp(Movie movie) {
    method createMoofMdat (line 92) | protected List<Box> createMoofMdat(final Movie movie) {
    method build (line 159) | public IsoFile build(Movie movie) {
    method createMdat (line 175) | protected Box createMdat(final long startSample, final long endSample,...
    method createTfhd (line 238) | protected Box createTfhd(long startSample, long endSample, Track track...
    method createMfhd (line 248) | protected Box createMfhd(long startSample, long endSample, Track track...
    method createTraf (line 254) | protected Box createTraf(long startSample, long endSample, Track track...
    method getSamples (line 272) | protected List<ByteBuffer> getSamples(long startSample, long endSample...
    method createTruns (line 278) | protected List<? extends Box> createTruns(long startSample, long endSa...
    method createMoof (line 378) | protected Box createMoof(long startSample, long endSample, Track track...
    method createMvhd (line 392) | protected Box createMvhd(Movie movie) {
    method createMoov (line 420) | protected Box createMoov(Movie movie) {
    method createTfra (line 434) | protected Box createTfra(Track track, IsoFile isoFile) {
    method createMfra (line 503) | protected Box createMfra(Movie movie, IsoFile isoFile) {
    method createTrex (line 515) | protected Box createTrex(Movie movie, Track track) {
    method createMvex (line 533) | protected Box createMvex(Movie movie) {
    method createTkhd (line 542) | protected Box createTkhd(Movie movie, Track track) {
    method createMdhd (line 578) | protected Box createMdhd(Movie movie, Track track) {
    method createStbl (line 587) | protected Box createStbl(Movie movie, Track track) {
    method createMinf (line 597) | protected Box createMinf(Track track, Movie movie) {
    method createMdiaHdlr (line 605) | protected Box createMdiaHdlr(Track track, Movie movie) {
    method createMdia (line 611) | protected Box createMdia(Track track, Movie movie) {
    method createTrak (line 623) | protected Box createTrak(Track track, Movie movie) {
    method createDinf (line 631) | protected DataInformationBox createDinf(Movie movie, Track track) {
    method setIntersectionFinder (line 641) | public void setIntersectionFinder(FragmentIntersectionFinder intersect...
    method getDuration (line 645) | protected long getDuration(Track track) {

FILE: src/com/googlecode/mp4parser/authoring/builder/Mp4Builder.java
  type Mp4Builder (line 28) | public interface Mp4Builder {
    method build (line 35) | public IsoFile build(Movie movie);

FILE: src/com/googlecode/mp4parser/authoring/builder/SyncSampleIntersectFinderImpl.java
  class SyncSampleIntersectFinderImpl (line 36) | public class SyncSampleIntersectFinderImpl implements FragmentIntersecti...
    method sampleNumbers (line 48) | public long[] sampleNumbers(Track track, Movie movie) {
    method getSyncSamplesTimestamps (line 131) | public static List<long[]> getSyncSamplesTimestamps(Movie movie, Track...
    method getCommonIndices (line 145) | public static long[] getCommonIndices(long[] syncSamples, long[] syncS...
    method getTimes (line 172) | private static long[] getTimes(Movie m, Track track) {

FILE: src/com/googlecode/mp4parser/authoring/builder/TwoSecondIntersectionFinder.java
  class TwoSecondIntersectionFinder (line 29) | public class TwoSecondIntersectionFinder implements FragmentIntersection...
    method getDuration (line 31) | protected long getDuration(Track track) {
    method sampleNumbers (line 42) | public long[] sampleNumbers(Track track, Movie movie) {

FILE: src/com/googlecode/mp4parser/authoring/builder/smoothstreaming/AudioQuality.java
  class AudioQuality (line 19) | public class AudioQuality {

FILE: src/com/googlecode/mp4parser/authoring/builder/smoothstreaming/FlatManifestWriterImpl.java
  class FlatManifestWriterImpl (line 47) | public class FlatManifestWriterImpl implements ManifestWriter {
    method setIntersectionFinder (line 55) | public void setIntersectionFinder(FragmentIntersectionFinder intersect...
    method customizeManifest (line 65) | protected Document customizeManifest(Document manifest) {
    method getManifest (line 69) | public String getManifest(Movie movie) throws IOException {
    method getAudioQuality (line 175) | private AudioQuality getAudioQuality(Track track, AudioSampleEntry ase) {
    method getBitrate (line 193) | public long getBitrate(Track track) {
    method getAudioCodecPrivateData (line 204) | private String getAudioCodecPrivateData(ESDescriptorBox esDescriptorBo...
    method getVideoQuality (line 214) | private VideoQuality getVideoQuality(Track track, VisualSampleEntry vs...
    method checkFragmentsAlign (line 232) | private long[] checkFragmentsAlign(long[] referenceTimes, long[] check...
    method getAvcCodecPrivateData (line 263) | private byte[] getAvcCodecPrivateData(AvcConfigurationBox avcConfigura...
    method getFormat (line 283) | private String getFormat(SampleEntry se) {
    method calculateFragmentDurations (line 299) | public long[] calculateFragmentDurations(Track track, Movie movie) {
    method getDuration (line 321) | protected static long getDuration(Track track) {

FILE: src/com/googlecode/mp4parser/authoring/builder/smoothstreaming/FlatPackageWriterImpl.java
  class FlatPackageWriterImpl (line 41) | public class FlatPackageWriterImpl implements PackageWriter {
    method setOutputDirectory (line 59) | public void setOutputDirectory(File outputDirectory) {
    method setDebugOutput (line 65) | public void setDebugOutput(boolean debugOutput) {
    method setIsmvBuilder (line 69) | public void setIsmvBuilder(Mp4Builder ismvBuilder) {
    method setManifestWriter (line 73) | public void setManifestWriter(ManifestWriter manifestWriter) {
    method write (line 84) | public void write(Movie source) throws IOException {
    method correctTimescale (line 166) | public Movie correctTimescale(Movie movie) {

FILE: src/com/googlecode/mp4parser/authoring/builder/smoothstreaming/ManifestWriter.java
  type ManifestWriter (line 24) | public interface ManifestWriter {
    method getManifest (line 25) | String getManifest(Movie inputs) throws IOException;
    method getBitrate (line 27) | long getBitrate(Track track);
    method calculateFragmentDurations (line 29) | long[] calculateFragmentDurations(Track track, Movie movie);

FILE: src/com/googlecode/mp4parser/authoring/builder/smoothstreaming/PackageWriter.java
  type PackageWriter (line 25) | public interface PackageWriter {
    method write (line 26) | public void write(Movie qualities) throws IOException;

FILE: src/com/googlecode/mp4parser/authoring/builder/smoothstreaming/VideoQuality.java
  class VideoQuality (line 18) | class VideoQuality {

FILE: src/com/googlecode/mp4parser/authoring/container/mp4/MovieCreator.java
  class MovieCreator (line 30) | public class MovieCreator {
    method build (line 31) | public static Movie build(ReadableByteChannel channel) throws IOExcept...

FILE: src/com/googlecode/mp4parser/authoring/tracks/AACTrackImpl.java
  class AACTrackImpl (line 36) | public class AACTrackImpl extends AbstractTrack {
    method AACTrackImpl (line 55) | public AACTrackImpl(PushbackInputStream inputStream) throws IOException {
    method getSampleDescriptionBox (line 164) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 168) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 172) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 176) | public long[] getSyncSamples() {
    method getSampleDependencies (line 180) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 184) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 188) | public String getHandler() {
    method getSamples (line 192) | public List<ByteBuffer> getSamples() {
    method getMediaHeaderBox (line 196) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 200) | public SubSampleInformationBox getSubsampleInformationBox() {
    method readVariables (line 204) | private boolean readVariables() throws IOException {
    method readSamples (line 232) | private boolean readSamples() throws IOException {

FILE: src/com/googlecode/mp4parser/authoring/tracks/AC3TrackImpl.java
  class AC3TrackImpl (line 17) | public class AC3TrackImpl extends AbstractTrack {
    method AC3TrackImpl (line 40) | public AC3TrackImpl(InputStream fin) throws IOException {
    method getSamples (line 80) | public List<ByteBuffer> getSamples() {
    method getSampleDescriptionBox (line 85) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 89) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 93) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 97) | public long[] getSyncSamples() {
    method getSampleDependencies (line 101) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 105) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 109) | public String getHandler() {
    method getMediaHeaderBox (line 113) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 117) | public SubSampleInformationBox getSubsampleInformationBox() {
    method readVariables (line 121) | private boolean readVariables() throws IOException {
    method calcBitrateAndFrameSize (line 232) | private boolean calcBitrateAndFrameSize(int code) {
    method readSamples (line 243) | private boolean readSamples() throws IOException {
    method initBitRateAndFrameSizeTable (line 264) | private void initBitRateAndFrameSizeTable() {

FILE: src/com/googlecode/mp4parser/authoring/tracks/Amf0Track.java
  class Amf0Track (line 33) | public class Amf0Track extends AbstractTrack {
    method Amf0Track (line 44) | public Amf0Track(Map<Long, byte[]> rawSamples) {
    method getSamples (line 52) | public List<ByteBuffer> getSamples() {
    method getSampleDescriptionBox (line 60) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 68) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 85) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 90) | public long[] getSyncSamples() {
    method getSampleDependencies (line 95) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 100) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 104) | public String getHandler() {
    method getMediaHeaderBox (line 108) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 112) | public SubSampleInformationBox getSubsampleInformationBox() {

FILE: src/com/googlecode/mp4parser/authoring/tracks/AppendTrack.java
  class AppendTrack (line 36) | public class AppendTrack extends AbstractTrack {
    method AppendTrack (line 39) | public AppendTrack(Track... tracks) throws IOException {
    method getSamples (line 53) | public List<ByteBuffer> getSamples() {
    method getSampleDescriptionBox (line 63) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 67) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 92) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 116) | public long[] getSyncSamples() {
    method getSampleDependencies (line 138) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 150) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 154) | public String getHandler() {
    method getMediaHeaderBox (line 158) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 162) | public SubSampleInformationBox getSubsampleInformationBox() {

FILE: src/com/googlecode/mp4parser/authoring/tracks/ChangeTimeScaleTrack.java
  class ChangeTimeScaleTrack (line 38) | public class ChangeTimeScaleTrack implements Track {
    method ChangeTimeScaleTrack (line 52) | public ChangeTimeScaleTrack(Track source, long targetTimeScale, long[]...
    method getSampleDescriptionBox (line 60) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 64) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 68) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 72) | public long[] getSyncSamples() {
    method getSampleDependencies (line 76) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 80) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 86) | public String getHandler() {
    method isEnabled (line 90) | public boolean isEnabled() {
    method isInMovie (line 94) | public boolean isInMovie() {
    method isInPreview (line 98) | public boolean isInPreview() {
    method isInPoster (line 102) | public boolean isInPoster() {
    method getSamples (line 106) | public List<ByteBuffer> getSamples() {
    method adjustCtts (line 119) | static List<CompositionTimeToSample.Entry> adjustCtts(List<Composition...
    method adjustTts (line 131) | static List<TimeToSampleBox.Entry> adjustTts(List<TimeToSampleBox.Entr...
    method getMediaHeaderBox (line 162) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 166) | public SubSampleInformationBox getSubsampleInformationBox() {
    method toString (line 170) | @Override

FILE: src/com/googlecode/mp4parser/authoring/tracks/CroppedTrack.java
  class CroppedTrack (line 35) | public class CroppedTrack extends AbstractTrack {
    method CroppedTrack (line 41) | public CroppedTrack(Track origTrack, long fromSample, long toSample) {
    method getSamples (line 49) | public List<ByteBuffer> getSamples() {
    method getSampleDescriptionBox (line 53) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 57) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 80) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 103) | synchronized public long[] getSyncSamples() {
    method getSampleDependencies (line 126) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 134) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 138) | public String getHandler() {
    method getMediaHeaderBox (line 142) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 146) | public SubSampleInformationBox getSubsampleInformationBox() {

FILE: src/com/googlecode/mp4parser/authoring/tracks/DivideTimeScaleTrack.java
  class DivideTimeScaleTrack (line 35) | public class DivideTimeScaleTrack implements Track {
    method DivideTimeScaleTrack (line 39) | public DivideTimeScaleTrack(Track source, int timeScaleDivisor) {
    method getSampleDescriptionBox (line 44) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 48) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 52) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 56) | public long[] getSyncSamples() {
    method getSampleDependencies (line 60) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 64) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 70) | public String getHandler() {
    method isEnabled (line 74) | public boolean isEnabled() {
    method isInMovie (line 78) | public boolean isInMovie() {
    method isInPreview (line 82) | public boolean isInPreview() {
    method isInPoster (line 86) | public boolean isInPoster() {
    method getSamples (line 90) | public List<ByteBuffer> getSamples() {
    method adjustCtts (line 95) | List<CompositionTimeToSample.Entry> adjustCtts() {
    method adjustTts (line 108) | List<TimeToSampleBox.Entry> adjustTts() {
    method getMediaHeaderBox (line 117) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 121) | public SubSampleInformationBox getSubsampleInformationBox() {
    method toString (line 125) | @Override

FILE: src/com/googlecode/mp4parser/authoring/tracks/EC3TrackImpl.java
  class EC3TrackImpl (line 25) | public class EC3TrackImpl extends AbstractTrack {
    method EC3TrackImpl (line 39) | public EC3TrackImpl(InputStream fin) throws IOException {
    method getSamples (line 117) | public List<ByteBuffer> getSamples() {
    method getSampleDescriptionBox (line 122) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 126) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 130) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 134) | public long[] getSyncSamples() {
    method getSampleDependencies (line 138) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 142) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 146) | public String getHandler() {
    method getMediaHeaderBox (line 150) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 154) | public SubSampleInformationBox getSubsampleInformationBox() {
    method readVariables (line 158) | private BitStreamInfo readVariables() throws IOException {
    method readSamples (line 380) | private boolean readSamples() throws IOException {
    class BitStreamInfo (line 395) | public static class BitStreamInfo extends EC3SpecificBox.Entry {

FILE: src/com/googlecode/mp4parser/authoring/tracks/H264TrackImpl.java
  class H264TrackImpl (line 31) | public class H264TrackImpl extends AbstractTrack {
    method H264TrackImpl (line 57) | public H264TrackImpl(InputStream inputStream) throws IOException {
    method getSampleDescriptionBox (line 108) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 112) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 116) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 120) | public long[] getSyncSamples() {
    method getSampleDependencies (line 128) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 132) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 136) | public String getHandler() {
    method getSamples (line 140) | public List<ByteBuffer> getSamples() {
    method getMediaHeaderBox (line 144) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 148) | public SubSampleInformationBox getSubsampleInformationBox() {
    method readVariables (line 152) | private boolean readVariables() {
    method findNextStartcode (line 177) | private boolean findNextStartcode() throws IOException {
    type NALActions (line 188) | private enum NALActions {
    method readSamples (line 192) | private boolean readSamples() throws IOException {
    method createSample (line 272) | private ByteBuffer createSample(List<byte[]> buffers) {
    method cleanBuffer (line 288) | private ByteArrayInputStream cleanBuffer(byte[] data) {
    method handleNALUnit (line 307) | private NALActions handleNALUnit(int nal_ref_idc, int nal_unit_type, b...
    method printAccessUnitDelimiter (line 371) | public void printAccessUnitDelimiter(byte[] data) {
    class SliceHeader (line 375) | public static class SliceHeader {
      type SliceType (line 377) | public enum SliceType {
      method SliceHeader (line 392) | public SliceHeader(InputStream is, SeqParameterSet sps, PictureParam...
      method toString (line 446) | @Override
    class ReaderWrapper (line 463) | private class ReaderWrapper {
      method ReaderWrapper (line 467) | private ReaderWrapper(InputStream inputStream) {
      method read (line 471) | int read() throws IOException {
      method read (line 476) | long read(byte[] data) throws IOException {
      method rewind (line 482) | long rewind(int dist) throws IOException {
      method seek (line 488) | long seek(int dist) throws IOException {
      method getPos (line 494) | public long getPos() {
    class SEIMessage (line 499) | public class SEIMessage {
      method SEIMessage (line 525) | public SEIMessage(InputStream is, SeqParameterSet sps) throws IOExce...
      method toString (line 645) | @Override

FILE: src/com/googlecode/mp4parser/authoring/tracks/MultiplyTimeScaleTrack.java
  class MultiplyTimeScaleTrack (line 41) | public class MultiplyTimeScaleTrack implements Track {
    method MultiplyTimeScaleTrack (line 45) | public MultiplyTimeScaleTrack(Track source, int timeScaleFactor) {
    method getSampleDescriptionBox (line 50) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 54) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 58) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 62) | public long[] getSyncSamples() {
    method getSampleDependencies (line 66) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 70) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 76) | public String getHandler() {
    method isEnabled (line 80) | public boolean isEnabled() {
    method isInMovie (line 84) | public boolean isInMovie() {
    method isInPreview (line 88) | public boolean isInPreview() {
    method isInPoster (line 92) | public boolean isInPoster() {
    method getSamples (line 96) | public List<ByteBuffer> getSamples() {
    method adjustCtts (line 101) | static List<CompositionTimeToSample.Entry> adjustCtts(List<Composition...
    method adjustTts (line 113) | static List<TimeToSampleBox.Entry> adjustTts(List<TimeToSampleBox.Entr...
    method getMediaHeaderBox (line 121) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 125) | public SubSampleInformationBox getSubsampleInformationBox() {
    method toString (line 129) | @Override

FILE: src/com/googlecode/mp4parser/authoring/tracks/TextTrackImpl.java
  class TextTrackImpl (line 36) | public class TextTrackImpl extends AbstractTrack {
    method getSubs (line 41) | public List<Line> getSubs() {
    method TextTrackImpl (line 45) | public TextTrackImpl() {
    method getSamples (line 66) | public List<ByteBuffer> getSamples() {
    method getSampleDescriptionBox (line 91) | public SampleDescriptionBox getSampleDescriptionBox() {
    method getDecodingTimeEntries (line 95) | public List<TimeToSampleBox.Entry> getDecodingTimeEntries() {
    method getCompositionTimeEntries (line 111) | public List<CompositionTimeToSample.Entry> getCompositionTimeEntries() {
    method getSyncSamples (line 115) | public long[] getSyncSamples() {
    method getSampleDependencies (line 119) | public List<SampleDependencyTypeBox.Entry> getSampleDependencies() {
    method getTrackMetaData (line 123) | public TrackMetaData getTrackMetaData() {
    method getHandler (line 127) | public String getHandler() {
    class Line (line 132) | public static class Line {
      method Line (line 138) | public Line(long from, long to, String text) {
      method getFrom (line 144) | public long getFrom() {
      method getText (line 148) | public String getText() {
      method getTo (line 152) | public long getTo() {
    method getMediaHeaderBox (line 157) | public AbstractMediaHeaderBox getMediaHeaderBox() {
    method getSubsampleInformationBox (line 161) | public SubSampleInformationBox getSubsampleInformationBox() {

FILE: src/com/googlecode/mp4parser/boxes/AC3SpecificBox.java
  class AC3SpecificBox (line 9) | public class AC3SpecificBox extends AbstractBox {
    method AC3SpecificBox (line 18) | public AC3SpecificBox() {
    method getContentSize (line 22) | @Override
    method _parseDetails (line 27) | @Override
    method getContent (line 39) | @Override
    method getFscod (line 51) | public int getFscod() {
    method setFscod (line 55) | public void setFscod(int fscod) {
    method getBsid (line 59) | public int getBsid() {
    method setBsid (line 63) | public void setBsid(int bsid) {
    method getBsmod (line 67) | public int getBsmod() {
    method setBsmod (line 71) | public void setBsmod(int bsmod) {
    method getAcmod (line 75) | public int getAcmod() {
    method setAcmod (line 79) | public void setAcmod(int acmod) {
    method getLfeon (line 83) | public int getLfeon() {
    method setLfeon (line 87) | public void setLfeon(int lfeon) {
    method getBitRateCode (line 91) | public int getBitRateCode() {
    method setBitRateCode (line 95) | public void setBitRateCode(int bitRateCode) {
    method getReserved (line 99) | public int getReserved() {
    method setReserved (line 103) | public void setReserved(int reserved) {
    method toString (line 107) | @Override

FILE: src/com/googlecode/mp4parser/boxes/AbstractSampleEncryptionBox.java
  class AbstractSampleEncryptionBox (line 18) | public abstract class AbstractSampleEncryptionBox extends AbstractFullBox {
    method AbstractSampleEncryptionBox (line 24) | protected AbstractSampleEncryptionBox(String type) {
    method getOffsetToFirstIV (line 28) | public int getOffsetToFirstIV() {
    method _parseDetails (line 35) | @Override
    method getSampleCount (line 62) | public int getSampleCount() {
    method getEntries (line 66) | public List<Entry> getEntries() {
    method setEntries (line 70) | public void setEntries(List<Entry> entries) {
    method getAlgorithmId (line 74) | public int getAlgorithmId() {
    method setAlgorithmId (line 78) | public void setAlgorithmId(int algorithmId) {
    method getIvSize (line 82) | public int getIvSize() {
    method setIvSize (line 86) | public void setIvSize(int ivSize) {
    method getKid (line 90) | public byte[] getKid() {
    method setKid (line 94) | public void setKid(byte[] kid) {
    method isSubSampleEncryption (line 99) | public boolean isSubSampleEncryption() {
    method isOverrideTrackEncryptionBoxParameters (line 103) | public boolean isOverrideTrackEncryptionBoxParameters() {
    method setSubSampleEncryption (line 107) | public void setSubSampleEncryption(boolean b) {
    method setOverrideTrackEncryptionBoxParameters (line 115) | public void setOverrideTrackEncryptionBoxParameters(boolean b) {
    method getContent (line 124) | @Override
    method getContentSize (line 152) | @Override
    method getBox (line 166) | @Override
    method createEntry (line 171) | public Entry createEntry() {
    class Entry (line 175) | public class Entry {
      method getSize (line 179) | public int getSize() {
      method createPair (line 197) | public Pair createPair(int clear, long encrypted) {
      class Pair (line 202) | public class Pair {
        method Pair (line 206) | public Pair(int clear, long encrypted) {
        method equals (line 211) | @Override
        method hashCode (line 224) | @Override
        method toString (line 231) | @Override
      method equals (line 238) | @Override
      method hashCode (line 251) | @Override
      method toString (line 258) | @Override
    method equals (line 267) | @Override
    method hashCode (line 282) | @Override
    method getEntrySizes (line 291) | public List<Short> getEntrySizes() {

FILE: src/com/googlecode/mp4parser/boxes/AbstractTrackEncryptionBox.java
  class AbstractTrackEncryptionBox (line 15) | public abstract class AbstractTrackEncryptionBox extends AbstractFullBox {
    method AbstractTrackEncryptionBox (line 20) | protected AbstractTrackEncryptionBox(String type) {
    method getDefaultAlgorithmId (line 24) | public int getDefaultAlgorithmId() {
    method setDefaultAlgorithmId (line 28) | public void setDefaultAlgorithmId(int defaultAlgorithmId) {
    method getDefaultIvSize (line 32) | public int getDefaultIvSize() {
    method setDefaultIvSize (line 36) | public void setDefaultIvSize(int defaultIvSize) {
    method getDefault_KID (line 40) | public String getDefault_KID() {
    method setDefault_KID (line 46) | public void setDefault_KID(byte[] default_KID) {
    method _parseDetails (line 50) | @Override
    method getContent (line 59) | @Override
    method getContentSize (line 67) | @Override
    method equals (line 72) | @Override
    method hashCode (line 86) | @Override

FILE: src/com/googlecode/mp4parser/boxes/DTSSpecificBox.java
  class DTSSpecificBox (line 18) | public class DTSSpecificBox extends AbstractBox {
    method DTSSpecificBox (line 37) | public DTSSpecificBox() {
    method getContentSize (line 41) | @Override
    method _parseDetails (line 46) | @Override
    method getContent (line 68) | @Override
    method getAvgBitRate (line 90) | public long getAvgBitRate() {
    method setAvgBitRate (line 94) | public void setAvgBitRate(long avgBitRate) {
    method getDTSSamplingFrequency (line 98) | public long getDTSSamplingFrequency() {
    method setDTSSamplingFrequency (line 102) | public void setDTSSamplingFrequency(long DTSSamplingFrequency) {
    method getMaxBitRate (line 106) | public long getMaxBitRate() {
    method setMaxBitRate (line 110) | public void setMaxBitRate(long maxBitRate) {
    method getPcmSampleDepth (line 114) | public int getPcmSampleDepth() {
    method setPcmSampleDepth (line 118) | public void setPcmSampleDepth(int pcmSampleDepth) {
    method getFrameDuration (line 122) | public int getFrameDuration() {
    method setFrameDuration (line 126) | public void setFrameDuration(int frameDuration) {
    method getStreamConstruction (line 130) | public int getStreamConstruction() {
    method setStreamConstruction (line 134) | public void setStreamConstruction(int streamConstruction) {
    method getCoreLFEPresent (line 138) | public int getCoreLFEPresent() {
    method setCoreLFEPresent (line 142) | public void setCoreLFEPresent(int coreLFEPresent) {
    method getCoreLayout (line 146) | public int getCoreLayout() {
    method setCoreLayout (line 150) | public void setCoreLayout(int coreLayout) {
    method getCoreSize (line 154) | public int getCoreSize() {
    method setCoreSize (line 158) | public void setCoreSize(int coreSize) {
    method getStereoDownmix (line 162) | public int getStereoDownmix() {
    method setStereoDownmix (line 166) | public void setStereoDownmix(int stereoDownmix) {
    method getRepresentationType (line 170) | public int getRepresentationType() {
    method setRepresentationType (line 174) | public void setRepresentationType(int representationType) {
    method getChannelLayout (line 178) | public int getChannelLayout() {
    method setChannelLayout (line 182) | public void setChannelLayout(int channelLayout) {
    method getMultiAssetFlag (line 186) | public int getMultiAssetFlag() {
    method setMultiAssetFlag (line 190) | public void setMultiAssetFlag(int multiAssetFlag) {
    method getLBRDurationMod (line 194) | public int getLBRDurationMod() {
    method setLBRDurationMod (line 198) | public void setLBRDurationMod(int LBRDurationMod) {
    method getReserved (line 202) | public int getReserved() {
    method setReserved (line 206) | public void setReserved(int reserved) {
    method getReservedBoxPresent (line 210) | public int getReservedBoxPresent() {
    method setReservedBoxPresent (line 214) | public void setReservedBoxPresent(int reservedBoxPresent) {

FILE: src/com/googlecode/mp4parser/boxes/EC3SpecificBox.java
  class EC3SpecificBox (line 14) | public class EC3SpecificBox extends AbstractBox {
    method EC3SpecificBox (line 18) | public EC3SpecificBox() {
    method getContentSize (line 22) | @Override
    method _parseDetails (line 35) | @Override
    method getContent (line 62) | @Override
    method getEntries (line 84) | public List<Entry> getEntries() {
    method setEntries (line 88) | public void setEntries(List<Entry> entries) {
    method addEntry (line 92) | public void addEntry(Entry entry) {
    method getDataRate (line 96) | public int getDataRate() {
    method setDataRate (line 100) | public void setDataRate(int dataRate) {
    method getNumIndSub (line 104) | public int getNumIndSub() {
    method setNumIndSub (line 108) | public void setNumIndSub(int numIndSub) {
    class Entry (line 112) | public static class Entry {
      method toString (line 124) | @Override

FILE: src/com/googlecode/mp4parser/boxes/MLPSpecificBox.java
  class MLPSpecificBox (line 10) | public class MLPSpecificBox extends AbstractBox {
    method MLPSpecificBox (line 17) | public MLPSpecificBox() {
    method getContentSize (line 21) | @Override
    method _parseDetails (line 26) | @Override
    method getContent (line 35) | @Override
    method getFormat_info (line 45) | public int getFormat_info() {
    method setFormat_info (line 49) | public void setFormat_info(int format_info) {
    method getPeak_data_rate (line 53) | public int getPeak_data_rate() {
    method setPeak_data_rate (line 57) | public void setPeak_data_rate(int peak_data_rate) {
    method getReserved (line 61) | public int getReserved() {
    method setReserved (line 65) | public void setReserved(int reserved) {
    method getReserved2 (line 69) | public int getReserved2() {
    method setReserved2 (line 73) | public void setReserved2(int reserved2) {

FILE: src/com/googlecode/mp4parser/boxes/adobe/ActionMessageFormat0SampleEntryBox.java
  class ActionMessageFormat0SampleEntryBox (line 11) | public class ActionMessageFormat0SampleEntryBox extends SampleEntry {
    method ActionMessageFormat0SampleEntryBox (line 12) | public ActionMessageFormat0SampleEntryBox() {
    method getContentSize (line 16) | @Override
    method _parseDetails (line 27) | @Override
    method getContent (line 33) | @Override

FILE: src/com/googlecode/mp4parser/boxes/apple/TimeCodeBox.java
  class TimeCodeBox (line 8) | public class TimeCodeBox extends SampleEntry {
    method TimeCodeBox (line 12) | public TimeCodeBox() {
    method getContentSize (line 16) | @Override
    method _parseDetails (line 25) | @Override
    method getContent (line 33) | @Override

FILE: src/com/googlecode/mp4parser/boxes/basemediaformat/AvcNalUnitStorageBox.java
  class AvcNalUnitStorageBox (line 32) | public class AvcNalUnitStorageBox extends AbstractBox {
    method AvcNalUnitStorageBox (line 35) | public AvcNalUnitStorageBox() {
    method AvcNalUnitStorageBox (line 40) | public AvcNalUnitStorageBox(AvcConfigurationBox avcConfigurationBox) {
    method getContentSize (line 49) | @Override
    method setData (line 55) | public void setData(byte[] data) {
    method _parseDetails (line 59) | @Override
    method getContent (line 64) | @Override
    method toString (line 69) | @Override

FILE: src/com/googlecode/mp4parser/boxes/basemediaformat/SampleEncryptionBox.java
  class SampleEncryptionBox (line 15) | public class SampleEncryptionBox extends AbstractSampleEncryptionBox {
    method SampleEncryptionBox (line 20) | public SampleEncryptionBox() {

FILE: src/com/googlecode/mp4parser/boxes/basemediaformat/TrackEncryptionBox.java
  class TrackEncryptionBox (line 8) | public class TrackEncryptionBox extends AbstractTrackEncryptionBox {
    method TrackEncryptionBox (line 9) | public TrackEncryptionBox() {

FILE: src/com/googlecode/mp4parser/boxes/mp4/AbstractDescriptorBox.java
  class AbstractDescriptorBox (line 31) | public class AbstractDescriptorBox extends AbstractFullBox {
    method AbstractDescriptorBox (line 38) | public AbstractDescriptorBox(String type) {
    method getContent (line 42) | @Override
    method getContentSize (line 49) | @Override
    method getDescriptor (line 54) | public BaseDescriptor getDescriptor() {
    method getDescriptorAsString (line 58) | public String getDescriptorAsString() {
    method setData (line 62) | public void setData(ByteBuffer data) {
    method _parseDetails (line 66) | @Override

FILE: src/com/googlecode/mp4parser/boxes/mp4/ESDescriptorBox.java
  class ESDescriptorBox (line 24) | public class ESDescriptorBox extends AbstractDescriptorBox {
    method ESDescriptorBox (line 27) | public ESDescriptorBox() {
    method getEsDescriptor (line 31) | public ESDescriptor getEsDescriptor() {

FILE: src/com/googlecode/mp4parser/boxes/mp4/ObjectDescriptorBox.java
  class ObjectDescriptorBox (line 38) | public class ObjectDescriptorBox extends AbstractDescriptorBox {
    method ObjectDescriptorBox (line 41) | public ObjectDescriptorBox() {

FILE: src/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/AudioSpecificConfig.java
  class AudioSpecificConfig (line 265) | @Descriptor(tags = 0x5, objectTypeIndication = 0x40)
    method parseDetail (line 319) | @Override
    method gaSpecificConfigSize (line 502) | private int gaSpecificConfigSize() {
    method serializedSize (line 506) | public int serializedSize() {
    method serialize (line 516) | public ByteBuffer serialize() {
    method getAudioObjectType (line 533) | private int getAudioObjectType(BitReaderBuffer in) throws IOException {
    method parseGaSpecificConfig (line 541) | private void parseGaSpecificConfig(int samplingFrequencyIndex, int cha...
    method parseParametricSpecificConfig (line 579) | private void parseParametricSpecificConfig(int samplingFrequencyIndex,...
    method parseParaConfig (line 598) | private void parseParaConfig(int samplingFrequencyIndex, int channelCo...
    method parseErHvxcConfig (line 628) | private void parseErHvxcConfig(int samplingFrequencyIndex, int channel...
    method parseHilnConfig (line 649) | private void parseHilnConfig(int samplingFrequencyIndex, int channelCo...
    method parseHilnEnexConfig (line 667) | private void parseHilnEnexConfig(int samplingFrequencyIndex, int chann...
    method getConfigBytes (line 683) | public ByteBuffer getConfigBytes() {
    method getAudioObjectType (line 687) | public int getAudioObjectType() {
    method getExtensionAudioObjectType (line 691) | public int getExtensionAudioObjectType() {
    method getSbrPresentFlag (line 695) | public int getSbrPresentFlag() {
    method getPsPresentFlag (line 699) | public int getPsPresentFlag() {
    method setAudioObjectType (line 703) | public void setAudioObjectType(int audioObjectType) {
    method setSamplingFrequencyIndex (line 707) | public void setSamplingFrequencyIndex(int samplingFrequencyIndex) {
    method setSamplingFrequency (line 711) | public void setSamplingFrequency(int samplingFrequency) {
    method setChannelConfiguration (line 715) | public void setChannelConfiguration(int channelConfiguration) {
    method toString (line 719) | @Override
    method getSamplingFrequency (line 972) | public int getSamplingFrequency() {
    method getChannelConfiguration (line 976) | public int getChannelConfiguration() {

FILE: src/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/BaseDescriptor.java
  class BaseDescriptor (line 38) | @Descriptor(tags = 0x00)
    method BaseDescriptor (line 44) | public BaseDescriptor() {
    method getTag (line 47) | public int getTag() {
    method getSize (line 51) | public int getSize() {
    method getSizeOfInstance (line 57) | public int getSizeOfInstance() {
    method getSizeBytes (line 61) | public int getSizeBytes() {
    method parse (line 65) | public final void parse(int tag, ByteBuffer bb) throws IOException {
    method parseDetail (line 86) | public abstract void parseDetail(ByteBuffer bb) throws IOException;
    method toString (line 90) | @Override

FILE: src/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitReaderBuffer.java
  class BitReaderBuffer (line 5) | public class BitReaderBuffer {
    method BitReaderBuffer (line 11) | public BitReaderBuffer(ByteBuffer buffer) {
    method readBits (line 16) | public int readBits(int i) {
    method getPosition (line 35) | public int getPosition() {
    method byteSync (line 39) | public int byteSync() {
    method remainingBits (line 48) | public int remainingBits() {

FILE: src/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/BitWriterBuffer.java
  class BitWriterBuffer (line 5) | public class BitWriterBuffer {
    method BitWriterBuffer (line 11) | public BitWriterBuffer(ByteBuffer buffer) {
    method writeBits (line 16) | public void writeBits(int i, int numBits) {

FILE: src/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderConfigDescriptor.java
  class DecoderConfigDescriptor (line 45) | @Descriptor(tags = {0x04})
    method parseDetail (line 62) | @Override
    method serializedSize (line 108) | public int serializedSize() {
    method serialize (line 112) | public ByteBuffer serialize() {
    method getDecoderSpecificInfo (line 126) | public DecoderSpecificInfo getDecoderSpecificInfo() {
    method getAudioSpecificInfo (line 130) | public AudioSpecificConfig getAudioSpecificInfo() {
    method setAudioSpecificInfo (line 134) | public void setAudioSpecificInfo(AudioSpecificConfig audioSpecificInfo) {
    method getProfileLevelIndicationDescriptors (line 138) | public List<ProfileLevelIndicationDescriptor> getProfileLevelIndicatio...
    method getObjectTypeIndication (line 142) | public int getObjectTypeIndication() {
    method setObjectTypeIndication (line 146) | public void setObjectTypeIndication(int objectTypeIndication) {
    method getStreamType (line 150) | public int getStreamType() {
    method setStreamType (line 154) | public void setStreamType(int streamType) {
    method getUpStream (line 158) | public int getUpStream() {
    method setUpStream (line 162) | public void setUpStream(int upStream) {
    method getBufferSizeDB (line 166) | public int getBufferSizeDB() {
    method setBufferSizeDB (line 170) | public void setBufferSizeDB(int bufferSizeDB) {
    method getMaxBitRate (line 174) | public long getMaxBitRate() {
    method setMaxBitRate (line 178) | public void setMaxBitRate(long maxBitRate) {
    method getAvgBitRate (line 182) | public long getAvgBitRate() {
    method setAvgBitRate (line 186) | public void setAvgBitRate(long avgBitRate) {
    method toString (line 190) | @Override

FILE: src/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/DecoderSpecificInfo.java
  class DecoderSpecificInfo (line 31) | @Descriptor(tags = 0x05)
    method parseDetail (line 35) | @Override
    method serializedSize (line 43) | public int serializedSize() {
    method serialize (line 47) | public ByteBuffer serialize() {
    method toString (line 53) | @Override

FILE: src/com/googlecode/mp4parser/boxes/mp4/objectdescriptors/ESDescriptor.java
  class ESDescriptor (line 61) | @Descriptor(tags = {0x03})
    method parseDetail (line 83) | @Override
    method serializedSize (line 157) | public int serializedSize() {
    method serialize (line 177) | public ByteBuffer serialize() {
    method getDecoderConfigDescriptor (line 212) | public DecoderConfigDescriptor getDecoderConfigDescriptor() {
    metho
Condensed preview — 363 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,746K chars).
[
  {
    "path": ".classpath",
    "chars": 412,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src\"/>\n\t<classpathentry kind=\"src\" "
  },
  {
    "path": ".gitignore",
    "chars": 12,
    "preview": "gen\nbin\nobj\n"
  },
  {
    "path": ".project",
    "chars": 810,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>aac-enc</name>\n\t<comment></comment>\n\t<projects>\n\t</pr"
  },
  {
    "path": "AndroidManifest.xml",
    "chars": 929,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package="
  },
  {
    "path": "README.md",
    "chars": 1438,
    "preview": "Android AAC Encoder project\n============================\n\nExtraction of Android Stagefright VO AAC encoder with a nice J"
  },
  {
    "path": "build.xml",
    "chars": 3353,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project name=\"Main\" default=\"help\">\n\n    <!-- The local.properties file is creat"
  },
  {
    "path": "jni/Android.mk",
    "chars": 2095,
    "preview": "LOCAL_PATH := $(call my-dir)\n\ninclude $(CLEAR_VARS)\ninclude $(LOCAL_PATH)/Config.mk\n\nLOCAL_MODULE := aac-encoder\n\nENC_SR"
  },
  {
    "path": "jni/Config.mk",
    "chars": 343,
    "preview": "#\n# This configure file is just for Linux projects against Android\n#\n\nVOPRJ :=\nVONJ :=\n\n# WARNING:\n# Using v7 breaks gen"
  },
  {
    "path": "jni/aac-enc.c",
    "chars": 4276,
    "preview": "#include <string.h>\n#include <stdio.h>\n#include <jni.h>\n#include <inc/voAAC.h>\n#include <inc/cmnMemory.h>\n#include <andr"
  },
  {
    "path": "jni/basic_op/basicop2.c",
    "chars": 85769,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/basic_op/oper_32b.c",
    "chars": 15520,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/aac_rom.h",
    "chars": 3448,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/aacenc_core.h",
    "chars": 4235,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/adj_thr.h",
    "chars": 1912,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/adj_thr_data.h",
    "chars": 1950,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/band_nrg.h",
    "chars": 1576,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/basic_op.h",
    "chars": 23105,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/bit_cnt.h",
    "chars": 2684,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/bitbuffer.h",
    "chars": 3218,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/bitenc.h",
    "chars": 1429,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/block_switch.h",
    "chars": 2736,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/channel_map.h",
    "chars": 1254,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/cmnMemory.h",
    "chars": 3047,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/config.h",
    "chars": 1135,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/dyn_bits.h",
    "chars": 2402,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/grp_data.h",
    "chars": 1573,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/interface.h",
    "chars": 3302,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/line_pe.h",
    "chars": 2430,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/memalign.h",
    "chars": 1191,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/ms_stereo.h",
    "chars": 1796,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/oper_32b.h",
    "chars": 2239,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/pre_echo_control.h",
    "chars": 1390,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/psy_configuration.h",
    "chars": 3127,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/psy_const.h",
    "chars": 2117,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/psy_data.h",
    "chars": 2381,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/psy_main.h",
    "chars": 2608,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/qc_data.h",
    "chars": 3860,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/qc_main.h",
    "chars": 2077,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/quantize.h",
    "chars": 1379,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/sf_estim.h",
    "chars": 1786,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/spreading.h",
    "chars": 1127,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/stat_bits.h",
    "chars": 1165,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/tns.h",
    "chars": 2684,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/tns_func.h",
    "chars": 2603,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/tns_param.h",
    "chars": 1555,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/transform.h",
    "chars": 1212,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/typedef.h",
    "chars": 1720,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/typedefs.h",
    "chars": 6051,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/voAAC.h",
    "chars": 2220,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/voAMRWB.h",
    "chars": 3112,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/voAudio.h",
    "chars": 6777,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/voIndex.h",
    "chars": 5932,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/voMem.h",
    "chars": 1968,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/inc/voType.h",
    "chars": 6846,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/patent_disclaimer.txt",
    "chars": 424,
    "preview": "\nTHIS IS NOT A GRANT OF PATENT RIGHTS.\n\nGoogle makes no representation or warranty that the codecs for which\nsource code"
  },
  {
    "path": "jni/src/aac_rom.c",
    "chars": 129241,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/aacenc.c",
    "chars": 13173,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/aacenc_core.c",
    "chars": 7577,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/adj_thr.c",
    "chars": 41115,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/asm/ARMV5E/AutoCorrelation_v5.s",
    "chars": 3501,
    "preview": "@/*\n@ ** Copyright 2003-2010, VisualOn, Inc.\n@ **\n@ ** Licensed under the Apache License, Version 2.0 (the \"License\");\n@"
  },
  {
    "path": "jni/src/asm/ARMV5E/CalcWindowEnergy_v5.s",
    "chars": 2892,
    "preview": "@/*\n@ ** Copyright 2003-2010, VisualOn, Inc.\n@ **\n@ ** Licensed under the Apache License, Version 2.0 (the \"License\");\n@"
  },
  {
    "path": "jni/src/asm/ARMV5E/PrePostMDCT_v5.s",
    "chars": 3285,
    "preview": "@/*\n@ ** Copyright 2003-2010, VisualOn, Inc.\n@ **\n@ ** Licensed under the Apache License, Version 2.0 (the \"License\");\n@"
  },
  {
    "path": "jni/src/asm/ARMV5E/R4R8First_v5.s",
    "chars": 5500,
    "preview": "@/*\n@ ** Copyright 2003-2010, VisualOn, Inc.\n@ **\n@ ** Licensed under the Apache License, Version 2.0 (the \"License\");\n@"
  },
  {
    "path": "jni/src/asm/ARMV5E/Radix4FFT_v5.s",
    "chars": 4724,
    "preview": "@/*\n@ ** Copyright 2003-2010, VisualOn, Inc.\n@ **\n@ ** Licensed under the Apache License, Version 2.0 (the \"License\");\n@"
  },
  {
    "path": "jni/src/asm/ARMV5E/band_nrg_v5.s",
    "chars": 4019,
    "preview": "@/*\n@ ** Copyright 2003-2010, VisualOn, Inc.\n@ **\n@ ** Licensed under the Apache License, Version 2.0 (the \"License\");\n@"
  },
  {
    "path": "jni/src/asm/ARMV7/PrePostMDCT_v7.s",
    "chars": 4291,
    "preview": "@/*\n@ ** Copyright 2003-2010, VisualOn, Inc.\n@ **\n@ ** Licensed under the Apache License, Version 2.0 (the \"License\");\n@"
  },
  {
    "path": "jni/src/asm/ARMV7/R4R8First_v7.s",
    "chars": 3886,
    "preview": "@/*\n@ ** Copyright 2003-2010, VisualOn, Inc.\n@ **\n@ ** Licensed under the Apache License, Version 2.0 (the \"License\");\n@"
  },
  {
    "path": "jni/src/asm/ARMV7/Radix4FFT_v7.s",
    "chars": 4494,
    "preview": "@/*\n@ ** Copyright 2003-2010, VisualOn, Inc.\n@ **\n@ ** Licensed under the Apache License, Version 2.0 (the \"License\");\n@"
  },
  {
    "path": "jni/src/band_nrg.c",
    "chars": 3261,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/bit_cnt.c",
    "chars": 21008,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/bitbuffer.c",
    "chars": 4861,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/bitenc.c",
    "chars": 21414,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/block_switch.c",
    "chars": 13919,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/channel_map.c",
    "chars": 3052,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/cmnMemory.c",
    "chars": 1768,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/dyn_bits.c",
    "chars": 15423,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/grp_data.c",
    "chars": 5302,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/interface.c",
    "chars": 3851,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/line_pe.c",
    "chars": 5209,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/memalign.c",
    "chars": 2620,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/ms_stereo.c",
    "chars": 4404,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/pre_echo_control.c",
    "chars": 3236,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/psy_configuration.c",
    "chars": 14675,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/psy_main.c",
    "chars": 28080,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/qc_main.c",
    "chars": 17829,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/quantize.c",
    "chars": 11258,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/sf_estim.c",
    "chars": 24388,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/spreading.c",
    "chars": 1882,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/stat_bits.c",
    "chars": 6229,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/tns.c",
    "chars": 29373,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "jni/src/transform.c",
    "chars": 18930,
    "preview": "/*\n ** Copyright 2003-2010, VisualOn, Inc.\n **\n ** Licensed under the Apache License, Version 2.0 (the \"License\");\n ** y"
  },
  {
    "path": "local.properties",
    "chars": 419,
    "preview": "# This file is automatically generated by Android Tools.\n# Do not modify this file -- YOUR CHANGES WILL BE ERASED!\n#\n# T"
  },
  {
    "path": "proguard.cfg",
    "chars": 1248,
    "preview": "-optimizationpasses 5\n-dontusemixedcaseclassnames\n-dontskipnonpubliclibraryclasses\n-dontpreverify\n-verbose\n-optimization"
  },
  {
    "path": "project.properties",
    "chars": 360,
    "preview": "# This file is automatically generated by Android Tools.\n# Do not modify this file -- YOUR CHANGES WILL BE ERASED!\n#\n# T"
  },
  {
    "path": "res/layout/main.xml",
    "chars": 747,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "res/raw/isoparser.properties",
    "chars": 12533,
    "preview": "hint=com.coremedia.iso.boxes.TrackReferenceTypeBox(type)\ncdsc=com.coremedia.iso.boxes.TrackReferenceTypeBox(type)\nmeta-i"
  },
  {
    "path": "res/values/strings.xml",
    "chars": 167,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\n    <string name=\"hello\">Hello World, Main!</string>\n    <string nam"
  },
  {
    "path": "src/com/coremedia/iso/AbstractBoxParser.java",
    "chars": 4828,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/Ascii.java",
    "chars": 1274,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/BoxParser.java",
    "chars": 1089,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/ChannelHelper.java",
    "chars": 2750,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/Hex.java",
    "chars": 1780,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements.  See the NOT"
  },
  {
    "path": "src/com/coremedia/iso/IsoFile.java",
    "chars": 5350,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/IsoFileConvenienceHelper.java",
    "chars": 2478,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/IsoTypeReader.java",
    "chars": 4284,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/IsoTypeReaderVariable.java",
    "chars": 1283,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/IsoTypeWriter.java",
    "chars": 3068,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/IsoTypeWriterVariable.java",
    "chars": 1471,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/PropertyBoxParserImpl.java",
    "chars": 7444,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/Utf8.java",
    "chars": 1712,
    "preview": "/*\n * Copyright 2012 Sebastian Annies, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * yo"
  },
  {
    "path": "src/com/coremedia/iso/boxes/AbstractMediaHeaderBox.java",
    "chars": 989,
    "preview": "/*\n * Copyright 2011 Sebastian Annies, Hamburg, Germany\n *\n * Licensed under the Apache License, Version 2.0 (the Licens"
  },
  {
    "path": "src/com/coremedia/iso/boxes/AlbumBox.java",
    "chars": 3360,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/AuthorBox.java",
    "chars": 2625,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/BitRateBox.java",
    "chars": 2585,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/Box.java",
    "chars": 1677,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/ChunkOffset64BitBox.java",
    "chars": 1288,
    "preview": "package com.coremedia.iso.boxes;\n\nimport com.coremedia.iso.IsoTypeReader;\nimport com.coremedia.iso.IsoTypeWriter;\n\nimpor"
  },
  {
    "path": "src/com/coremedia/iso/boxes/ChunkOffsetBox.java",
    "chars": 440,
    "preview": "package com.coremedia.iso.boxes;\n\nimport com.googlecode.mp4parser.AbstractFullBox;\n\n/**\n * Abstract Chunk Offset Box\n */"
  },
  {
    "path": "src/com/coremedia/iso/boxes/ClassificationBox.java",
    "chars": 3544,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/CompositionShiftLeastGreatestAtom.java",
    "chars": 3175,
    "preview": "package com.coremedia.iso.boxes;\n\nimport com.googlecode.mp4parser.AbstractFullBox;\n\nimport java.nio.ByteBuffer;\n\n/**\n * "
  },
  {
    "path": "src/com/coremedia/iso/boxes/CompositionTimeToSample.java",
    "chars": 4119,
    "preview": "package com.coremedia.iso.boxes;\n\nimport com.coremedia.iso.IsoTypeReader;\nimport com.coremedia.iso.IsoTypeWriter;\nimport"
  },
  {
    "path": "src/com/coremedia/iso/boxes/ContainerBox.java",
    "chars": 2239,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/CopyrightBox.java",
    "chars": 2386,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/DataEntryUrlBox.java",
    "chars": 1389,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/DataEntryUrnBox.java",
    "chars": 1956,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/DataInformationBox.java",
    "chars": 1169,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/DataReferenceBox.java",
    "chars": 2206,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/DescriptionBox.java",
    "chars": 2207,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/EditBox.java",
    "chars": 1066,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/EditListBox.java",
    "chars": 8432,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/FileTypeBox.java",
    "chars": 4381,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/FreeBox.java",
    "chars": 1598,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/FreeSpaceBox.java",
    "chars": 1724,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/FullBox.java",
    "chars": 375,
    "preview": "package com.coremedia.iso.boxes;\n\nimport com.coremedia.iso.boxes.Box;\n\n/**\n * The <code>FullBox</code> contains all gett"
  },
  {
    "path": "src/com/coremedia/iso/boxes/GenericMediaHeaderBoxImpl.java",
    "chars": 848,
    "preview": "package com.coremedia.iso.boxes;\n\nimport java.nio.ByteBuffer;\n\npublic class GenericMediaHeaderBoxImpl extends AbstractMe"
  },
  {
    "path": "src/com/coremedia/iso/boxes/GenreBox.java",
    "chars": 2162,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/HandlerBox.java",
    "chars": 5425,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/HintMediaHeaderBox.java",
    "chars": 2682,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/ItemDataBox.java",
    "chars": 823,
    "preview": "package com.coremedia.iso.boxes;\n\nimport com.googlecode.mp4parser.AbstractBox;\n\nimport java.nio.ByteBuffer;\n\n/**\n *\n */\n"
  },
  {
    "path": "src/com/coremedia/iso/boxes/ItemLocationBox.java",
    "chars": 10841,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/ItemProtectionBox.java",
    "chars": 1810,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/KeywordsBox.java",
    "chars": 2884,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/MediaBox.java",
    "chars": 1675,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/MediaHeaderBox.java",
    "chars": 4561,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/MediaInformationBox.java",
    "chars": 1468,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/MetaBox.java",
    "chars": 3224,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/MovieBox.java",
    "chars": 2152,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/MovieHeaderBox.java",
    "chars": 6465,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/NullMediaHeaderBox.java",
    "chars": 1228,
    "preview": "/*\n * Copyright 2011 Sebastian Annies, Hamburg, Germany\n *\n * Licensed under the Apache License, Version 2.0 (the Licens"
  },
  {
    "path": "src/com/coremedia/iso/boxes/ObjectDescriptorBox.java",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/com/coremedia/iso/boxes/OmaDrmAccessUnitFormatBox.java",
    "chars": 2554,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/OriginalFormatBox.java",
    "chars": 1844,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/PerformerBox.java",
    "chars": 2225,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/ProgressiveDownloadInformationBox.java",
    "chars": 2339,
    "preview": "package com.coremedia.iso.boxes;\n\nimport com.coremedia.iso.IsoTypeReader;\nimport com.coremedia.iso.IsoTypeWriter;\nimport"
  },
  {
    "path": "src/com/coremedia/iso/boxes/ProtectionSchemeInformationBox.java",
    "chars": 1623,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/RatingBox.java",
    "chars": 3812,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/RecordingYearBox.java",
    "chars": 1602,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SampleAuxiliaryInformationOffsetsBox.java",
    "chars": 3769,
    "preview": "/*\n * Copyright 2009 castLabs GmbH, Berlin\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * you ma"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SampleAuxiliaryInformationSizesBox.java",
    "chars": 3982,
    "preview": "/*\n * Copyright 2009 castLabs GmbH, Berlin\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * you ma"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SampleDependencyTypeBox.java",
    "chars": 3701,
    "preview": "/*\n * Copyright 2009 castLabs GmbH, Berlin\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * you ma"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SampleDescriptionBox.java",
    "chars": 3328,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SampleSizeBox.java",
    "chars": 3416,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SampleTableBox.java",
    "chars": 4313,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SampleToChunkBox.java",
    "chars": 5178,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SampleToGroupBox.java",
    "chars": 3416,
    "preview": "package com.coremedia.iso.boxes;\n\nimport com.coremedia.iso.IsoTypeReader;\nimport com.coremedia.iso.IsoTypeWriter;\nimport"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SchemeInformationBox.java",
    "chars": 1216,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SchemeTypeBox.java",
    "chars": 3147,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SoundMediaHeaderBox.java",
    "chars": 1639,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/StaticChunkOffsetBox.java",
    "chars": 2079,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SubSampleInformationBox.java",
    "chars": 6795,
    "preview": "package com.coremedia.iso.boxes;\n\nimport com.coremedia.iso.IsoTypeReader;\nimport com.coremedia.iso.IsoTypeWriter;\nimport"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SubtitleMediaHeaderBox.java",
    "chars": 619,
    "preview": "package com.coremedia.iso.boxes;\n\nimport java.nio.ByteBuffer;\n\npublic class SubtitleMediaHeaderBox extends AbstractMedia"
  },
  {
    "path": "src/com/coremedia/iso/boxes/SyncSampleBox.java",
    "chars": 2444,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/TimeToSampleBox.java",
    "chars": 4719,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/TitleBox.java",
    "chars": 2326,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/TrackBox.java",
    "chars": 2234,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/TrackHeaderBox.java",
    "chars": 7950,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/TrackReferenceBox.java",
    "chars": 1584,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/TrackReferenceTypeBox.java",
    "chars": 2193,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/UnknownBox.java",
    "chars": 1539,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/UserBox.java",
    "chars": 1629,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/UserDataBox.java",
    "chars": 2209,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/VideoMediaHeaderBox.java",
    "chars": 2420,
    "preview": "/*  \n * Copyright 2008 CoreMedia AG, Hamburg\n *\n * Licensed under the Apache License, Version 2.0 (the License); \n * you"
  },
  {
    "path": "src/com/coremedia/iso/boxes/WriteListener.java",
    "chars": 277,
    "preview": "package com.coremedia.iso.boxes;\n\n/**\n * The <class>WriteListener</class> is used to get the offset of\n * a box before w"
  },
  {
    "path": "src/com/coremedia/iso/boxes/XmlBox.java",
    "chars": 940,
    "preview": "package com.coremedia.iso.boxes;\n\nimport com.coremedia.iso.IsoTypeReader;\nimport com.coremedia.iso.Utf8;\nimport com.goog"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AbstractAppleMetaDataBox.java",
    "chars": 5703,
    "preview": "package com.coremedia.iso.boxes.apple;\n\nimport com.coremedia.iso.IsoTypeReader;\nimport com.coremedia.iso.IsoTypeWriter;\n"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleAlbumArtistBox.java",
    "chars": 322,
    "preview": "package com.coremedia.iso.boxes.apple;\n\n/**\n * itunes MetaData comment box.\n */\npublic class AppleAlbumArtistBox extends"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleAlbumBox.java",
    "chars": 291,
    "preview": "package com.coremedia.iso.boxes.apple;\n\n/**\n *\n */\npublic final class AppleAlbumBox extends AbstractAppleMetaDataBox {\n "
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleArtistBox.java",
    "chars": 314,
    "preview": "package com.coremedia.iso.boxes.apple;\n\n/**\n * iTunes Artist box.\n */\npublic final class AppleArtistBox extends Abstract"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleCommentBox.java",
    "chars": 326,
    "preview": "package com.coremedia.iso.boxes.apple;\n\n/**\n * itunes MetaData comment box.\n */\npublic final class AppleCommentBox exten"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleCompilationBox.java",
    "chars": 310,
    "preview": "package com.coremedia.iso.boxes.apple;\n\n/**\n * Compilation.\n */\npublic final class AppleCompilationBox extends AbstractA"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleCopyrightBox.java",
    "chars": 323,
    "preview": "package com.coremedia.iso.boxes.apple;\n\n/**\n * itunes MetaData comment box.\n */\npublic final class AppleCopyrightBox ext"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleCoverBox.java",
    "chars": 1005,
    "preview": "package com.coremedia.iso.boxes.apple;\n\nimport java.util.logging.Logger;\n\n/**\n *\n */\npublic final class AppleCoverBox ex"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleCustomGenreBox.java",
    "chars": 685,
    "preview": "package com.coremedia.iso.boxes.apple;\n\nimport com.coremedia.iso.Utf8;\n\n/**\n *\n */\npublic final class AppleCustomGenreBo"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleDataBox.java",
    "chars": 2475,
    "preview": "package com.coremedia.iso.boxes.apple;\n\nimport com.googlecode.mp4parser.AbstractFullBox;\n\nimport java.nio.ByteBuffer;\n\n/"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleDataRateBox.java",
    "chars": 1461,
    "preview": "/*\n * Copyright 2009 castLabs GmbH, Berlin\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * you ma"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleDataReferenceBox.java",
    "chars": 2155,
    "preview": "/*\n * Copyright 2009 castLabs GmbH, Berlin\n *\n * Licensed under the Apache License, Version 2.0 (the License);\n * you ma"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleDescriptionBox.java",
    "chars": 298,
    "preview": "package com.coremedia.iso.boxes.apple;\n\n/**\n *\n */\npublic final class AppleDescriptionBox extends AbstractAppleMetaDataB"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleEncoderBox.java",
    "chars": 324,
    "preview": "package com.coremedia.iso.boxes.apple;\n\n/**\n * itunes MetaData comment box.\n */\npublic final class AppleEncoderBox exten"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleGaplessPlaybackBox.java",
    "chars": 324,
    "preview": "package com.coremedia.iso.boxes.apple;\n\n/**\n * Gapless Playback.\n */\npublic final class AppleGaplessPlaybackBox extends "
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleGenericBox.java",
    "chars": 279,
    "preview": "package com.coremedia.iso.boxes.apple;\n\nimport com.googlecode.mp4parser.AbstractContainerBox;\n\n/**\n *\n */\npublic final c"
  },
  {
    "path": "src/com/coremedia/iso/boxes/apple/AppleGroupingBox.java",
    "chars": 326,
    "preview": "package com.coremedia.iso.boxes.apple;\n\n/**\n * itunes MetaData comment box.\n */\npublic final class AppleGroupingBox exte"
  }
]

// ... and 163 more files (download for full content)

About this extraction

This page contains the full source code of the timsu/android-aac-enc GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 363 files (1.6 MB), approximately 474.4k tokens, and a symbol index with 2761 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!