aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2015-04-10 16:50:16 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2015-04-10 16:50:16 +0200
commit84f66b075a9565057dd27906dfbe91cc95d37a70 (patch)
treea88c42cc94ce67ed7d56dd0da7d7a5cc61c080df
parentde30b580cc7ad6a81429e3e5815b54916819cd50 (diff)
downloadtoolame-dab-84f66b075a9565057dd27906dfbe91cc95d37a70.tar.gz
toolame-dab-84f66b075a9565057dd27906dfbe91cc95d37a70.tar.bz2
toolame-dab-84f66b075a9565057dd27906dfbe91cc95d37a70.zip
VLC input: add support for mono
-rw-r--r--toolame.c3
-rw-r--r--vlc_input.c10
-rw-r--r--vlc_input.h6
3 files changed, 15 insertions, 4 deletions
diff --git a/toolame.c b/toolame.c
index 8d18b44..b09bc3d 100644
--- a/toolame.c
+++ b/toolame.c
@@ -1063,7 +1063,8 @@ void parse_args (int argc, char **argv, frame_info * frame, int *psy,
exit (1);
}
*num_samples = MAX_U_32_NUM;
- if (vlc_in_prepare(glopts.verbosity, samplerate, inPath) != 0) {
+ int channels = (header->mode == MPG_MD_MONO) ? 1 : 2;
+ if (vlc_in_prepare(glopts.verbosity, samplerate, inPath, channels) != 0) {
fprintf(stderr, "VLC initialisation failed\n");
exit(1);
}
diff --git a/vlc_input.c b/vlc_input.c
index 1a73cb9..ab59f53 100644
--- a/vlc_input.c
+++ b/vlc_input.c
@@ -11,6 +11,7 @@ libvlc_instance_t *m_vlc;
libvlc_media_player_t *m_mp;
unsigned int vlc_rate;
+unsigned int vlc_channels;
struct vlc_buffer *head_buffer;
@@ -66,7 +67,7 @@ void handleStream(
size_t size,
int64_t pts)
{
- assert(channels == 2);
+ assert(channels == vlc_channels);
assert(rate == vlc_rate);
assert(bits_per_sample == 16);
@@ -99,11 +100,16 @@ void handleStream(
}
}
-int vlc_in_prepare(unsigned verbosity, unsigned int rate, const char* uri)
+int vlc_in_prepare(
+ unsigned verbosity,
+ unsigned int rate,
+ const char* uri,
+ unsigned channels)
{
fprintf(stderr, "Initialising VLC...\n");
vlc_rate = rate;
+ vlc_channels = channels;
// VLC options
char smem_options[512];
diff --git a/vlc_input.h b/vlc_input.h
index 1614ae3..aaf95f7 100644
--- a/vlc_input.h
+++ b/vlc_input.h
@@ -34,7 +34,11 @@ void handleStream(
int64_t pts);
// Open the VLC input
-int vlc_in_prepare(unsigned verbosity, unsigned int rate, const char* uri);
+int vlc_in_prepare(
+ unsigned verbosity,
+ unsigned int rate,
+ const char* uri,
+ unsigned channels);
// Read len audio bytes into buf
ssize_t vlc_in_read(void *buf, size_t len);