From f168d7357aa97410e266ffdec08f397d70aae1ff Mon Sep 17 00:00:00 2001
From: Tristan Matthews <tristan.matthews@savoirfairelinux.com>
Date: Wed, 8 Jan 2014 17:41:02 -0500
Subject: [PATCH] * #38241: opus: add return code checking

---
 daemon/src/audio/codecs/opus.cpp | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/daemon/src/audio/codecs/opus.cpp b/daemon/src/audio/codecs/opus.cpp
index f105465ee4..d714e6b08f 100644
--- a/daemon/src/audio/codecs/opus.cpp
+++ b/daemon/src/audio/codecs/opus.cpp
@@ -83,28 +83,40 @@ Opus::getSDPChannels() const
 
 int Opus::decode(SFLAudioSample *dst, unsigned char *buf, size_t buffer_size)
 {
-    return opus_decode(decoder_, buf, buffer_size, dst, FRAME_SIZE, 0);
+    const int ret = opus_decode(decoder_, buf, buffer_size, dst, FRAME_SIZE, 0);
+    if (ret < 0)
+        std::cerr << opus_strerror(ret) << std::endl;
+    return ret;
 }
 
 int Opus::encode(unsigned char *dst, SFLAudioSample *src, size_t buffer_size)
 {
-    return opus_encode(encoder_, src, FRAME_SIZE, dst, buffer_size * 2);
+    const int ret = opus_encode(encoder_, src, FRAME_SIZE, dst, buffer_size * 2);
+    if (ret < 0)
+        std::cerr << opus_strerror(ret) << std::endl;
+    return ret;
 }
 
 int Opus::decode(std::vector<std::vector<SFLAudioSample> > &dst, unsigned char *buf, size_t buffer_size)
 {
     if (buf == NULL) return 0;
 
-    unsigned samples = opus_decode(decoder_, buf, buffer_size, dst[0].data(), sizeof(SFLAudioSample) * FRAME_SIZE, 0);
+    const int ret = opus_decode(decoder_, buf, buffer_size, dst[0].data(), sizeof(SFLAudioSample) * FRAME_SIZE, 0);
+    if (ret < 0)
+        std::cerr << opus_strerror(ret) << std::endl;
 
-    return samples;
+    return ret;
 }
 
 int Opus::encode(unsigned char *dst, std::vector<std::vector<SFLAudioSample> > &src, size_t buffer_size)
 {
     if (dst == NULL) return 0;
 
-    return opus_encode(encoder_, src[0].data(), FRAME_SIZE, dst, buffer_size * sizeof(SFLAudioSample));
+    const int ret = opus_encode(encoder_, src[0].data(), FRAME_SIZE, dst, buffer_size * sizeof(SFLAudioSample));
+    if (ret < 0)
+        std::cerr << opus_strerror(ret) << std::endl;
+
+    return ret;
 }
 
 
-- 
GitLab