diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2015-04-10 16:50:16 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2015-04-10 16:50:16 +0200 |
commit | 84f66b075a9565057dd27906dfbe91cc95d37a70 (patch) | |
tree | a88c42cc94ce67ed7d56dd0da7d7a5cc61c080df | |
parent | de30b580cc7ad6a81429e3e5815b54916819cd50 (diff) | |
download | toolame-dab-84f66b075a9565057dd27906dfbe91cc95d37a70.tar.gz toolame-dab-84f66b075a9565057dd27906dfbe91cc95d37a70.tar.bz2 toolame-dab-84f66b075a9565057dd27906dfbe91cc95d37a70.zip |
VLC input: add support for mono
-rw-r--r-- | toolame.c | 3 | ||||
-rw-r--r-- | vlc_input.c | 10 | ||||
-rw-r--r-- | vlc_input.h | 6 |
3 files changed, 15 insertions, 4 deletions
@@ -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); |