summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2014-10-01 18:56:24 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2014-10-01 18:56:24 +0200
commit6d1bc935a6982f045298dc074f0867c2431c3d24 (patch)
tree33ebf02a13afa41c7e2da14c604ca5e706a25475
parent0b1a19c17abd0af5adf06b46e25c8bf10a3d81a5 (diff)
Use buffer size from audiobackend in output code.
-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];