summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2022-07-04 17:04:42 +0200
committerMartijn van Beurden <mvanb1@gmail.com>2022-07-27 22:16:04 +0200
commit42201ae5750273fea41ad30a3ddfadcef52fa103 (patch)
treeb629628076c6ef22841ccdc9d360823c5d7c1ee4 /include
parent10d7ce268b758b7cf62c3663338f180370a9a415 (diff)
downloadflac-42201ae5750273fea41ad30a3ddfadcef52fa103.tar.gz
Add porting guide stub
Diffstat (limited to 'include')
-rw-r--r--include/FLAC/all.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/include/FLAC/all.h b/include/FLAC/all.h
index 4d9d763c..71ddd3c6 100644
--- a/include/FLAC/all.h
+++ b/include/FLAC/all.h
@@ -357,6 +357,56 @@
* \c FLAC__FRAME_HEADER_BLOCKING_STRATEGY_LEN
*/
+/** \defgroup porting_1_3_4_to_1_4_0 Porting from FLAC 1.3.4 to 1.4.0
+ * \ingroup porting
+ *
+ * \brief
+ * This module describes porting from FLAC 1.3.4 to FLAC 1.4.0.
+ *
+ * \section porting_1_3_4_to_1_4_0_summary Summary
+ *
+ * Between FLAC 1.3.4 and FLAC 1.4.0, there have three breaking changes
+ * - the function get_client_data_from_decoder has been renamed to
+ * FLAC__get_decoder_client_data
+ * - some data types in the FLAC__Frame struct have changed
+ * - the C functions FLAC__stream_encoder_init_file,
+ * FLAC__stream_encoder_init_ogg_file, FLAC__stream_decoder_init_file
+ * and FLAC__stream_decoder_init_ogg_file and the C++ ::init and
+ * ::init_ogg class member functions of both the encoder and decoder
+ * now take UTF-8 encoded filenames on Windows instead of filenames in
+ * the current codepage
+ *
+ * Furthermore, there have been the following additions
+ * - the functions FLAC__stream_encoder_set_limit_min_bitrate,
+ * FLAC__stream_encoder_get_limit_min_bitrate,
+ * FLAC::encoder::file::set_limit_min_bitrate() and
+ * FLAC::encoder::file::get_limit_min_bitrate() have been added
+ * - Added FLAC__STREAM_DECODER_ERROR_STATUS_BAD_METADATA to the
+ * FLAC__StreamDecoderErrorStatus enum
+ *
+ * \section porting_1_3_4_to_1_4_0_breaking Breaking changes
+ *
+ * The function \b get_client_data_from_decoder was added in FLAC 1.3.3
+ * but did not follow the API naming convention and was not properly
+ * exported. The function is now renamed and properly integrated
+ *
+ * To accomodate encoding and decoding 32-bit int PCM, some data types
+ * in the \b FLAC__frame struct were changed. Specifically, warmup
+ * in both the FLAC__Subframe_Fixed struc and the FLAC__Subframe_LPC
+ * struct is changed from FLAC__int32 to FLAC__int64. Also, value
+ * in the FLAC__Subframe_Constant is changed from FLAC__int32 to
+ * FLAC__int64. Finally, in FLAC__Subframe_Verbatim struct data is
+ * changes from a FLAC__int32 array to a union containing a FLAC__int32
+ * array and a FLAC__int64 array. Also, a new member is added,
+ * data_type, which clarifies whether the FLAC__int32 or FLAC__int64
+ * array is in use.
+ *
+ * The last breaking change is that filenames in FLAC and FLAC++ encoder
+ * and decoder must now have the UTF-8 character encoding instead of
+ * using the current code page.
+ *
+ */
+
/** \defgroup flac FLAC C API
*
* The FLAC C API is the interface to libFLAC, a set of structures