Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
flac
Commits
0577344c
Commit
0577344c
authored
Sep 12, 2007
by
Josh Coalson
Browse files
*** empty log message ***
parent
6d6afdce
Changes
7
Hide whitespace changes
Inline
Side-by-side
examples/cpp/Makefile.am
0 → 100644
View file @
0577344c
# FLAC - Free Lossless Audio Codec
# Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Josh Coalson
#
# This file is part the FLAC project. FLAC is comprised of several
# components distributed under difference 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.
SUBDIRS
=
decode
examples/cpp/decode/Makefile.am
0 → 100644
View file @
0577344c
# FLAC - Free Lossless Audio Codec
# Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Josh Coalson
#
# This file is part the FLAC project. FLAC is comprised of several
# components distributed under difference 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.
SUBDIRS
=
file
examples/cpp/decode/file/Makefile.am
0 → 100644
View file @
0577344c
# example_cpp_decode_file - Simple FLAC file decoder using libFLAC
# Copyright (C) 2007 Josh Coalson
#
# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
EXTRA_DIST
=
\
Makefile.lite
\
example_cpp_decode_file.dsp
\
example_cpp_decode_file.vcproj
\
noinst_PROGRAMS
=
example_cpp_decode_file
example_cpp_decode_file_LDADD
=
\
@OGG_LIBS@
\
@MINGW_WINSOCK_LIBS@
\
-lm
example_cpp_decode_file_SOURCES
=
main.c
examples/cpp/decode/file/Makefile.lite
0 → 100644
View file @
0577344c
# example_cpp_decode_file - Simple FLAC file decoder using libFLAC
# Copyright (C) 2007 Josh Coalson
#
# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# GNU makefile
#
topdir
=
../../../..
libdir
=
$(topdir)
/obj/
$(BUILD)
/lib
PROGRAM_NAME
=
example_cpp_decode_file
INCLUDES
=
-I
$(topdir)
/include
ifeq
($(DARWIN_BUILD),yes)
EXPLICIT_LIBS
=
$(libdir)
/libFLAC++.a
$(libdir)
/libFLAC.a
$(OGG_LIB_DIR)
/libogg.a
-lm
else
LIBS
=
-lFLAC
++
-lFLAC
-L
$(OGG_LIB_DIR)
-logg
-lm
endif
SRCS_CPP
=
main.cpp
include
$(topdir)/build/exe.mk
LINK
=
$(CCC)
$(LINKAGE)
# DO NOT DELETE THIS LINE -- make depend depends on it.
examples/cpp/decode/file/example_cpp_decode_file.dsp
0 → 100644
View file @
0577344c
# Microsoft Developer Studio Project File - Name="example_cpp_decode_file" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=example_cpp_decode_file - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "example_cpp_decode_file.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "example_cpp_decode_file.mak" CFG="example_cpp_decode_file - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "example_cpp_decode_file - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "example_cpp_decode_file - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "example_cpp_decode_file - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "..\..\..\..\obj\release\bin"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\include" /D "NDEBUG" /D "FLAC__NO_DLL" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 ..\..\..\..\obj\release\lib\libFLAC++_static.lib ..\..\..\..\obj\release\lib\libFLAC_static.lib ..\..\..\..\obj\release\lib\ogg_static.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "example_cpp_decode_file - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "..\..\..\..\obj\debug\bin"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\include" /D "_DEBUG" /D "DEBUG" /D "FLAC__NO_DLL" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ..\..\..\..\obj\release\lib\libFLAC++_static.lib ..\..\..\..\obj\debug\lib\libFLAC_static.lib ..\..\..\..\obj\release\lib\ogg_static.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "example_cpp_decode_file - Win32 Release"
# Name "example_cpp_decode_file - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\main.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# End Target
# End Project
examples/cpp/decode/file/example_cpp_decode_file.vcproj
0 → 100644
View file @
0577344c
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType=
"Visual C++"
Version=
"8.00"
Name=
"example_cpp_decode_file"
ProjectGUID=
"{4cefbe00-c215-11db-8314-0800200c9a66}"
RootNamespace=
"example_cpp_decode_file"
Keyword=
"Win32Proj"
>
<Platforms>
<Platform
Name=
"Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name=
"Debug|Win32"
OutputDirectory=
"..\..\..\..\obj\debug\bin"
IntermediateDirectory=
"Debug"
ConfigurationType=
"1"
>
<Tool
Name=
"VCPreBuildEventTool"
/>
<Tool
Name=
"VCCustomBuildTool"
/>
<Tool
Name=
"VCXMLDataGeneratorTool"
/>
<Tool
Name=
"VCWebServiceProxyGeneratorTool"
/>
<Tool
Name=
"VCMIDLTool"
/>
<Tool
Name=
"VCCLCompilerTool"
Optimization=
"0"
AdditionalIncludeDirectories=
"..\..\..\..\include"
PreprocessorDefinitions=
"WIN32;_DEBUG;_CONSOLE;FLAC__NO_DLL;DEBUG"
MinimalRebuild=
"true"
BasicRuntimeChecks=
"3"
RuntimeLibrary=
"1"
UsePrecompiledHeader=
"0"
WarningLevel=
"3"
Detect64BitPortabilityProblems=
"true"
DebugInformationFormat=
"4"
CompileAs=
"0"
DisableSpecificWarnings=
"4267;4996"
/>
<Tool
Name=
"VCManagedResourceCompilerTool"
/>
<Tool
Name=
"VCResourceCompilerTool"
/>
<Tool
Name=
"VCPreLinkEventTool"
/>
<Tool
Name=
"VCLinkerTool"
AdditionalDependencies=
"..\..\..\..\obj\release\lib\ogg_static.lib"
LinkIncremental=
"2"
IgnoreDefaultLibraryNames=
"uuid.lib"
GenerateDebugInformation=
"true"
SubSystem=
"1"
TargetMachine=
"1"
/>
<Tool
Name=
"VCALinkTool"
/>
<Tool
Name=
"VCManifestTool"
/>
<Tool
Name=
"VCXDCMakeTool"
/>
<Tool
Name=
"VCBscMakeTool"
/>
<Tool
Name=
"VCFxCopTool"
/>
<Tool
Name=
"VCAppVerifierTool"
/>
<Tool
Name=
"VCWebDeploymentTool"
/>
<Tool
Name=
"VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name=
"Release|Win32"
OutputDirectory=
"..\..\..\..\obj\release\bin"
IntermediateDirectory=
"Release"
ConfigurationType=
"1"
>
<Tool
Name=
"VCPreBuildEventTool"
/>
<Tool
Name=
"VCCustomBuildTool"
/>
<Tool
Name=
"VCXMLDataGeneratorTool"
/>
<Tool
Name=
"VCWebServiceProxyGeneratorTool"
/>
<Tool
Name=
"VCMIDLTool"
/>
<Tool
Name=
"VCCLCompilerTool"
EnableIntrinsicFunctions=
"true"
FavorSizeOrSpeed=
"1"
OmitFramePointers=
"true"
WholeProgramOptimization=
"true"
AdditionalIncludeDirectories=
"..\..\..\..\include"
PreprocessorDefinitions=
"WIN32;NDEBUG;_CONSOLE;FLAC__NO_DLL"
RuntimeLibrary=
"0"
BufferSecurityCheck=
"false"
UsePrecompiledHeader=
"0"
WarningLevel=
"3"
Detect64BitPortabilityProblems=
"true"
DebugInformationFormat=
"3"
CompileAs=
"0"
DisableSpecificWarnings=
"4267;4996"
/>
<Tool
Name=
"VCManagedResourceCompilerTool"
/>
<Tool
Name=
"VCResourceCompilerTool"
/>
<Tool
Name=
"VCPreLinkEventTool"
/>
<Tool
Name=
"VCLinkerTool"
AdditionalDependencies=
"..\..\..\..\obj\release\lib\ogg_static.lib"
LinkIncremental=
"1"
IgnoreDefaultLibraryNames=
"uuid.lib"
GenerateDebugInformation=
"true"
SubSystem=
"1"
OptimizeReferences=
"2"
EnableCOMDATFolding=
"2"
LinkTimeCodeGeneration=
"1"
TargetMachine=
"1"
/>
<Tool
Name=
"VCALinkTool"
/>
<Tool
Name=
"VCManifestTool"
/>
<Tool
Name=
"VCXDCMakeTool"
/>
<Tool
Name=
"VCBscMakeTool"
/>
<Tool
Name=
"VCFxCopTool"
/>
<Tool
Name=
"VCAppVerifierTool"
/>
<Tool
Name=
"VCWebDeploymentTool"
/>
<Tool
Name=
"VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name=
"Header Files"
Filter=
"h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier=
"{93292580-829B-b441-E8B8-65A95828BEB0}"
>
</Filter>
<Filter
Name=
"Source Files"
Filter=
"cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier=
"{9C7247F1-CA27-1761-A016-0F27452AD2F0}"
>
<File
RelativePath=
".\main.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
examples/cpp/decode/file/main.cpp
0 → 100644
View file @
0577344c
/* example_cpp_decode_file - Simple FLAC file decoder using libFLAC
* Copyright (C) 2007 Josh Coalson
*
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/*
* This example shows how to use libFLAC to decode a FLAC file to a WAVE
* file. It only supports 16-bit stereo files.
*/
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include "FLAC++/decoder.h"
FLAC__uint64
total_samples
=
0
;
unsigned
sample_rate
=
0
;
unsigned
channels
=
0
;
unsigned
bps
=
0
;
static
bool
write_little_endian_uint16
(
FILE
*
f
,
FLAC__uint16
x
)
{
return
fputc
(
x
,
f
)
!=
EOF
&&
fputc
(
x
>>
8
,
f
)
!=
EOF
;
}
static
bool
write_little_endian_int16
(
FILE
*
f
,
FLAC__int16
x
)
{
return
write_little_endian_uint16
(
f
,
(
FLAC__uint16
)
x
);
}
static
bool
write_little_endian_uint32
(
FILE
*
f
,
FLAC__uint32
x
)
{
return
fputc
(
x
,
f
)
!=
EOF
&&
fputc
(
x
>>
8
,
f
)
!=
EOF
&&
fputc
(
x
>>
16
,
f
)
!=
EOF
&&
fputc
(
x
>>
24
,
f
)
!=
EOF
;
}
class
OurDecoder
:
public
FLAC
::
Decoder
::
File
{
public:
OurDecoder
(
FILE
*
f_
)
:
FLAC
::
Decoder
::
File
(),
f
(
f_
)
{
}
protected:
FILE
*
f
;
virtual
::
FLAC__StreamDecoderWriteStatus
write_callback
(
const
::
FLAC__Frame
*
frame
,
const
FLAC__int32
*
const
buffer
[]);
virtual
void
metadata_callback
(
const
::
FLAC__StreamMetadata
*
metadata
);
virtual
void
error_callback
(
::
FLAC__StreamDecoderErrorStatus
status
);
};
int
main
(
int
argc
,
char
*
argv
[])
{
bool
ok
=
true
;
FILE
*
fout
;
if
(
argc
!=
3
)
{
fprintf
(
stderr
,
"usage: %s infile.flac outfile.wav
\n
"
,
argv
[
0
]);
return
1
;
}
if
((
fout
=
fopen
(
argv
[
2
],
"wb"
))
==
NULL
)
{
fprintf
(
stderr
,
"ERROR: opening %s for output
\n
"
,
argv
[
2
]);
return
1
;
}
OurDecoder
decoder
(
fout
);
if
(
!
decoder
)
{
fprintf
(
stderr
,
"ERROR: allocating decoder
\n
"
);
return
1
;
}
(
void
)
decoder
.
set_md5_checking
(
true
);
FLAC__StreamDecoderInitStatus
init_status
=
decoder
.
init
(
argv
[
1
]);
if
(
init_status
!=
FLAC__STREAM_DECODER_INIT_STATUS_OK
)
{
fprintf
(
stderr
,
"ERROR: initializing decoder: %s
\n
"
,
FLAC__StreamDecoderInitStatusString
[
init_status
]);
ok
=
false
;
}
if
(
ok
)
{
ok
=
decoder
.
process_until_end_of_stream
();
fprintf
(
stderr
,
"decoding: %s
\n
"
,
ok
?
"succeeded"
:
"FAILED"
);
fprintf
(
stderr
,
" state: %s
\n
"
,
decoder
.
get_state
().
resolved_as_cstring
(
decoder
));
}
fclose
(
fout
);
return
0
;
}
::
FLAC__StreamDecoderWriteStatus
OurDecoder
::
write_callback
(
const
::
FLAC__Frame
*
frame
,
const
FLAC__int32
*
const
buffer
[])
{
const
FLAC__uint32
total_size
=
(
FLAC__uint32
)(
total_samples
*
channels
*
(
bps
/
8
));
size_t
i
;
if
(
total_samples
==
0
)
{
fprintf
(
stderr
,
"ERROR: this example only works for FLAC files that have a total_samples count in STREAMINFO
\n
"
);
return
FLAC__STREAM_DECODER_WRITE_STATUS_ABORT
;
}
if
(
channels
!=
2
||
bps
!=
16
)
{
fprintf
(
stderr
,
"ERROR: this example only supports 16bit stereo streams
\n
"
);
return
FLAC__STREAM_DECODER_WRITE_STATUS_ABORT
;
}
/* write WAVE header before we write the first frame */
if
(
frame
->
header
.
number
.
sample_number
==
0
)
{
if
(
fwrite
(
"RIFF"
,
1
,
4
,
f
)
<
4
||
!
write_little_endian_uint32
(
f
,
total_size
+
36
)
||
fwrite
(
"WAVEfmt "
,
1
,
8
,
f
)
<
8
||
!
write_little_endian_uint32
(
f
,
16
)
||
!
write_little_endian_uint16
(
f
,
1
)
||
!
write_little_endian_uint16
(
f
,
(
FLAC__uint16
)
channels
)
||
!
write_little_endian_uint32
(
f
,
sample_rate
)
||
!
write_little_endian_uint32
(
f
,
sample_rate
*
channels
*
(
bps
/
8
))
||
!
write_little_endian_uint16
(
f
,
(
FLAC__uint16
)(
channels
*
(
bps
/
8
)))
||
/* block align */
!
write_little_endian_uint16
(
f
,
(
FLAC__uint16
)
bps
)
||
fwrite
(
"data"
,
1
,
4
,
f
)
<
4
||
!
write_little_endian_uint32
(
f
,
total_size
)
)
{
fprintf
(
stderr
,
"ERROR: write error
\n
"
);
return
FLAC__STREAM_DECODER_WRITE_STATUS_ABORT
;
}
}
/* write decoded PCM samples */
for
(
i
=
0
;
i
<
frame
->
header
.
blocksize
;
i
++
)
{
if
(
!
write_little_endian_int16
(
f
,
(
FLAC__int16
)
buffer
[
0
][
i
])
||
/* left channel */
!
write_little_endian_int16
(
f
,
(
FLAC__int16
)
buffer
[
1
][
i
])
/* right channel */
)
{
fprintf
(
stderr
,
"ERROR: write error
\n
"
);
return
FLAC__STREAM_DECODER_WRITE_STATUS_ABORT
;
}
}
return
FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE
;
}
void
OurDecoder
::
metadata_callback
(
const
::
FLAC__StreamMetadata
*
metadata
)
{
/* print some stats */
if
(
metadata
->
type
==
FLAC__METADATA_TYPE_STREAMINFO
)
{
/* save for later */
total_samples
=
metadata
->
data
.
stream_info
.
total_samples
;
sample_rate
=
metadata
->
data
.
stream_info
.
sample_rate
;
channels
=
metadata
->
data
.
stream_info
.
channels
;
bps
=
metadata
->
data
.
stream_info
.
bits_per_sample
;
fprintf
(
stderr
,
"sample rate : %u Hz
\n
"
,
sample_rate
);
fprintf
(
stderr
,
"channels : %u
\n
"
,
channels
);
fprintf
(
stderr
,
"bits per sample: %u
\n
"
,
bps
);
#ifdef _MSC_VER
fprintf
(
stderr
,
"total samples : %I64u
\n
"
,
total_samples
);
#else
fprintf
(
stderr
,
"total samples : %llu
\n
"
,
total_samples
);
#endif
}
}
void
OurDecoder
::
error_callback
(
::
FLAC__StreamDecoderErrorStatus
status
)
{
fprintf
(
stderr
,
"Got error callback: %s
\n
"
,
FLAC__StreamDecoderErrorStatusString
[
status
]);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment