summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-09-25 19:52:17 +0200
committerwm4 <wm4@nowhere>2014-09-25 21:32:06 +0200
commit09b7956ca596a876f19273568c7756f675b2b56e (patch)
tree78684243baa6a65bd7be2cdf3b82f2879b3b37fe
parent1c9f30cca7b877f988c735735d023014cc554a07 (diff)
downloadmpv-09b7956ca596a876f19273568c7756f675b2b56e.tar.bz2
mpv-09b7956ca596a876f19273568c7756f675b2b56e.tar.xz
stream_cdda, demux_raw: always use s16le
stream_cdda's output format is linked to demux_raw's default audio format, and at least we don't care enough to provide a separate mechanism to let stream_cdda explicitly set the format, so they must match. Judging from the existing code, it looks like CDDA always outputs little endian. stream_cdda.c changed this back to native endian (what demux_raw expects). Just make them both little endian. This requires less code, and also having a raw demuxer's behavior depend on the endianness of the machine isn't very sane anyway.
-rw-r--r--demux/demux_raw.c2
-rw-r--r--stream/stream_cdda.c8
2 files changed, 1 insertions, 9 deletions
diff --git a/demux/demux_raw.c b/demux/demux_raw.c
index 6faea6e61d..d054dbdf01 100644
--- a/demux/demux_raw.c
+++ b/demux/demux_raw.c
@@ -78,7 +78,7 @@ const struct m_sub_options demux_rawaudio_conf = {
// Note that currently, stream_cdda expects exactly these parameters!
.channels = MP_CHMAP_INIT_STEREO,
.samplerate = 44100,
- .aformat = PCM(1, 0, 16, NE), // s16
+ .aformat = PCM(1, 0, 16, 0), // s16le
},
};
diff --git a/stream/stream_cdda.c b/stream/stream_cdda.c
index 79f700c260..d105141200 100644
--- a/stream/stream_cdda.c
+++ b/stream/stream_cdda.c
@@ -38,15 +38,12 @@
#include <stdlib.h>
#include <stdbool.h>
-#include "osdep/endian.h"
-
#include "talloc.h"
#include "stream.h"
#include "options/m_option.h"
#include "options/m_config.h"
#include "options/options.h"
-#include "osdep/mpbswap.h"
#include "common/msg.h"
@@ -176,11 +173,6 @@ static int fill_buffer(stream_t *s, char *buffer, int max_len)
if (!buf)
return 0;
-#if BYTE_ORDER == BIG_ENDIAN
- for (i = 0; i < CDIO_CD_FRAMESIZE_RAW / 2; i++)
- buf[i] = le2me_16(buf[i]);
-#endif
-
p->sector++;
memcpy(buffer, buf, CDIO_CD_FRAMESIZE_RAW);