From ff59340614ec150e4bd84d3554081e666970aef2 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Fri, 3 May 2013 18:25:26 +0100 Subject: elusive hang while rendering --- rotord/libavaudioloader.cpp | 52 ++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 22 deletions(-) (limited to 'rotord/libavaudioloader.cpp') diff --git a/rotord/libavaudioloader.cpp b/rotord/libavaudioloader.cpp index 03919f0..ef84560 100644 --- a/rotord/libavaudioloader.cpp +++ b/rotord/libavaudioloader.cpp @@ -152,42 +152,50 @@ uint16_t* libav::Audioloader::get_samples(int num){ //presumes 16bpc here //std::cerr << "request "<0){ for (int i=0;inb_samples))*av_frame_get_channels(frame))>buffer.size()){ - int m=buffer.size(); - int s=((sample_end+std::max(num,frame->nb_samples))*av_frame_get_channels(frame)); - buffer.reserve(s); - std::cerr << "audioloader reserved buffer to " << s << std::endl; - for (int i=m;inb_samples))*channels)>buffer.size()){ + int m=buffer.size(); + int s=((sample_end+std::max(num,frame->nb_samples))*channels); + buffer.reserve(s); + std::cerr << "audioloader reserved buffer to " << s << std::endl; + for (int i=m;inb_samples;i++) { + for (int j=0;jchannels)+j]= ((uint16_t*) frame->buf[j]->data)[i]; + //temporarily disabled audio as its is SIGSEV with audio from delorentos + + + //buffer[(j*frame->channels)+(sample_end+i)]= ((uint16_t*) frame->buf[j]->data)[i]; ??planar?? nope + } + } + sample_end+=frame->nb_samples; } - if (!frame) { - for (int i=0;inb_samples)*frame->channels)<nb_samples;i++) { - for (int j=0;jchannels)+j]= ((uint16_t*) frame->buf[j]->data)[i]; - //temporarily disabled audio as its is SIGSEV with audio from delorentos - - - //buffer[(j*frame->channels)+(sample_end+i)]= ((uint16_t*) frame->buf[j]->data)[i]; ??planar?? nope - } - } - sample_end+=frame->nb_samples; + //avcodec_free_frame(&frame); } if (sample_end>num) { -- cgit v1.2.3