summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/liba52/xine_decoder.c57
-rw-r--r--src/libdts/xine_decoder.c49
2 files changed, 61 insertions, 45 deletions
diff --git a/src/liba52/xine_decoder.c b/src/liba52/xine_decoder.c
index ac47fcfe9..e556c8cba 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.73 2004/12/16 13:59:10 mroi Exp $
+ * $Id: xine_decoder.c,v 1.74 2005/05/28 11:07:22 jstembridge Exp $
*
* stuff needed to turn liba52 into a xine decoder plugin
*/
@@ -529,30 +529,37 @@ static void a52dec_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
a52_sample_rate_old != this->a52_sample_rate ||
a52_bit_rate_old != this->a52_bit_rate) {
- if (((this->a52_flags & A52_CHANNEL_MASK) == A52_3F2R) && (this->a52_flags & A52_LFE))
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 5.1");
- else if ((((this->a52_flags & A52_CHANNEL_MASK) == A52_2F2R) && (this->a52_flags & A52_LFE)) ||
- (((this->a52_flags & A52_CHANNEL_MASK) == A52_3F1R) && (this->a52_flags & A52_LFE)))
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 4.1");
- else if ((this->a52_flags & A52_CHANNEL_MASK) == A52_3F2R)
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 5.0");
- else if (((this->a52_flags & A52_CHANNEL_MASK) == A52_2F2R) ||
- ((this->a52_flags & A52_CHANNEL_MASK) == A52_3F1R))
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 4.0");
- else if (((this->a52_flags & A52_CHANNEL_MASK) == A52_2F1R) ||
- ((this->a52_flags & A52_CHANNEL_MASK) == A52_3F))
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 3.0");
- else if ((this->a52_flags & A52_CHANNEL_MASK) == A52_STEREO)
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 2.0 (stereo)");
- else if ((this->a52_flags & A52_CHANNEL_MASK) == A52_DOLBY)
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 2.0 (dolby)");
- else if ((this->a52_flags & A52_CHANNEL_MASK) == A52_MONO)
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 1.0");
- else
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52");
-
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_BITRATE, this->a52_bit_rate);
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_SAMPLERATE, this->a52_sample_rate);
+ switch (this->a52_flags & A52_CHANNEL_MASK) {
+ case A52_3F2R:
+ if (this->a52_flags & A52_LFE)
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 5.1");
+ else
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 5.0");
+ break;
+ case A52_3F1R:
+ case A52_2F2R:
+ if (this->a52_flags & A52_LFE)
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 4.1");
+ else
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 4.0");
+ break;
+ case A52_2F1R:
+ case A52_3F:
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 3.0");
+ break;
+ case A52_STEREO:
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 2.0 (stereo)");
+ break;
+ case A52_DOLBY:
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 2.0 (dolby)");
+ break;
+ case A52_MONO:
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "A/52 1.0");
+ break;
+ default:
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS");
+ break;
+ }
}
}
break;
diff --git a/src/libdts/xine_decoder.c b/src/libdts/xine_decoder.c
index cd16563a8..88ef3edb7 100644
--- a/src/libdts/xine_decoder.c
+++ b/src/libdts/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.61 2005/05/28 10:41:17 jstembridge Exp $
+ * $Id: xine_decoder.c,v 1.62 2005/05/28 11:07:22 jstembridge Exp $
*
* 04-09-2001 DTS passtrough (C) Joachim Koenig
* 09-12-2001 DTS passthrough inprovements (C) James Courtier-Dutton
@@ -411,25 +411,34 @@ static void dts_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
old_dts_bit_rate != this->dts_bit_rate) {
this->rate = this->dts_sample_rate;
- if (((this->dts_flags & DTS_CHANNEL_MASK) == DTS_3F2R) && (this->dts_flags & DTS_LFE))
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 5.1");
- else if ((((this->dts_flags & DTS_CHANNEL_MASK) == DTS_2F2R) && (this->dts_flags & DTS_LFE)) ||
- (((this->dts_flags & DTS_CHANNEL_MASK) == DTS_3F1R) && (this->dts_flags & DTS_LFE)))
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 4.1");
- else if ((this->dts_flags & DTS_CHANNEL_MASK) == DTS_3F2R)
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 5.0");
- else if (((this->dts_flags & DTS_CHANNEL_MASK) == DTS_2F2R) ||
- ((this->dts_flags & DTS_CHANNEL_MASK) == DTS_3F1R))
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 4.0");
- else if (((this->dts_flags & DTS_CHANNEL_MASK) == DTS_2F1R) ||
- ((this->dts_flags & DTS_CHANNEL_MASK) == DTS_3F))
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 3.0");
- else if ((this->dts_flags & DTS_CHANNEL_MASK) == DTS_STEREO)
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 2.0 (stereo)");
- else if ((this->dts_flags & DTS_CHANNEL_MASK) == DTS_MONO)
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 1.0");
- else
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS");
+ switch (this->dts_flags & DTS_CHANNEL_MASK) {
+ case DTS_3F2R:
+ if (this->dts_flags & DTS_LFE)
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 5.1");
+ else
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 5.0");
+ break;
+ case DTS_3F1R:
+ case DTS_2F2R:
+ if (this->dts_flags & DTS_LFE)
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 4.1");
+ else
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 4.0");
+ break;
+ case DTS_2F1R:
+ case DTS_3F:
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 3.0");
+ break;
+ case DTS_STEREO:
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 2.0 (stereo)");
+ break;
+ case DTS_MONO
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS 1.0");
+ break;
+ default:
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DTS");
+ break;
+ }
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_BITRATE, this->dts_bit_rate);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_SAMPLERATE, this->dts_sample_rate);