From 14f3d350aa7c9abfd8bc394e87177d3f9e6b8d87 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Mon, 27 May 2013 17:22:16 +0100 Subject: adding audio output to avwrapper --- rotord/rotor.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'rotord/rotor.cpp') diff --git a/rotord/rotor.cpp b/rotord/rotor.cpp index 83a3b8f..bd1ace9 100755 --- a/rotord/rotor.cpp +++ b/rotord/rotor.cpp @@ -194,10 +194,11 @@ bool Video_output::render(const float duration, const float framerate,const stri float spct=100.0f/duration; - if (exporter->setup(outW,outH,bitRate,frameRate,container)) { //codecId, - if (exporter->record(output_filename)) { + //if (exporter->setup(outW,outH,bitRate,frameRate,container)) { //codecId, + // if (exporter->record(output_filename)) { + libav::encoder encoder=libav::encoder(output_filename.c_str(),outW,outH,framerate); - cerr << "Rotor: Video_output rendering " << duration << " seconds at " << framerate << " fps, audio frame size: " << exporter->get_audio_framesize()<get_audio_framesize()<encodeFrame(audioloader.get_samples(exporter->get_audio_framesize())); - af+=exporter->get_audio_step(); + //exporter->encodeFrame(audioloader.get_samples(exporter->get_audio_framesize())); + //af+=exporter->get_audio_step(); + uint16_t *s=audioloader.get_samples(encoder.get_audio_framesize()); + encoder.write_frame(af,s); //crashes + af+=encoder.get_audio_step(); } Image* i=get_output(Frame_spec(vf,framerate,duration,outW,outH)); if (i) { - exporter->encodeFrame(i->RGBdata); + //exporter->encodeFrame(i->RGBdata); + + //encoder->picture_rgb.pts=; + encoder.write_frame(vf,i->RGBdata); } vf+=vstep; progress=vf/duration; } - exporter->finishRecord(); + //exporter->finishRecord(); cerr << "Rotor: Video_output finished "<< endl; return true; - } - } + // } + //} return false; } -- cgit v1.2.3