[beast/devel: 8/28] BSE: FLAC: handle decoder errors in data handle open method



commit 1c3c745b87e6b6d225269b01a3678bfa8bb388a3
Author: Stefan Westerfeld <stefan space twc de>
Date:   Fri Mar 8 15:35:51 2013 +0100

    BSE: FLAC: handle decoder errors in data handle open method

 bse/bsedatahandle-flac.cc |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/bse/bsedatahandle-flac.cc b/bse/bsedatahandle-flac.cc
index 4d89e2a..e25f072 100644
--- a/bse/bsedatahandle-flac.cc
+++ b/bse/bsedatahandle-flac.cc
@@ -114,6 +114,7 @@ public:
     if (!m_decoder)
       return BSE_ERROR_IO;
 
+    m_error_occurred = false;
     int err = FLAC__stream_decoder_init_file (m_decoder, m_file_name.c_str(),
                                               flac_write_callback, NULL, flac_error_callback, this);
     if (err != 0)
@@ -128,6 +129,9 @@ public:
     if (FLAC__stream_decoder_get_channels (m_decoder) == 0)
       return BSE_ERROR_IO;
 
+    if (m_error_occurred)
+      return BSE_ERROR_IO;
+
     m_n_channels = setup->n_channels = FLAC__stream_decoder_get_channels (m_decoder);
     setup->n_values = FLAC__stream_decoder_get_total_samples (m_decoder);
     setup->bit_depth = FLAC__stream_decoder_get_bits_per_sample (m_decoder);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]