mirror of
https://github.com/claunia/flac.git
synced 2025-12-16 18:54:26 +00:00
merge down from merged-API-layer branch: cvs -q up -dP -j API_LAYER_MERGING_BASELINE -j API_LAYER_MERGING_BRANCH
This commit is contained in:
@@ -935,7 +935,7 @@ FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_point
|
||||
FLAC__ASSERT(object->type == FLAC__METADATA_TYPE_SEEKTABLE);
|
||||
FLAC__ASSERT(total_samples > 0);
|
||||
|
||||
if(num > 0) {
|
||||
if(num > 0 && total_samples > 0) {
|
||||
FLAC__StreamMetadata_SeekTable *seek_table = &object->data.seek_table;
|
||||
unsigned i, j;
|
||||
|
||||
@@ -954,6 +954,39 @@ FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_point
|
||||
return true;
|
||||
}
|
||||
|
||||
FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points_by_samples(FLAC__StreamMetadata *object, unsigned samples, FLAC__uint64 total_samples)
|
||||
{
|
||||
FLAC__ASSERT(0 != object);
|
||||
FLAC__ASSERT(object->type == FLAC__METADATA_TYPE_SEEKTABLE);
|
||||
FLAC__ASSERT(samples > 0);
|
||||
FLAC__ASSERT(total_samples > 0);
|
||||
|
||||
if(samples > 0 && total_samples > 0) {
|
||||
FLAC__StreamMetadata_SeekTable *seek_table = &object->data.seek_table;
|
||||
unsigned i, j;
|
||||
FLAC__uint64 num, sample;
|
||||
|
||||
num = 1 + total_samples / samples; /* 1+ for the first sample at 0 */
|
||||
/* now account for the fact that we don't place a seekpoint at "total_samples" since samples are number from 0: */
|
||||
if(total_samples % samples == 0)
|
||||
num--;
|
||||
|
||||
i = seek_table->num_points;
|
||||
|
||||
if(!FLAC__metadata_object_seektable_resize_points(object, seek_table->num_points + num))
|
||||
return false;
|
||||
|
||||
sample = 0;
|
||||
for(j = 0; j < num; i++, j++, sample += samples) {
|
||||
seek_table->points[i].sample_number = sample;
|
||||
seek_table->points[i].stream_offset = 0;
|
||||
seek_table->points[i].frame_samples = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_sort(FLAC__StreamMetadata *object, FLAC__bool compact)
|
||||
{
|
||||
unsigned unique;
|
||||
|
||||
Reference in New Issue
Block a user