diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2014-10-01 18:56:24 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2014-10-01 18:56:24 +0200 |
commit | 6d1bc935a6982f045298dc074f0867c2431c3d24 (patch) | |
tree | 33ebf02a13afa41c7e2da14c604ca5e706a25475 | |
parent | 0b1a19c17abd0af5adf06b46e25c8bf10a3d81a5 (diff) |
Use buffer size from audiobackend in output code.
-rw-r--r-- | src/audioinputhandler.cc | 9 | ||||
-rw-r--r-- | src/inputstreamer.cc | 7 | ||||
-rw-r--r-- | src/soundplayer.cc | 4 |
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]; |