Initial commit

added libraries:
opus
flac
libsndfile

updated:
libvorbis
libogg
openal

- Everything works as expected for now. Bare in mind libsndfile needed the check for whether or not it could find the xiph libraries removed in order for this to work.
This commit is contained in:
marauder2k7 2024-03-21 17:33:47 +00:00
parent 05a083ca6f
commit a745fc3757
1954 changed files with 431332 additions and 21037 deletions

View file

@ -0,0 +1,26 @@
cmake_minimum_required(VERSION 3.9)
find_package(Doxygen)
if (NOT DOXYGEN_FOUND)
return()
endif()
option(BUILD_DOXYGEN "Enable API documentation building via Doxygen" ON)
if (NOT BUILD_DOXYGEN)
return()
endif()
set(top_srcdir "${PROJECT_SOURCE_DIR}")
configure_file(Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
add_custom_target(FLAC-doxygen ALL
COMMAND ${DOXYGEN_EXECUTABLE} Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen"
VERBATIM )
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/api/"
DESTINATION "${CMAKE_INSTALL_DOCDIR}/api")

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,62 @@
# flac - Command-line FLAC encoder/decoder
# Copyright (C) 2002-2009 Josh Coalson
# Copyright (C) 2011-2023 Xiph.Org Foundation
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
SUBDIRS = . images
if FLaC__HAS_DOXYGEN
all-local: Doxyfile
FLAC.tag: Doxyfile
doxygen Doxyfile
rm -rf api
mv doxytmp/html api
rm -rf doxytmp
doc_DATA = \
FLAC.tag
else
if FLaC__HAS_PREBUILT_DOXYGEN
doc_DATA = \
FLAC.tag
endif
endif
EXTRA_DIST = Doxyfile.in doxygen.footer.html \
isoflac.txt $(doc_DATA) CMakeLists.txt \
api
if FLaC__HAS_DOXYGEN
# The install targets don't copy whole directories so we have to
# handle 'api/' specially:
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(docdir)/api
(cd $(builddir)/api && $(INSTALL_DATA) * $(DESTDIR)$(docdir)/api)
uninstall-local:
rm -rf $(DESTDIR)$(docdir)/api
distclean-local:
rm -rf FLAC.tag api doxytmp
endif
if FLaC__HAS_PREBUILT_DOXYGEN
# The install targets don't copy whole directories so we have to
# handle 'api/' specially:
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(docdir)/api
(cd $(srcdir)/api && $(INSTALL_DATA) * $(DESTDIR)$(docdir)/api)
uninstall-local:
rm -rf $(DESTDIR)$(docdir)/api
endif

View file

@ -0,0 +1,15 @@
<hr size="1"/>
Copyright (c) 2000-2009 Josh Coalson
Copyright (c) 2011-2023 Xiph.Org Foundation
<!-- Copyright (c) 2000-2009 Josh Coalson -->
<!-- Copyright (c) 2011-2023 Xiph.Org Foundation -->
<!-- Permission is granted to copy, distribute and/or modify this document -->
<!-- under the terms of the GNU Free Documentation License, Version 1.1 -->
<!-- or any later version published by the Free Software Foundation; -->
<!-- with no invariant sections. -->
<!-- A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html -->
</body>
</html>

View file

@ -0,0 +1,25 @@
# FLAC - Free Lossless Audio Codec
# Copyright (C) 2001-2009 Josh Coalson
# Copyright (C) 2011-2023 Xiph.Org Foundation
#
# This file is part the FLAC project. FLAC is comprised of several
# components distributed under different licenses. The codec libraries
# are distributed under Xiph.Org's BSD-like license (see the file
# COPYING.Xiph in this distribution). All other programs, libraries, and
# plugins are distributed under the GPL (see COPYING.GPL). The documentation
# is distributed under the Gnu FDL (see COPYING.FDL). Each file in the
# FLAC distribution contains at the top the terms under which it may be
# distributed.
#
# Since this particular file is relevant to all components of FLAC,
# it may be distributed under the Xiph.Org license, which is the least
# restrictive of those mentioned above. See the file COPYING.Xiph in this
# distribution.
logosdir = $(htmldir)/images
logos_DATA = \
logo.svg \
logo130.gif
EXTRA_DIST = $(logos_DATA)

View file

@ -0,0 +1,431 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
width="262"
height="130"
sodipodi:docname="logo.svg"
inkscape:export-filename="/home/martijn/bin/flac/doc/html/images/logo130.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath4747">
<rect
y="108.66365"
x="58.024467"
height="31.744326"
width="208.41971"
id="rect4749"
style="fill:#ffffff;fill-opacity:0.91542287;stroke:#41b348;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
</clipPath>
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1680"
inkscape:window-height="971"
id="namedview4"
showgrid="false"
inkscape:zoom="3.8432063"
inkscape:cx="50.316519"
inkscape:cy="46.312655"
inkscape:window-x="-4"
inkscape:window-y="-6"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<rect
style="fill:#000000;fill-opacity:1;stroke:none"
id="rect2987"
width="262"
height="130"
x="0"
y="1.7763568e-15" />
<rect
style="fill:#34a02c;fill-opacity:1;stroke:none"
id="rect2989"
width="8.3984327"
height="11.97043"
x="2.8360443"
y="114.36095"
inkscape:tile-cx="7.0352583"
inkscape:tile-cy="120.34616"
inkscape:tile-w="8.3984327"
inkscape:tile-h="11.97043"
inkscape:tile-x0="2.8360419"
inkscape:tile-y0="114.36095" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="114.36095"
x="2.8360443"
height="11.97043"
width="8.3984327"
id="use4591"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="98.440277"
x="2.8360443"
height="11.97043"
width="8.3984327"
id="use4593"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="82.5196"
x="2.8360443"
height="11.97043"
width="8.3984327"
id="use4595"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="66.59893"
x="2.8360443"
height="11.97043"
width="8.3984327"
id="use4597"
style="fill:#ffff00;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="50.678257"
x="2.8360443"
height="11.97043"
width="8.3984327"
id="use4599"
style="fill:#ffff00;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="34.757584"
x="2.8360443"
height="11.97043"
width="8.3984327"
id="use4601"
style="fill:#ffff00;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="18.836912"
x="2.8360443"
height="11.97043"
width="8.3984327"
id="use4603"
style="fill:#ff0000;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="2.9162366"
x="2.8360443"
height="11.97043"
width="8.3984327"
id="use4605"
style="fill:#ff0000;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="114.36095"
x="15.853616"
height="11.97043"
width="8.3984327"
id="use4607"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="98.440277"
x="15.853616"
height="11.97043"
width="8.3984327"
id="use4609"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="82.5196"
x="15.853616"
height="11.97043"
width="8.3984327"
id="use4611"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="66.59893"
x="15.853616"
height="11.97043"
width="8.3984327"
id="use4613"
style="fill:#ffff00;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="50.678257"
x="15.853616"
height="11.97043"
width="8.3984327"
id="use4615"
style="fill:#ffff00;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="34.757584"
x="15.853616"
height="11.97043"
width="8.3984327"
id="use4617"
style="fill:#ffff00;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="114.36095"
x="28.871185"
height="11.97043"
width="8.3984327"
id="use4623"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="98.440277"
x="28.871185"
height="11.97043"
width="8.3984327"
id="use4625"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="82.5196"
x="28.871185"
height="11.97043"
width="8.3984327"
id="use4627"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="66.59893"
x="28.871185"
height="11.97043"
width="8.3984327"
id="use4629"
style="fill:#ffff00;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="50.678257"
x="28.871185"
height="11.97043"
width="8.3984327"
id="use4631"
style="fill:#ffff00;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="34.757584"
x="28.871185"
height="11.97043"
width="8.3984327"
id="use4633"
style="fill:#ffff00;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="18.836912"
x="28.871185"
height="11.97043"
width="8.3984327"
id="use4635"
style="fill:#ff0000;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="114.36095"
x="41.888756"
height="11.97043"
width="8.3984327"
id="use4639"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="98.440277"
x="41.888756"
height="11.97043"
width="8.3984327"
id="use4641"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="82.5196"
x="41.888756"
height="11.97043"
width="8.3984327"
id="use4643"
style="fill:#34a02c;fill-opacity:1;stroke:none" />
<rect
inkscape:tile-y0="114.36095"
inkscape:tile-x0="2.8360419"
y="66.59893"
x="41.888756"
height="11.97043"
width="8.3984327"
id="use4645"
style="fill:#ffff00;fill-opacity:1;stroke:none" />
<g
id="g4740"
style="fill:#ffffff;fill-opacity:1">
<path
id="path4719"
d="m 167.09375,30.28125 c -4.98582,-0.05597 -10.83371,0.544011 -17.65625,2.03125 L 146.25,50.90625 c 6.2402,-3.841378 28.72275,-6.439176 29.15625,4.03125 l 0.25,6.375 c -20.10772,-13.818292 -38.48096,-0.631226 -39.0625,19.125 -0.58154,19.75623 24.38101,31.46172 38.875,16 l 0.0625,5.875 17.375,-1.53125 1.15625,-49.375 c 0.19095,-8.148311 -5.36352,-20.882474 -26.96875,-21.125 z m -1.90625,38.875 c 5.33673,0 9.65625,4.075677 9.65625,9.125 0,5.049323 -4.31952,9.15625 -9.65625,9.15625 -5.33673,0 -9.65625,-4.106927 -9.65625,-9.15625 0,-5.049323 4.31952,-9.125 9.65625,-9.125 z"
style="fill:#ffffff;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccccccccccc"
inkscape:connector-curvature="0"
id="path4705"
d="m 66.419944,102.30969 20.238764,-2.29986 0,-49.492976 10.855337,0 0,-17.662922 -11.223315,0 c 1.030499,-9.919211 4.729089,-9.43064 17.29494,-9.199438 L 98.617978,4.335674 C 88.053405,4.3210512 66.008231,6.32016 66.419944,32.669944 l -6.807584,0 -3.863764,17.662921 10.671348,0.183989 z"
style="fill:#ffffff;fill-opacity:1;stroke:none" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none"
d="m 108.94803,102.30969 20.23877,-2.29986 0,-93.3270875 -20.23877,2.2078652 z"
id="path4707"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
sodipodi:nodetypes="sssccsccccs"
inkscape:connector-curvature="0"
id="path4723"
d="m 231.29725,30.118335 c -9.62029,0.652151 -17.24238,4.090284 -24.04461,11.842706 -13.60446,15.504845 -12.39784,39.604586 3.18708,53.122515 15.58492,13.517924 40.64278,8.399604 47.71564,-0.389642 L 247.34775,78.958636 c -6.47017,7.37397 -15.93762,7.267658 -23.36382,0.82638 -7.42621,-6.441278 -8.1621,-17.252972 -1.69193,-24.626942 l 0.11279,-0.112795 c 6.48447,-7.259969 17.70592,-7.662694 25.09092,-1.257152 l 10.86397,-15.411334 c -7.76321,-6.645971 -17.51834,-8.905444 -27.06243,-8.258458 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
</g>
<g
style="font-size:17.05998611px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Swis721 BT;-inkscape-font-specification:Swis721 BT"
id="text4751">
<path
d="m 70.858501,114.93679 0,1.16008 -1.484218,0 0,7.77935 -1.415979,0 0,-7.77935 -1.194199,0 0,-1.16008 1.194199,0 0,-1.51834 c -2e-6,-0.6369 0.181971,-1.13163 0.545919,-1.48422 0.375318,-0.36393 0.892803,-0.54591 1.552459,-0.54592 0.261583,10e-6 0.528855,0.0284 0.801819,0.0853 l 0,1.17714 c -0.216097,-0.0114 -0.38101,-0.017 -0.494739,-0.0171 -0.659656,1e-5 -0.989482,0.3014 -0.989479,0.90418 l 0,1.39892 1.484218,0"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4756" />
<path
d="m 76.510422,116.18217 c -0.955364,0.0228 -1.671883,0.24453 -2.149559,0.66534 -0.477682,0.42082 -0.716521,1.21695 -0.716519,2.38839 l 0,4.64032 -1.433039,0 0,-8.93943 1.313619,0 0,1.6207 c 0.409437,-0.67102 0.801816,-1.1487 1.177139,-1.43304 0.386689,-0.2957 0.807502,-0.44355 1.262439,-0.44356 0.125102,10e-6 0.307075,0.0171 0.54592,0.0512 l 0,1.4501"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4758" />
<path
d="m 85.433328,119.88418 -6.585155,0 c 0.02275,0.93262 0.261584,1.67757 0.71652,2.23486 0.466303,0.5573 1.103208,0.83594 1.910718,0.83594 1.160073,0 1.939145,-0.5971 2.337218,-1.7913 l 1.433039,0 c -0.181981,0.97811 -0.608481,1.74012 -1.279499,2.28604 -0.671033,0.54592 -1.518344,0.81888 -2.541938,0.81888 -1.251069,0 -2.240547,-0.42081 -2.968438,-1.26244 -0.727893,-0.853 -1.091839,-2.01307 -1.091839,-3.48024 0,-1.46715 0.369632,-2.6386 1.108899,-3.51435 0.750637,-0.88711 1.745802,-1.33067 2.985498,-1.33068 2.649977,10e-6 3.974968,1.73444 3.974977,5.20329 m -6.551035,-1.16008 5.032696,0 c -7e-6,-0.77338 -0.23316,-1.42165 -0.699459,-1.94483 -0.466313,-0.52317 -1.057725,-0.78476 -1.774239,-0.78476 -0.716523,0 -1.307936,0.25022 -1.774239,0.75064 -0.466308,0.48906 -0.727894,1.14871 -0.784759,1.97895"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4760" />
<path
d="m 94.529766,119.88418 -6.585154,0 c 0.02274,0.93262 0.261584,1.67757 0.716519,2.23486 0.466303,0.5573 1.103209,0.83594 1.910718,0.83594 1.160074,0 1.939146,-0.5971 2.337218,-1.7913 l 1.433039,0 c -0.181981,0.97811 -0.60848,1.74012 -1.279499,2.28604 -0.671032,0.54592 -1.518344,0.81888 -2.541938,0.81888 -1.251069,0 -2.240547,-0.42081 -2.968437,-1.26244 -0.727894,-0.853 -1.09184,-2.01307 -1.091839,-3.48024 -10e-7,-1.46715 0.369632,-2.6386 1.108899,-3.51435 0.750637,-0.88711 1.745802,-1.33067 2.985497,-1.33068 2.649978,10e-6 3.974969,1.73444 3.974977,5.20329 m -6.551035,-1.16008 5.032696,0 c -7e-6,-0.77338 -0.23316,-1.42165 -0.699459,-1.94483 -0.466312,-0.52317 -1.057724,-0.78476 -1.774239,-0.78476 -0.716523,0 -1.307935,0.25022 -1.774238,0.75064 -0.466309,0.48906 -0.727895,1.14871 -0.78476,1.97895"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4762" />
<path
d="m 102.74554,111.43949 0,12.43673 -1.43304,0 0,-12.43673 1.43304,0"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4764" />
<path
d="m 108.49209,114.68089 c 1.28518,10e-6 2.28034,0.42651 2.9855,1.2795 0.71651,0.84163 1.07477,2.03583 1.07478,3.58259 -1e-5,1.46717 -0.36396,2.62156 -1.09184,3.46318 -0.71653,0.84163 -1.70032,1.26244 -2.95138,1.26244 -1.27382,0 -2.26898,-0.42081 -2.9855,-1.26244 -0.70515,-0.853 -1.05772,-2.03013 -1.05772,-3.53142 0,-1.50127 0.35826,-2.67272 1.07478,-3.51435 0.71652,-0.85299 1.70031,-1.27949 2.95138,-1.2795 m 0.0171,1.31362 c -0.79614,0 -1.42167,0.31277 -1.8766,0.9383 -0.45494,0.61416 -0.6824,1.46147 -0.6824,2.54193 0,1.08047 0.22746,1.93347 0.6824,2.559 0.45493,0.61416 1.08046,0.92124 1.8766,0.92124 0.78475,0 1.4046,-0.30708 1.85954,-0.92124 0.4663,-0.62553 0.69945,-1.46147 0.69946,-2.50782 -1e-5,-1.1032 -0.22748,-1.96757 -0.6824,-2.59311 -0.44357,-0.62553 -1.0691,-0.9383 -1.8766,-0.9383"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4766" />
<path
d="m 115.13189,121.21486 c 0.0682,0.53455 0.25021,0.96105 0.54592,1.2795 0.30707,0.30708 0.85299,0.46062 1.63775,0.46062 0.62553,0 1.12596,-0.1251 1.50128,-0.37532 0.38669,-0.26158 0.58004,-0.60278 0.58004,-1.0236 0,-0.32982 -0.10805,-0.59141 -0.32414,-0.78476 -0.2161,-0.19334 -0.56867,-0.34688 -1.05772,-0.46062 l -1.33068,-0.32414 c -1.05772,-0.25021 -1.79698,-0.56297 -2.21779,-0.9383 -0.40944,-0.38668 -0.61416,-0.9326 -0.61416,-1.63775 0,-0.83025 0.31276,-1.4899 0.9383,-1.97896 0.62553,-0.50042 1.45578,-0.75063 2.49075,-0.75064 1.03497,10e-6 1.8311,0.23885 2.3884,0.71652 0.55729,0.47769 0.84162,1.1544 0.853,2.03014 l -1.50128,0 c -0.0341,-0.95536 -0.63122,-1.43304 -1.7913,-1.43304 -0.58004,0 -1.04066,0.12511 -1.38185,0.37532 -0.34121,0.23884 -0.51181,0.56298 -0.5118,0.97242 -10e-6,0.31846 0.13079,0.58004 0.39238,0.78476 0.26158,0.19335 0.68239,0.35826 1.26243,0.49473 l 1.3648,0.32414 c 0.88712,0.2161 1.52971,0.52318 1.92778,0.92124 0.39806,0.3867 0.59709,0.90987 0.5971,1.56952 -1e-5,0.86438 -0.33552,1.55246 -1.00654,2.06426 -0.65966,0.5118 -1.55246,0.7677 -2.67842,0.7677 -2.30878,0 -3.49729,-1.01791 -3.56553,-3.05374 l 1.50128,0"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4768" />
<path
d="m 123.5286,121.21486 c 0.0682,0.53455 0.25021,0.96105 0.54592,1.2795 0.30708,0.30708 0.85299,0.46062 1.63776,0.46062 0.62553,0 1.12595,-0.1251 1.50128,-0.37532 0.38668,-0.26158 0.58003,-0.60278 0.58004,-1.0236 -1e-5,-0.32982 -0.10806,-0.59141 -0.32414,-0.78476 -0.2161,-0.19334 -0.56868,-0.34688 -1.05772,-0.46062 l -1.33068,-0.32414 c -1.05772,-0.25021 -1.79699,-0.56297 -2.2178,-0.9383 -0.40944,-0.38668 -0.61416,-0.9326 -0.61416,-1.63775 0,-0.83025 0.31277,-1.4899 0.9383,-1.97896 0.62553,-0.50042 1.45578,-0.75063 2.49076,-0.75064 1.03496,10e-6 1.8311,0.23885 2.3884,0.71652 0.55728,0.47769 0.84161,1.1544 0.85299,2.03014 l -1.50127,0 c -0.0341,-0.95536 -0.63123,-1.43304 -1.7913,-1.43304 -0.58005,0 -1.04066,0.12511 -1.38186,0.37532 -0.3412,0.23884 -0.5118,0.56298 -0.5118,0.97242 0,0.31846 0.13079,0.58004 0.39238,0.78476 0.26158,0.19335 0.68239,0.35826 1.26244,0.49473 l 1.3648,0.32414 c 0.88711,0.2161 1.5297,0.52318 1.92777,0.92124 0.39806,0.3867 0.5971,0.90987 0.5971,1.56952 0,0.86438 -0.33552,1.55246 -1.00653,2.06426 -0.65966,0.5118 -1.55247,0.7677 -2.67842,0.7677 -2.30879,0 -3.4973,-1.01791 -3.56554,-3.05374 l 1.50128,0"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4770" />
<path
d="m 132.30063,111.43949 0,12.43673 -1.43304,0 0,-12.43673 1.43304,0"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4772" />
<path
d="m 142.0904,119.88418 -6.58516,0 c 0.0228,0.93262 0.26159,1.67757 0.71652,2.23486 0.4663,0.5573 1.10321,0.83594 1.91072,0.83594 1.16007,0 1.93915,-0.5971 2.33722,-1.7913 l 1.43304,0 c -0.18198,0.97811 -0.60848,1.74012 -1.2795,2.28604 -0.67103,0.54592 -1.51835,0.81888 -2.54194,0.81888 -1.25107,0 -2.24055,-0.42081 -2.96844,-1.26244 -0.72789,-0.853 -1.09184,-2.01307 -1.09184,-3.48024 0,-1.46715 0.36964,-2.6386 1.1089,-3.51435 0.75064,-0.88711 1.7458,-1.33067 2.9855,-1.33068 2.64998,10e-6 3.97497,1.73444 3.97498,5.20329 m -6.55104,-1.16008 5.0327,0 c -1e-5,-0.77338 -0.23316,-1.42165 -0.69946,-1.94483 -0.46631,-0.52317 -1.05773,-0.78476 -1.77424,-0.78476 -0.71652,0 -1.30794,0.25022 -1.77424,0.75064 -0.46631,0.48906 -0.72789,1.14871 -0.78476,1.97895"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4774" />
<path
d="m 144.68698,121.21486 c 0.0682,0.53455 0.25021,0.96105 0.54592,1.2795 0.30707,0.30708 0.85299,0.46062 1.63776,0.46062 0.62552,0 1.12595,-0.1251 1.50127,-0.37532 0.38669,-0.26158 0.58004,-0.60278 0.58004,-1.0236 0,-0.32982 -0.10805,-0.59141 -0.32414,-0.78476 -0.21609,-0.19334 -0.56867,-0.34688 -1.05771,-0.46062 l -1.33068,-0.32414 c -1.05773,-0.25021 -1.79699,-0.56297 -2.2178,-0.9383 -0.40944,-0.38668 -0.61416,-0.9326 -0.61416,-1.63775 0,-0.83025 0.31276,-1.4899 0.9383,-1.97896 0.62553,-0.50042 1.45578,-0.75063 2.49076,-0.75064 1.03496,10e-6 1.8311,0.23885 2.38839,0.71652 0.55729,0.47769 0.84162,1.1544 0.853,2.03014 l -1.50128,0 c -0.0341,-0.95536 -0.63122,-1.43304 -1.79129,-1.43304 -0.58005,0 -1.04067,0.12511 -1.38186,0.37532 -0.3412,0.23884 -0.5118,0.56298 -0.5118,0.97242 0,0.31846 0.13079,0.58004 0.39238,0.78476 0.26158,0.19335 0.68239,0.35826 1.26244,0.49473 l 1.3648,0.32414 c 0.88711,0.2161 1.5297,0.52318 1.92777,0.92124 0.39806,0.3867 0.5971,0.90987 0.5971,1.56952 0,0.86438 -0.33552,1.55246 -1.00654,2.06426 -0.65966,0.5118 -1.55246,0.7677 -2.67841,0.7677 -2.30879,0 -3.4973,-1.01791 -3.56554,-3.05374 l 1.50128,0"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4776" />
<path
d="m 153.08369,121.21486 c 0.0682,0.53455 0.25021,0.96105 0.54592,1.2795 0.30708,0.30708 0.853,0.46062 1.63776,0.46062 0.62553,0 1.12595,-0.1251 1.50128,-0.37532 0.38668,-0.26158 0.58003,-0.60278 0.58004,-1.0236 -1e-5,-0.32982 -0.10806,-0.59141 -0.32414,-0.78476 -0.2161,-0.19334 -0.56867,-0.34688 -1.05772,-0.46062 l -1.33068,-0.32414 c -1.05772,-0.25021 -1.79699,-0.56297 -2.2178,-0.9383 -0.40944,-0.38668 -0.61416,-0.9326 -0.61416,-1.63775 0,-0.83025 0.31277,-1.4899 0.9383,-1.97896 0.62553,-0.50042 1.45578,-0.75063 2.49076,-0.75064 1.03497,10e-6 1.8311,0.23885 2.3884,0.71652 0.55728,0.47769 0.84162,1.1544 0.853,2.03014 l -1.50128,0 c -0.0341,-0.95536 -0.63123,-1.43304 -1.7913,-1.43304 -0.58004,0 -1.04066,0.12511 -1.38186,0.37532 -0.3412,0.23884 -0.5118,0.56298 -0.5118,0.97242 0,0.31846 0.13079,0.58004 0.39238,0.78476 0.26158,0.19335 0.6824,0.35826 1.26244,0.49473 l 1.3648,0.32414 c 0.88711,0.2161 1.5297,0.52318 1.92778,0.92124 0.39806,0.3867 0.59709,0.90987 0.5971,1.56952 -1e-5,0.86438 -0.33552,1.55246 -1.00654,2.06426 -0.65966,0.5118 -1.55247,0.7677 -2.67842,0.7677 -2.30879,0 -3.4973,-1.01791 -3.56554,-3.05374 l 1.50128,0"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4778" />
<path
d="m 165.54714,117.58109 c 0.0682,-1.93346 1.26244,-2.90019 3.5826,-2.9002 1.1032,10e-6 1.93914,0.21041 2.50781,0.63122 0.56866,0.40945 0.853,1.01223 0.853,1.80836 l 0,5.25447 c 0,0.46631 0.25589,0.69946 0.7677,0.69946 0.10235,0 0.20471,-0.0114 0.30708,-0.0341 l 0,1.07478 c -0.39807,0.10236 -0.72221,0.15354 -0.97242,0.15354 -0.45494,0 -0.80182,-0.10805 -1.04066,-0.32414 -0.22747,-0.20472 -0.36964,-0.53455 -0.4265,-0.98948 -0.95536,0.87575 -1.96759,1.31362 -3.03667,1.31362 -0.8985,0 -1.61502,-0.23884 -2.14956,-0.71652 -0.52318,-0.47768 -0.78476,-1.12027 -0.78476,-1.92778 0,-0.26158 0.0228,-0.50042 0.0682,-0.71652 0.0569,-0.21609 0.11373,-0.40375 0.1706,-0.56298 0.0682,-0.17059 0.18197,-0.32413 0.3412,-0.46062 0.15922,-0.14785 0.29002,-0.26726 0.39238,-0.35826 0.11373,-0.091 0.2957,-0.17628 0.54592,-0.2559 0.26158,-0.091 0.46062,-0.15353 0.5971,-0.18766 0.13647,-0.0455 0.37531,-0.0967 0.71652,-0.15354 0.34119,-0.0569 0.59141,-0.0967 0.75064,-0.11942 0.15922,-0.0227 0.44355,-0.0625 0.853,-0.11942 0.55728,-0.0682 0.94398,-0.17628 1.16007,-0.32413 0.21609,-0.14785 0.32414,-0.36963 0.32414,-0.66534 l 0,-0.37532 c 0,-0.43218 -0.17629,-0.76201 -0.52886,-0.98948 -0.3412,-0.22746 -0.83025,-0.3412 -1.46715,-0.3412 -0.65966,0 -1.16009,0.1308 -1.50128,0.39238 -0.34121,0.25022 -0.54024,0.64828 -0.5971,1.1942 l -1.43304,0 m 2.84902,5.44213 c 0.78475,0 1.42734,-0.20472 1.92777,-0.61416 0.50043,-0.42081 0.75064,-0.87006 0.75064,-1.34774 l 0,-1.60364 c -0.28433,0.13649 -0.71652,0.25022 -1.29655,0.3412 -0.56868,0.091 -1.06341,0.17061 -1.48422,0.23884 -0.42082,0.0683 -0.80183,0.23316 -1.14302,0.49474 -0.3412,0.25022 -0.5118,0.60279 -0.5118,1.05772 0,0.45494 0.15354,0.80751 0.46062,1.05772 0.30707,0.25022 0.73926,0.37532 1.29656,0.37532"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4780" />
<path
d="m 182.04361,123.87622 -1.2795,0 0,-1.24538 c -0.42082,0.59142 -0.85869,1.01223 -1.31362,1.26244 -0.45493,0.25021 -1.01223,0.37532 -1.67187,0.37532 -0.86438,0 -1.55815,-0.22178 -2.08132,-0.66534 -0.5118,-0.44356 -0.7677,-1.03497 -0.7677,-1.77424 l 0,-6.89223 1.41598,0 0,6.32925 c -1e-5,0.53455 0.16491,0.96105 0.49474,1.2795 0.32982,0.31846 0.77906,0.47768 1.34773,0.47768 0.73927,0 1.33068,-0.27296 1.77424,-0.81888 0.44356,-0.55729 0.66534,-1.29087 0.66534,-2.20074 l 0,-5.06681 1.41598,0 0,8.93943"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4782" />
<path
d="m 191.58201,111.43949 0,12.43673 -1.26244,0 0,-1.17714 c -0.3867,0.5573 -0.80751,0.95536 -1.26244,1.1942 -0.44356,0.25021 -0.97242,0.37532 -1.58658,0.37532 -1.20557,0 -2.15524,-0.43219 -2.84901,-1.29656 -0.69378,-0.87574 -1.04066,-2.06994 -1.04066,-3.5826 0,-1.42166 0.34688,-2.55899 1.04066,-3.41199 0.70514,-0.86437 1.63775,-1.29655 2.79783,-1.29656 1.22832,10e-6 2.14387,0.46063 2.74666,1.38186 l 0,-4.62326 1.41598,0 m -3.9238,4.57208 c -0.77339,0 -1.39892,0.31846 -1.8766,0.95536 -0.47768,0.63691 -0.71652,1.47285 -0.71652,2.50781 0,1.04635 0.23884,1.88798 0.71652,2.52488 0.47768,0.62554 1.1089,0.9383 1.89366,0.9383 0.75064,0 1.35342,-0.31276 1.80836,-0.9383 0.45493,-0.62553 0.68239,-1.45578 0.6824,-2.49076 -1e-5,-1.06908 -0.22747,-1.91639 -0.6824,-2.54193 -0.45494,-0.6369 -1.06341,-0.95536 -1.82542,-0.95536"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4784" />
<path
d="m 195.15768,114.93679 0,8.93943 -1.41598,0 0,-8.93943 1.41598,0 m 0,-3.4973 0,1.7913 -1.43304,0 0,-1.7913 1.43304,0"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4786" />
<path
d="m 200.93515,114.68089 c 1.28518,10e-6 2.28034,0.42651 2.9855,1.2795 0.71651,0.84163 1.07477,2.03583 1.07478,3.58259 -1e-5,1.46717 -0.36396,2.62156 -1.09184,3.46318 -0.71653,0.84163 -1.70032,1.26244 -2.95138,1.26244 -1.27382,0 -2.26898,-0.42081 -2.9855,-1.26244 -0.70514,-0.853 -1.05772,-2.03013 -1.05772,-3.53142 0,-1.50127 0.35826,-2.67272 1.07478,-3.51435 0.71652,-0.85299 1.70031,-1.27949 2.95138,-1.2795 m 0.0171,1.31362 c -0.79614,0 -1.42167,0.31277 -1.8766,0.9383 -0.45493,0.61416 -0.6824,1.46147 -0.6824,2.54193 0,1.08047 0.22747,1.93347 0.6824,2.559 0.45493,0.61416 1.08046,0.92124 1.8766,0.92124 0.78475,0 1.4046,-0.30708 1.85954,-0.92124 0.4663,-0.62553 0.69945,-1.46147 0.69946,-2.50782 -1e-5,-1.1032 -0.22748,-1.96757 -0.6824,-2.59311 -0.44357,-0.62553 -1.0691,-0.9383 -1.8766,-0.9383"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4788" />
<path
d="m 218.75569,117.93935 -1.43304,0 c -0.091,-0.62553 -0.31846,-1.10321 -0.6824,-1.43304 -0.36395,-0.3412 -0.84163,-0.5118 -1.43304,-0.5118 -0.77339,0 -1.38186,0.31846 -1.82542,0.95536 -0.43219,0.62554 -0.64828,1.49559 -0.64828,2.61017 0,1.05773 0.22178,1.88798 0.66534,2.49076 0.44356,0.60279 1.05772,0.90418 1.84248,0.90418 1.21694,0 1.94483,-0.71652 2.18368,-2.14956 l 1.43304,0 c -0.091,1.09184 -0.45494,1.94484 -1.09184,2.559 -0.63691,0.60279 -1.48991,0.90418 -2.559,0.90418 -1.21695,0 -2.18368,-0.42081 -2.9002,-1.26244 -0.70514,-0.853 -1.05772,-2.0017 -1.05771,-3.44612 -1e-5,-1.47852 0.35825,-2.66135 1.07477,-3.54847 0.72789,-0.88711 1.69463,-1.33067 2.9002,-1.33068 1.03497,10e-6 1.85953,0.27865 2.4737,0.83594 0.62552,0.5573 0.9781,1.3648 1.05772,2.42252"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4790" />
<path
d="m 223.90541,114.68089 c 1.28518,10e-6 2.28035,0.42651 2.9855,1.2795 0.71651,0.84163 1.07477,2.03583 1.07478,3.58259 -1e-5,1.46717 -0.36396,2.62156 -1.09184,3.46318 -0.71653,0.84163 -1.70032,1.26244 -2.95138,1.26244 -1.27381,0 -2.26898,-0.42081 -2.9855,-1.26244 -0.70514,-0.853 -1.05772,-2.03013 -1.05772,-3.53142 0,-1.50127 0.35826,-2.67272 1.07478,-3.51435 0.71652,-0.85299 1.70031,-1.27949 2.95138,-1.2795 m 0.0171,1.31362 c -0.79614,0 -1.42167,0.31277 -1.8766,0.9383 -0.45493,0.61416 -0.6824,1.46147 -0.6824,2.54193 0,1.08047 0.22747,1.93347 0.6824,2.559 0.45493,0.61416 1.08046,0.92124 1.8766,0.92124 0.78475,0 1.4046,-0.30708 1.85954,-0.92124 0.4663,-0.62553 0.69945,-1.46147 0.69946,-2.50782 -1e-5,-1.1032 -0.22747,-1.96757 -0.6824,-2.59311 -0.44357,-0.62553 -1.0691,-0.9383 -1.8766,-0.9383"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4792" />
<path
d="m 236.97682,111.43949 0,12.43673 -1.26244,0 0,-1.17714 c -0.3867,0.5573 -0.80751,0.95536 -1.26243,1.1942 -0.44357,0.25021 -0.97243,0.37532 -1.58658,0.37532 -1.20558,0 -2.15525,-0.43219 -2.84902,-1.29656 -0.69377,-0.87574 -1.04066,-2.06994 -1.04066,-3.5826 0,-1.42166 0.34689,-2.55899 1.04066,-3.41199 0.70514,-0.86437 1.63775,-1.29655 2.79784,-1.29656 1.22831,10e-6 2.14386,0.46063 2.74665,1.38186 l 0,-4.62326 1.41598,0 m -3.92379,4.57208 c -0.77339,0 -1.39893,0.31846 -1.8766,0.95536 -0.47768,0.63691 -0.71652,1.47285 -0.71652,2.50781 0,1.04635 0.23884,1.88798 0.71652,2.52488 0.47767,0.62554 1.10889,0.9383 1.89366,0.9383 0.75063,0 1.35342,-0.31276 1.80835,-0.9383 0.45493,-0.62553 0.6824,-1.45578 0.6824,-2.49076 0,-1.06908 -0.22747,-1.91639 -0.6824,-2.54193 -0.45493,-0.6369 -1.06341,-0.95536 -1.82541,-0.95536"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4794" />
<path
d="m 246.57467,119.88418 -6.58516,0 c 0.0228,0.93262 0.26158,1.67757 0.71652,2.23486 0.4663,0.5573 1.10321,0.83594 1.91072,0.83594 1.16007,0 1.93914,-0.5971 2.33722,-1.7913 l 1.43304,0 c -0.18199,0.97811 -0.60849,1.74012 -1.2795,2.28604 -0.67104,0.54592 -1.51835,0.81888 -2.54194,0.81888 -1.25107,0 -2.24055,-0.42081 -2.96844,-1.26244 -0.72789,-0.853 -1.09184,-2.01307 -1.09184,-3.48024 0,-1.46715 0.36963,-2.6386 1.1089,-3.51435 0.75064,-0.88711 1.7458,-1.33067 2.9855,-1.33068 2.64998,10e-6 3.97497,1.73444 3.97498,5.20329 m -6.55104,-1.16008 5.0327,0 c -1e-5,-0.77338 -0.23316,-1.42165 -0.69946,-1.94483 -0.46632,-0.52317 -1.05773,-0.78476 -1.77424,-0.78476 -0.71652,0 -1.30794,0.25022 -1.77424,0.75064 -0.46631,0.48906 -0.72789,1.14871 -0.78476,1.97895"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4796" />
<path
d="m 255.10812,117.93935 -1.43304,0 c -0.091,-0.62553 -0.31846,-1.10321 -0.6824,-1.43304 -0.36395,-0.3412 -0.84163,-0.5118 -1.43304,-0.5118 -0.77339,0 -1.38186,0.31846 -1.82541,0.95536 -0.43219,0.62554 -0.64829,1.49559 -0.64828,2.61017 -1e-5,1.05773 0.22177,1.88798 0.66534,2.49076 0.44355,0.60279 1.05771,0.90418 1.84247,0.90418 1.21694,0 1.94484,-0.71652 2.18368,-2.14956 l 1.43304,0 c -0.091,1.09184 -0.45494,1.94484 -1.09184,2.559 -0.63691,0.60279 -1.48991,0.90418 -2.559,0.90418 -1.21694,0 -2.18368,-0.42081 -2.90019,-1.26244 -0.70515,-0.853 -1.05772,-2.0017 -1.05772,-3.44612 0,-1.47852 0.35826,-2.66135 1.07478,-3.54847 0.72789,-0.88711 1.69462,-1.33067 2.90019,-1.33068 1.03497,10e-6 1.85954,0.27865 2.4737,0.83594 0.62553,0.5573 0.9781,1.3648 1.05772,2.42252"
style="word-spacing:0.97887385px;fill:#ffffff;font-family:FreeSans;-inkscape-font-specification:FreeSans"
id="path4798" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -0,0 +1,666 @@
Encapsulation of FLAC in ISO Base Media File Format
Version 0.0.4
Table of Contents
1 Scope
2 Supporting Normative References
3 Design Rules of Encapsulation
3.1 File Type Identification
3.2 Overview of Track Structure
3.3 Definition of FLAC sample
3.3.1 Sample entry format
3.3.2 FLAC Specific Box
3.3.3 Sample format
3.3.4 Duration of FLAC sample
3.3.5 Sub-sample
3.3.6 Random Access
3.3.6.1 Random Access Point
3.4 Basic Structure (informative)
3.4.1 Initial Movie
3.5 Example of Encapsulation (informative)
4 Acknowledgements
5 Author's Address
1 Scope
This document specifies the normative mapping for encapsulation of
FLAC coded audio bitstreams in ISO Base Media file format and its
derivatives. The encapsulation of FLAC coded bitstreams in
QuickTime file format is outside the scope of this specification.
2 Supporting Normative References
[1] ISO/IEC 14496-12:2012 Corrected version
Information technology — Coding of audio-visual objects — Part
12: ISO base media file format
[2] ISO/IEC 14496-12:2012/Amd.1:2013
Information technology — Coding of audio-visual objects — Part
12: ISO base media file format AMENDMENT 1: Various
enhancements including support for large metadata
[3] FLAC format specification
https://xiph.org/flac/format.html
Definition of the FLAC Audio Codec stream format
[4] FLAC-in-Ogg mapping specification
https://xiph.org/flac/ogg_mapping.html
Ogg Encapsulation for the FLAC Audio Codec
[5] Matroska specification
3 Design Rules of Encapsulation
3.1 File Type Identification
This specification does not define any brand to declare files
which conform to this specification. Files which conform to
this specification shall contain at least one brand which
supports the requirements and the requirements described in
this clause without contradiction in the compatible brands
list of the File Type Box. The minimal support of the
encapsulation of FLAC bitstreams in ISO Base Media file format
requires the 'isom' brand.
3.2 Overview of Track Structure
FLAC coded audio shall be encapsulated into the ISO Base
Media File Format as media data within an audio track.
+ The handler_type field in the Handler Reference Box
shall be set to 'soun'.
+ The Media Information Box shall contain the Sound Media
Header Box.
+ The codingname of the sample entry is 'fLaC'.
This specification does not define any encapsulation
using MP4AudioSampleEntry with objectTypeIndication
specified by the MPEG-4 Registration Authority
(http://www.mp4ra.org/). See section 'Sample entry
format' for the definition of the sample entry.
+ The 'dfLa' box is added to the sample entry to convey
initializing information for the decoder.
See section 'FLAC Specific Box' for the definition of
the box contents.
+ A FLAC sample is exactly one FLAC frame as described
in the format specification[3]. See section
'Sample format' for details of the frame contents.
+ Every FLAC sample is a sync sample. No pre-roll or
lapping is required. See section 'Random Access' for
further details.
3.3 Definition of a FLAC sample
3.3.1 Sample entry format
For any track containing one or more FLAC bitstreams, a
sample entry describing the corresponding FLAC bitstream
shall be present inside the Sample Table Box. This version
of the specification defines only one sample entry format
named FLACSampleEntry whose codingname is 'fLaC'. This
sample entry includes exactly one FLAC Specific Box
defined in section 'FLAC specific box' as a mandatory box
and indicates that FLAC samples described by this sample
entry are stored by the sample format described in section
'Sample format'.
The syntax and semantics of the FLACSampleEntry is shown
as follows. The data fields of this box and native
FLAC[3] structures encoded within FLAC blocks are both
stored in big-endian format, though for purposes of the
ISO BMFF container, FLAC native metadata and data blocks
are treated as unstructured octet streams.
class FLACSampleEntry() extends AudioSampleEntry ('fLaC'){
FLACSpecificBox();
}
The fields of the AudioSampleEntry portion shall be set as
follows:
+ channelcount:
The channelcount field shall be set equal to the
channel count specified by the FLAC bitstream's native
METADATA_BLOCK_STREAMINFO header as described in [3].
Note that the FLAC FRAME_HEADER structure that begins
each FLAC sample redundantly encodes channel number;
the number of channels declared in each FRAME_HEADER
MUST match the number of channels declared here and in
the METADATA_BLOCK_STREAMINFO header.
+ samplesize:
The samplesize field shall be set equal to the bits
per sample specified by the FLAC bitstream's native
METADATA_BLOCK_STREAMINFO header as described in [3].
Note that the FLAC FRAME_HEADER structure that begins
each FLAC sample redundantly encodes the number of
bits per sample; the bits per sample declared in each
FRAME_HEADER MUST match the samplesize declared here
and the bits per sample field declared in the
METADATA_BLOCK_STREAMINFO header.
+ samplerate:
When possible, the samplerate field shall be set
equal to the sample rate specified by the FLAC
bitstream's native METADATA_BLOCK_STREAMINFO header
as described in [3], left-shifted by 16 bits to
create the appropriate 16.16 fixed-point
representation.
When the bitstream's native sample rate is greater
than the maximum expressible value of 65535 Hz,
the samplerate field shall hold the greatest
expressible regular division of that rate. I.e.
the samplerate field shall hold 48000.0 for
native sample rates of 96 and 192 kHz. In the
case of unusual sample rates which do not have
an expressible regular division, the maximum value
of 65535.0 Hz should be used.
High-rate FLAC bitstreams are common, and the native
value from the METADATA_BLOCK_STREAMINFO header in
the FLACSpecificBox MUST be read to determine the
correct sample rate of the bitstream.
Note that the FLAC FRAME_HEADER structure that begins
each FLAC sample redundantly encodes the sample rate;
the sample rate declared in each FRAME_HEADER MUST
match the sample rate declared in the
METADATA_BLOCK_STREAMINFO header, and here in the
AudioSampleEntry portion of the FLACSampleEntry
as much as is allowed by the encoding restrictions
described above.
Finally, the FLACSpecificBox carries codec headers:
+ FLACSpecificBox
This box contains initializing information for the
decoder as defined in section 'FLAC specific box'.
3.3.2 FLAC Specific Box
Exactly one FLAC Specific Box shall be present in each
FLACSampleEntry. This specification defines version 0
of this box. If incompatible changes occur in future
versions of this specification, another version number
will be defined. The data fields of this box and native
FLAC[3] structures encoded within FLAC blocks are both
stored in big-endian format, though for purposes of the
ISO BMFF container, FLAC native metadata and data blocks
are treated as unstructured octet streams.
The syntax and semantics of the FLAC Specific Box is shown
as follows.
class FLACMetadataBlock {
unsigned int(1) LastMetadataBlockFlag;
unsigned int(7) BlockType;
unsigned int(24) Length;
unsigned int(8) BlockData[Length];
}
aligned(8) class FLACSpecificBox
extends FullBox('dfLa', version=0, 0){
for (i=0; ; i++) { // to end of box
FLACMetadataBlock();
}
}
+ Version:
The Version field shall be set to 0.
In the future versions of this specification, this
field may be set to other values. And without support
of those values, the reader shall not read the fields
after this within the FLACSpecificBox.
+ Flags:
The Flags field shall be set to 0.
After the FullBox header, the box contains a sequence of
FLAC[3] native-metadata block structures that fill the
remainder of the box.
Each FLACMetadataBlock structure consists of three fields
filling a total of four bytes that form a FLAC[3] native
METADATA_BLOCK_HEADER, followed by raw octet bytes that
comprise the FLAC[3] native METADATA_BLOCK_DATA.
+ LastMetadataBlockFlag:
The LastMetadataBlockFlag field maps semantically to
the FLAC[3] native METADATA_BLOCK_HEADER
Last-metadata-block flag as defined in the FLAC[3]
file specification.
The LastMetadataBlockFlag is set to 1 if this
MetadataBlock is the last metadata block in the
FLACSpecificBox. It is set to 0 otherwise.
+ BlockType:
The BlockType field maps semantically to the FLAC[3]
native METADATA_BLOCK_HEADER BLOCK_TYPE field as
defined in the FLAC[3] file specification.
The BlockType is set to a valid FLAC[3] BLOCK_TYPE
value that identifies the type of this native metadata
block. The BlockType of the first FLACMetadataBlock
must be set to 0, signifying this is a FLAC[3] native
METADATA_BLOCK_STREAMINFO block.
+ Length:
The Length field maps semantically to the FLAC[3]
native METADATA_BLOCK_HEADER Length field as
defined in the FLAC[3] file specification.
The length field specifies the number of bytes of
MetadataBlockData to follow.
+ BlockData
The BlockData field maps semantically to the FLAC[3]
native METADATA_BLOCK_HEADER METADATA_BLOCK_DATA as
defined in the FLAC[3] file specification.
Taken together, the bytes of the FLACMetadataBlock form a
complete FLAC[3] native METADATA_BLOCK structure.
Note that a minimum of a single FLACMetadataBlock,
consisting of a FLAC[3] native METADATA_BLOCK_STREAMINFO
structure, is required. Should the FLACSpecificBox
contain more than a single FLACMetadataBlock structure,
the FLACMetadataBlock containing the FLAC[3] native
METADATA_BLOCK_STREAMINFO must occur first in the list.
Other containers that package FLAC audio streams, such as
Ogg[4] and Matroska[5], wrap FLAC[3] native metadata without
modification similar to this specification. When
repackaging or remuxing FLAC[3] streams from another
format that contains FLAC[3] native metadata into an ISO
BMFF file, the complete FLAC[3] native metadata should be
preserved in the ISO BMFF stream as described above. It
is also allowed to parse this native metadata and include
contextually redundant ISO BMFF-native repackagings and/or
reparsings of FLAC[3] native metadata, so long as the
native metadata is also preserved.
3.3.3 Sample format
A FLAC sample is exactly one FLAC audio FRAME (as defined
in the FLAC[3] file specification) belonging to a FLAC
bitstreams. The FLAC sample data begins with a complete
FLAC FRAME_HEADER, followed by one FLAC SUBFRAME per
channel, any necessary bit padding, and ends with the
usual FLAC FRAME_FOOTER.
Note that the FLAC native FRAME_HEADER structure that
begins each FLAC sample redundantly encodes channel count,
sample rate, and sample size. The values of these fields
must agree both with the values declared in the FLAC
METADATA_BLOCK_STREAMINFO structure as well as the
FLACSampleEntry box.
3.3.4 Duration of a FLAC sample
The duration of any given FLAC sample is determined by
dividing the decoded block size of a FLAC frame, as
encoded in the FLAC FRAME's FRAME_HEADER structure, by the
value of the timescale field in the Media Header Box.
FLAC samples are permitted to have variable durations
within a given audio stream. FLAC does not use padding
values.
3.3.5 Sub-sample
Sub-samples are not defined for FLAC samples in this
specification.
3.3.6 Random Access
This subclause describes the nature of the random access
of FLAC sample.
3.3.6.1 Random Access Point
All FLAC samples can be independently decoded
i.e. every FLAC sample is a sync sample. The Sync
Sample Box shall not be present as long as there are
no samples other than FLAC samples in the same
track. The sample_is_non_sync_sample field for FLAC
samples shall be set to 0.
3.4 Basic Structure (informative)
3.4.1 Initial Movie
This subclause shows a basic structure of the Movie Box as follows:
+----+----+----+----+----+----+----+----+------------------------------+
|moov| | | | | | | | Movie Box |
+----+----+----+----+----+----+----+----+------------------------------+
| |mvhd| | | | | | | Movie Header Box |
+----+----+----+----+----+----+----+----+------------------------------+
| |trak| | | | | | | Track Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | |tkhd| | | | | | Track Header Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | |edts|* | | | | | Edit Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | |elst|* | | | | Edit List Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | |mdia| | | | | | Media Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | |mdhd| | | | | Media Header Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | |hdlr| | | | | Handler Reference Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | |minf| | | | | Media Information Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | |smhd| | | | Sound Media Header Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | |dinf| | | | Data Information Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | | |dref| | | Data Reference Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | | | |url | | DataEntryUrlBox |
+----+----+----+----+----+----+ or +----+------------------------------+
| | | | | | |urn | | DataEntryUrnBox |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | |stbl| | | | Sample Table |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | | |stsd| | | Sample Description Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | | | |fLaC| | FLACSampleEntry |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | | | | |dfLa| FLAC Specific Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | | |stts| | | Decoding Time to Sample Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | | |stsc| | | Sample To Chunk Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | | |stsz| | | Sample Size Box |
+----+----+----+----+----+ or +----+----+------------------------------+
| | | | | |stz2| | | Compact Sample Size Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | | | | |stco| | | Chunk Offset Box |
+----+----+----+----+----+ or +----+----+------------------------------+
| | | | | |co64| | | Chunk Large Offset Box |
+----+----+----+----+----+----+----+----+------------------------------+
| |mvex|* | | | | | | Movie Extends Box |
+----+----+----+----+----+----+----+----+------------------------------+
| | |trex|* | | | | | Track Extends Box |
+----+----+----+----+----+----+----+----+------------------------------+
Figure 1 - Basic structure of Movie Box
It is strongly recommended that the order of boxes should
follow the above structure. Boxes marked with an asterisk
(*) may or may not be present depending on context. For
most boxes listed above, the definition is as is defined
in ISO/IEC 14496-12 [1]. The additional boxes and the
additional requirements, restrictions and recommendations
to the other boxes are described in this specification.
3.5 Example of Encapsulation (informative)
[File]
size = 17790
[ftyp: File Type Box]
position = 0
size = 24
major_brand = mp42 : MP4 version 2
minor_version = 0
compatible_brands
brand[0] = mp42 : MP4 version 2
brand[1] = isom : ISO Base Media file format
[moov: Movie Box]
position = 24
size = 757
[mvhd: Movie Header Box]
position = 32
size = 108
version = 0
flags = 0x000000
creation_time = UTC 2014/12/12, 18:41:19
modification_time = UTC 2014/12/12, 18:41:19
timescale = 48000
duration = 33600 (00:00:00.700)
rate = 1.000000
volume = 1.000000
reserved = 0x0000
reserved = 0x00000000
reserved = 0x00000000
transformation matrix
| a, b, u | | 1.000000, 0.000000, 0.000000 |
| c, d, v | = | 0.000000, 1.000000, 0.000000 |
| x, y, w | | 0.000000, 0.000000, 1.000000 |
pre_defined = 0x00000000
pre_defined = 0x00000000
pre_defined = 0x00000000
pre_defined = 0x00000000
pre_defined = 0x00000000
pre_defined = 0x00000000
next_track_ID = 2
[iods: Object Descriptor Box]
position = 140
size = 33
version = 0
flags = 0x000000
[tag = 0x10: MP4_IOD]
expandableClassSize = 16
ObjectDescriptorID = 1
URL_Flag = 0
includeInlineProfileLevelFlag = 0
reserved = 0xf
ODProfileLevelIndication = 0xff
sceneProfileLevelIndication = 0xff
audioProfileLevelIndication = 0xfe
visualProfileLevelIndication = 0xff
graphicsProfileLevelIndication = 0xff
[tag = 0x0e: ES_ID_Inc]
expandableClassSize = 4
Track_ID = 1
[trak: Track Box]
position = 173
size = 608
[tkhd: Track Header Box]
position = 181
size = 92
version = 0
flags = 0x000007
Track enabled
Track in movie
Track in preview
creation_time = UTC 2014/12/12, 18:41:19
modification_time = UTC 2014/12/12, 18:41:19
track_ID = 1
reserved = 0x00000000
duration = 33600 (00:00:00.700)
reserved = 0x00000000
reserved = 0x00000000
layer = 0
alternate_group = 0
volume = 1.000000
reserved = 0x0000
transformation matrix
| a, b, u | | 1.000000, 0.000000, 0.000000 |
| c, d, v | = | 0.000000, 1.000000, 0.000000 |
| x, y, w | | 0.000000, 0.000000, 1.000000 |
width = 0.000000
height = 0.000000
[mdia: Media Box]
position = 273
size = 472
[mdhd: Media Header Box]
position = 281
size = 32
version = 0
flags = 0x000000
creation_time = UTC 2014/12/12, 18:41:19
modification_time = UTC 2014/12/12, 18:41:19
timescale = 48000
duration = 34560 (00:00:00.720)
language = und
pre_defined = 0x0000
[hdlr: Handler Reference Box]
position = 313
size = 51
version = 0
flags = 0x000000
pre_defined = 0x00000000
handler_type = soun
reserved = 0x00000000
reserved = 0x00000000
reserved = 0x00000000
name = Xiph Audio Handler
[minf: Media Information Box]
position = 364
size = 381
[smhd: Sound Media Header Box]
position = 372
size = 16
version = 0
flags = 0x000000
balance = 0.000000
reserved = 0x0000
[dinf: Data Information Box]
position = 388
size = 36
[dref: Data Reference Box]
position = 396
size = 28
version = 0
flags = 0x000000
entry_count = 1
[url : Data Entry Url Box]
position = 412
size = 12
version = 0
flags = 0x000001
location = in the same file
[stbl: Sample Table Box]
position = 424
size = 321
[stsd: Sample Description Box]
position = 432
size = 79
version = 0
flags = 0x000000
entry_count = 1
[fLaC: Audio Description]
position = 448
size = 63
reserved = 0x000000000000
data_reference_index = 1
reserved = 0x0000
reserved = 0x0000
reserved = 0x00000000
channelcount = 2
samplesize = 16
pre_defined = 0
reserved = 0
samplerate = 48000.000000
[dfLa: FLAC Specific Box]
position = 484
size = 50
version = 0
flags = 0x000000
[FLACMetadataBlock]
LastMetadataBlockFlag = 1
BlockType = 0
Length = 34
BlockData[34];
[stts: Decoding Time to Sample Box]
position = 492
size = 24
version = 0
flags = 0x000000
entry_count = 1
entry[0]
sample_count = 18
sample_delta = 1920
[stsc: Sample To Chunk Box]
position = 516
size = 40
version = 0
flags = 0x000000
entry_count = 2
entry[0]
first_chunk = 1
samples_per_chunk = 13
sample_description_index = 1
entry[1]
first_chunk = 2
samples_per_chunk = 5
sample_description_index = 1
[stsz: Sample Size Box]
position = 556
size = 92
version = 0
flags = 0x000000
sample_size = 0 (variable)
sample_count = 18
entry_size[0] = 977
entry_size[1] = 938
entry_size[2] = 939
entry_size[3] = 938
entry_size[4] = 934
entry_size[5] = 945
entry_size[6] = 948
entry_size[7] = 956
entry_size[8] = 955
entry_size[9] = 930
entry_size[10] = 933
entry_size[11] = 934
entry_size[12] = 972
entry_size[13] = 977
entry_size[14] = 958
entry_size[15] = 949
entry_size[16] = 962
entry_size[17] = 848
[stco: Chunk Offset Box]
position = 648
size = 24
version = 0
flags = 0x000000
entry_count = 2
chunk_offset[0] = 686
chunk_offset[1] = 12985
[free: Free Space Box]
position = 672
size = 8
[mdat: Media Data Box]
position = 680
size = 17001
4 Acknowledgements
This spec draws heavily from the Opus-in-ISOBMFF specification
work done by Yusuke Nakamura <muken.the.vfrmaniac |at| gmail.com>
Thank you to Tim Terriberry, David Evans, and Yusuke Nakamura
for valuable feedback. Thank you to Ralph Giles for editorial
help.
5 Author Address
Monty Montgomery <cmontgomery@mozilla.com>

View file

@ -0,0 +1,40 @@
1. Change version number in
- /configure.ac
- /CMakeLists.txt
- /doc/Doxyfile.in
- /man/flac.md
- /man/metaflac.md
- /test/metaflac-test-files/case07-expect.meta
1. Change version date in
- /src/libFLAC/format.c
- /test/metaflac-test-files/case07-expect.meta
1. Update changelog
1. Check copyright year and update if applicable
1. Check libFLAC and libFLAC++ for interface changes and update
version numbers in include/FLAC/export.h, include/FLAC++/export.h,
src/libFLAC/Makefile.am, src/libFLAC++/Makefile.am,
src/libFLAC/CMakeLists.txt and src/libFLAC++/CMakeLists.txt
1. Prepare and check release tarball by running
`git clean -ffxd && ./autogen.sh && ./configure && make distcheck`
1. Check whether release tarball contains api documentation and
generated man pages
1. Prepare Windows release. Instructions are for building with MinGW-w64
- Take last release as template
- Update readme's if necessary
- Copy changelog and tool documentation
- Unpack tarball and create empty directories build64 and build32
- Unpack most recent libogg: change
`add_library(ogg ${OGG_HEADERS} ${OGG_SOURCES})` to
`add_library(ogg STATIC ${OGG_HEADERS} ${OGG_SOURCES})`
- Add `-static-libgcc` to FLAC's CFLAGS
- Add `-static-libgcc  -static-libstdc++ -Wl,-Bstatic,--whole-archive
-lwinpthread -Wl,-Bdynamic,--no-whole-archive` to FLAC's CXXFLAGS
- Run `CMake -DBUILD_SHARED_LIBS=ON .. && ninja` in both build64 and
build32 in the corresponding build environments
- Check dependencies of flac.exe, metaflac.exe, libFLAC.dll and
libFLAC++.dll, e.g. with objdump -x *.* | grep DLL.
Dependencies should only include KERNEL32.DLL, ADVAPI32.DLL,
msvcrt.dll and libFLAC.dll
- Copy flac.exe, metaflac.exe, libFLAC.dll and libFLAC++.dll of both
builds to proper directories
- Zip directory