summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/audioinputhandler.cc9
-rw-r--r--src/inputstreamer.cc7
-rw-r--r--src/soundplayer.cc4
3 files changed, 13 insertions, 7 deletions
diff --git a/src/audioinputhandler.cc b/src/audioinputhandler.cc
index 2961289..1a87f8c 100644
--- a/src/audioinputhandler.cc
+++ b/src/audioinputhandler.cc
@@ -46,15 +46,18 @@ AudioInputHandler::~AudioInputHandler()
void AudioInputHandler::run()
{
- char pcm[4096];
running = true;
+ int buffer_size = g_audiobackend->getBufferSize();
+ short *pcm = (short*)calloc(buffer_size, sizeof(short));
while(running) {
- int sz = g_audiobackend->read(pcm, sizeof(pcm));
+ int sz = g_audiobackend->read((char*)pcm, buffer_size * sizeof(short));
//printf("sz: %d\n", sz);
if(sz > 0) {
- framelist_t fl = oe.encode(pcm, sz);
+ framelist_t fl = oe.encode((char*)pcm, sz);
if(fl.size()) emit newAudio(fl);
}
}
+
+ free(pcm);
}
diff --git a/src/inputstreamer.cc b/src/inputstreamer.cc
index c7e5986..3eef76a 100644
--- a/src/inputstreamer.cc
+++ b/src/inputstreamer.cc
@@ -142,13 +142,16 @@ void InputStreamer::run()
lrtp_unpack(lrtp, packet, packetsize);
int n = 0;
int ret;
- char frame[512 * 1024]; // 512kbyte should be enough for even the larges
+ char frame[512 * 1024 * 4]; // 512kbyte should be enough for even the larges
// JPEG frames...
unsigned int csrc;
unsigned int ts;
while((ret = lrtp_dequeue_frame(lrtp, frame, sizeof(frame), &csrc, &ts))
!= 0) {
- if(ret < 0) printf("I:lrtp_dequeue_frame: %d\n", ret);
+ if(ret < 0) {
+ printf("I:lrtp_dequeue_frame: %d (frame skipped)\n", ret);
+ continue;
+ }
if(csrc == CSRC_V) {
// Video frame
Frame f(frame, ret);
diff --git a/src/soundplayer.cc b/src/soundplayer.cc
index 0ae978f..f54ff90 100644
--- a/src/soundplayer.cc
+++ b/src/soundplayer.cc
@@ -48,8 +48,8 @@ void SoundPlayer::run()
{
running = true;
- short *s = (short*)malloc(buffer_size * sizeof(short));
- memset(s, 0, sizeof(s));
+ short *s = (short*)calloc(buffer_size, sizeof(short));
+
while(running) {
for(int i = 0; i < buffer_size; i++) {
s[i] = ringbuffer[pread % RINGBUFFER];