mirror of
https://github.com/claunia/flac.git
synced 2025-12-16 18:54:26 +00:00
make --serial-number or the default random serial number apply only to the first stream, and increment it for subsequent streams
This commit is contained in:
@@ -28,7 +28,6 @@
|
||||
#include <stdio.h> /* for FILE etc. */
|
||||
#include <stdlib.h> /* for malloc */
|
||||
#include <string.h> /* for strcmp() */
|
||||
#include <time.h>
|
||||
#include "FLAC/all.h"
|
||||
#include "share/grabbag.h"
|
||||
#include "encode.h"
|
||||
@@ -1460,18 +1459,10 @@ FLAC__bool EncoderSession_init_encoder(EncoderSession *e, encode_options_t optio
|
||||
e->blocksize = options.blocksize;
|
||||
e->stats_mask = (options.do_exhaustive_model_search || options.do_qlp_coeff_prec_search)? 0x0f : 0x3f;
|
||||
|
||||
/* set a random serial number if one has not yet been specified */
|
||||
if(!options.has_serial_number) {
|
||||
srand(time(0));
|
||||
options.serial_number = rand();
|
||||
options.has_serial_number = true;
|
||||
}
|
||||
|
||||
#ifdef FLAC__HAS_OGG
|
||||
if(e->use_ogg) {
|
||||
if(e->is_stdout) {
|
||||
if(options.has_serial_number)
|
||||
OggFLAC__stream_encoder_set_serial_number(e->encoder.ogg.stream, options.serial_number);
|
||||
OggFLAC__stream_encoder_set_serial_number(e->encoder.ogg.stream, options.serial_number);
|
||||
OggFLAC__stream_encoder_set_verify(e->encoder.ogg.stream, options.verify);
|
||||
OggFLAC__stream_encoder_set_streamable_subset(e->encoder.ogg.stream, !options.lax);
|
||||
OggFLAC__stream_encoder_set_do_mid_side_stereo(e->encoder.ogg.stream, options.do_mid_side);
|
||||
@@ -1506,8 +1497,7 @@ FLAC__bool EncoderSession_init_encoder(EncoderSession *e, encode_options_t optio
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(options.has_serial_number)
|
||||
OggFLAC__file_encoder_set_serial_number(e->encoder.ogg.file, options.serial_number);
|
||||
OggFLAC__file_encoder_set_serial_number(e->encoder.ogg.file, options.serial_number);
|
||||
OggFLAC__file_encoder_set_filename(e->encoder.ogg.file, e->outfilename);
|
||||
OggFLAC__file_encoder_set_verify(e->encoder.ogg.file, options.verify);
|
||||
OggFLAC__file_encoder_set_streamable_subset(e->encoder.ogg.file, !options.lax);
|
||||
|
||||
@@ -33,7 +33,6 @@ typedef struct {
|
||||
FLAC__bool verify;
|
||||
#ifdef FLAC__HAS_OGG
|
||||
FLAC__bool use_ogg;
|
||||
FLAC__bool has_serial_number;
|
||||
long serial_number;
|
||||
#endif
|
||||
FLAC__bool lax;
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
@@ -1510,8 +1511,13 @@ int encode_file(const char *infilename, FLAC__bool is_first_file, FLAC__bool is_
|
||||
common_options.verify = option_values.verify;
|
||||
#ifdef FLAC__HAS_OGG
|
||||
common_options.use_ogg = option_values.use_ogg;
|
||||
common_options.has_serial_number = option_values.has_serial_number;
|
||||
common_options.serial_number = option_values.serial_number;
|
||||
/* set a random serial number if one has not yet been specified */
|
||||
if(!option_values.has_serial_number) {
|
||||
srand(time(0));
|
||||
option_values.serial_number = rand();
|
||||
option_values.has_serial_number = true;
|
||||
}
|
||||
common_options.serial_number = option_values.serial_number++;
|
||||
#endif
|
||||
common_options.lax = option_values.lax;
|
||||
common_options.do_mid_side = option_values.do_mid_side;
|
||||
|
||||
Reference in New Issue
Block a user