diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2015-03-29 16:29:20 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2015-03-29 16:29:20 +0200 |
commit | 2cf75c9364300274bcb131d2a6adf50eab12831d (patch) | |
tree | 1ad2765fd045b13f907ced3ab5f040bf82ecc5c6 /vlc_input.c | |
parent | 8861236aa6ced1e0a5ff67e739ad8130d5093e10 (diff) | |
download | toolame-dab-2cf75c9364300274bcb131d2a6adf50eab12831d.tar.gz toolame-dab-2cf75c9364300274bcb131d2a6adf50eab12831d.tar.bz2 toolame-dab-2cf75c9364300274bcb131d2a6adf50eab12831d.zip |
Fix vlc input error handling
Diffstat (limited to 'vlc_input.c')
-rw-r--r-- | vlc_input.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/vlc_input.c b/vlc_input.c index 1abf9d1..07cb859 100644 --- a/vlc_input.c +++ b/vlc_input.c @@ -142,13 +142,10 @@ int vlc_in_prepare(unsigned verbosity, unsigned int rate, const char* uri) head_buffer = vlc_buffer_new(); // Start playing - libvlc_media_player_play(m_mp); - - fprintf(stderr, "VLC launched.\n"); - return 0; + return libvlc_media_player_play(m_mp); } -size_t vlc_in_read(void *buf, size_t len) +ssize_t vlc_in_read(void *buf, size_t len) { size_t requested = len; for (;;) { @@ -197,6 +194,11 @@ size_t vlc_in_read(void *buf, size_t len) pthread_mutex_unlock(&buffer_lock); usleep(100); + + libvlc_media_t *media = libvlc_media_player_get_media(m_mp); + if (libvlc_media_get_state(media) == libvlc_Error) { + return -1; + } } abort(); |