add FLAC__format_blocksize_is_subset()
authorJosh Coalson <jcoalson@users.sourceforce.net>
Tue, 27 May 2008 05:19:52 +0000 (05:19 +0000)
committerJosh Coalson <jcoalson@users.sourceforce.net>
Tue, 27 May 2008 05:19:52 +0000 (05:19 +0000)
doc/html/changelog.html
include/FLAC/format.h
src/libFLAC/format.c

index 1344ee0..3e14ccb 100644 (file)
                                </ul>
                        </li>
                        <li>
-                               Interface changes (see also the <a href="http://flac.sourceforge.net/api/group__porting__1__2__1__to__1__2__2.html">porting guide</a> for specific instructions on porting to FLAC 1.2.2):
+                               Interface changes:
                                <ul>
                                        <li>
                                                libFLAC:
                                                <ul>
-                                                       <li>(none)</li>
+                                                       <li><b>Added</b> FLAC__format_blocksize_is_subset()</li>
                                                </ul>
                                        </li>
                                        <li>
                                </ul>
                        </li>
                        <li>
-                               Interface changes (see also the <a href="http://flac.sourceforge.net/api/group__porting__1__2__0__to__1__2__1.html">porting guide</a> for specific instructions on porting to FLAC 1.2.1):
+                               Interface changes:
                                <ul>
                                        <li>
                                                libFLAC:
index 83ec965..ad11824 100644 (file)
@@ -879,6 +879,18 @@ extern FLAC_API const unsigned FLAC__STREAM_METADATA_LENGTH_LEN; /**< == 24 (bit
  */
 FLAC_API FLAC__bool FLAC__format_sample_rate_is_valid(unsigned sample_rate);
 
+/** Tests that a blocksize at the given sample rate is valid for the FLAC
+ *  subset.
+ *
+ * \param blocksize    The blocksize to test for compliance.
+ * \param sample_rate  The sample rate is needed, since the valid subset
+ *                     blocksize depends on the sample rate.
+ * \retval FLAC__bool
+ *    \c true if the given blocksize conforms to the specification for the
+ *    subset at the given sample rate, else \c false.
+ */
+FLAC_API FLAC__bool FLAC__format_blocksize_is_subset(unsigned blocksize, unsigned sample_rate);
+
 /** Tests that a sample rate is valid for the FLAC subset.  The subset rules
  *  for valid sample rates are slightly more complex since the rate has to
  *  be expressible completely in the frame header.
index be47146..b795ac5 100644 (file)
@@ -223,6 +223,16 @@ FLAC_API FLAC__bool FLAC__format_sample_rate_is_valid(unsigned sample_rate)
                return true;
 }
 
+FLAC_API FLAC__bool FLAC__format_blocksize_is_subset(unsigned blocksize, unsigned sample_rate)
+{
+       if(blocksize > 16384)
+               return false;
+       else if(sample_rate <= 48000 && blocksize > 4608)
+               return false;
+       else
+               return true;
+}
+
 FLAC_API FLAC__bool FLAC__format_sample_rate_is_subset(unsigned sample_rate)
 {
        if(