#include "FLAC/stream_decoder.h"
#include "share/grabbag.h"
#include "share/compat.h"
+#include "share/safe_str.h"
#include "test_libs_common/file_utils_flac.h"
#include "test_libs_common/metadata_utils.h"
typedef struct {
Layer layer;
FILE *file;
+ char filename[512];
unsigned current_metadata_number;
FLAC__bool ignore_errors;
FLAC__bool error_occurred;
return false;
}
+static void open_test_file(StreamDecoderClientData * pdcd, int is_ogg, const char * mode)
+{
+ pdcd->file = fopen(flacfilename(is_ogg), mode);
+ safe_strncpy(pdcd->filename, flacfilename(is_ogg), sizeof (pdcd->filename));
+}
+
static void init_metadata_blocks_(void)
{
mutils__init_metadata_blocks(&streaminfo_, &padding_, &seektable_, &application1_, &application2_, &vorbiscomment_, &cuesheet_, &picture_, &unknown_);
/* for FLAC__stream_encoder_init_FILE(), the FLAC__stream_encoder_finish() closes the file so we have to keep re-opening: */
if(dcd->layer == LAYER_FILE) {
printf("opening %sFLAC file... ", is_ogg? "Ogg ":"");
- dcd->file = fopen(flacfilename(is_ogg), "rb");
+ open_test_file(dcd, is_ogg, "rb");
if(0 == dcd->file) {
printf("ERROR (%s)\n", strerror(errno));
return false;
if(layer < LAYER_FILENAME) {
printf("opening %sFLAC file... ", is_ogg? "Ogg ":"");
- decoder_client_data.file = fopen(flacfilename(is_ogg), "rb");
+ open_test_file(&decoder_client_data, is_ogg, "rb");
if(0 == decoder_client_data.file) {
printf("ERROR (%s)\n", strerror(errno));
return false;