diff options
author | Guenter Bartsch <guenter@users.sourceforge.net> | 2003-02-17 22:15:22 +0000 |
---|---|---|
committer | Guenter Bartsch <guenter@users.sourceforge.net> | 2003-02-17 22:15:22 +0000 |
commit | 931a34127ac881cb14b1fbcec48cfdaca95fd9ef (patch) | |
tree | cfec5f362b5a28369e471a4412d49434554c1d9a | |
parent | d6d0946dc7dfe949f0a28efaf88df169935997c4 (diff) | |
download | xine-lib-931a34127ac881cb14b1fbcec48cfdaca95fd9ef.tar.gz xine-lib-931a34127ac881cb14b1fbcec48cfdaca95fd9ef.tar.bz2 |
make sure autio_out is opened while processing preview data to make sure meta data is set correctly
CVS patchset: 4189
CVS date: 2003/02/17 22:15:22
-rw-r--r-- | src/liba52/xine_decoder.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/liba52/xine_decoder.c b/src/liba52/xine_decoder.c index 35aa5d09e..3c5704840 100644 --- a/src/liba52/xine_decoder.c +++ b/src/liba52/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.49 2003/01/26 18:22:34 mroi Exp $ + * $Id: xine_decoder.c,v 1.50 2003/02/17 22:15:22 guenter Exp $ * * stuff needed to turn liba52 into a xine decoder plugin */ @@ -174,7 +174,7 @@ static inline void float_to_int (float * _f, int16_t * s16, int num_channels) { } } -static void a52dec_decode_frame (a52dec_decoder_t *this, int64_t pts) { +static void a52dec_decode_frame (a52dec_decoder_t *this, int64_t pts, int preview_mode) { int output_mode = AO_CAP_MODE_STEREO; @@ -228,15 +228,15 @@ static void a52dec_decode_frame (a52dec_decoder_t *this, int64_t pts) { this->output_open = this->stream->audio_out->open (this->stream->audio_out, - this->stream, 16, - this->a52_sample_rate, - output_mode) ; + this->stream, 16, + this->a52_sample_rate, + output_mode) ; this->output_sampling_rate = this->a52_sample_rate; this->output_mode = output_mode; } - if (!this->output_open) + if (!this->output_open || preview_mode) return; @@ -316,7 +316,7 @@ static void a52dec_decode_frame (a52dec_decoder_t *this, int64_t pts) { this->output_mode = AO_CAP_MODE_A52; } - if (this->output_open) { + if (this->output_open && !preview_mode) { /* SPDIF Passthrough * Build SPDIF Header and encaps the A52 audio data in it. */ @@ -393,13 +393,11 @@ void a52dec_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) { #endif if ( (this->sync_todo == 0) && (this->frame_todo == 0) ) { - if ((buf->decoder_flags & BUF_FLAG_PREVIEW)==0) { - a52dec_decode_frame (this, this->pts); + a52dec_decode_frame (this, this->pts, buf->decoder_flags & BUF_FLAG_PREVIEW); #ifdef LOG - printf ("liba52: decode frame\n"); + printf ("liba52: decode frame\n"); #endif - } #ifdef DEBUG_A52 write (a52file, this->frame_buffer, this->frame_length); |