diff options
| author | Tim Redfern <tim@eclectronics.org> | 2013-09-10 17:56:17 +0100 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2013-09-10 17:56:17 +0100 |
| commit | 1f52520db005e056e131f511418e4b71bc9e89fd (patch) | |
| tree | 77eae6d1cf04d63f157626b528fda010ceb03ade /rotord/src | |
| parent | c52e24e5c1d0f2b90412826dece31f1604f26683 (diff) | |
corrected response code for listnodes
Diffstat (limited to 'rotord/src')
| -rw-r--r-- | rotord/src/libavwrapper.cpp | 45 | ||||
| -rw-r--r-- | rotord/src/libavwrapper.h | 1 | ||||
| -rw-r--r-- | rotord/src/rotor.h | 2 | ||||
| -rw-r--r-- | rotord/src/rotord.cpp | 1 |
4 files changed, 16 insertions, 33 deletions
diff --git a/rotord/src/libavwrapper.cpp b/rotord/src/libavwrapper.cpp index 15a84d1..b7b5688 100644 --- a/rotord/src/libavwrapper.cpp +++ b/rotord/src/libavwrapper.cpp @@ -422,9 +422,9 @@ int libav::decoder::seekToFrameNew(int targetFrameIndex) bool libav::decoder::readNextFrame(int targetFrameIndex) { AVPacket packet = {0}; - av_init_packet(&packet); + //av_init_packet(&packet); //moved insode loop 100913 bool result = readNextFrameWithPacket(targetFrameIndex, packet, pRaw); - av_free_packet(&packet); + //av_free_packet(&packet); //moved insode loop 100913 return result; } @@ -434,7 +434,7 @@ bool libav::decoder::readNextFrameWithPacket(int targetFrameIndex, AVPacket& pac int finished = 0; do { finished = 0; - av_free_packet(&packet); + //av_free_packet(&packet); //moved insode loop 100913 int result; //if (!avtry(av_read_frame( container, &packet ), "Failed to read frame")) if (!avtry(av_read_packet( container, &packet ), "Failed to read packet")) @@ -474,10 +474,11 @@ bool libav::decoder::readNextFrameWithPacket(int targetFrameIndex, AVPacket& pac if (packet.size == 0) // packet.size==0 usually means EOF break; } + av_free_packet(&packet); } while ( (!finished) || (pYuv->best_effort_timestamp < targetFrameIndex)); // } while (!finished); - av_free_packet(&packet); + //av_free_packet(&packet); //moved insode loop 100913 if (format != PIX_FMT_NONE) { sws_scale(Sctx, // sws context @@ -1281,10 +1282,12 @@ void libav::exporter::open_video(AVFormatContext *oc, AVCodec *codec, AVStream * pkt.stream_index = st->index; - avcodec_free_frame(&frame); + //avcodec_free_frame(&frame); ///removed 091013 + // Write the compressed frame to the media file. // ret = av_interleaved_write_frame(oc, &pkt); + av_free_packet(&pkt); if (ret != 0) { //fprintf(stderr, "Error while writing audio frame: %s\n", // av_err2str(ret)); @@ -1344,7 +1347,7 @@ void libav::exporter::open_video(AVFormatContext *oc, AVCodec *codec, AVStream * exit(1); } //avcodec_free_frame(&frame); - av_free_packet(pkt); + av_free_packet(pkt); ///added 091013 } void libav::exporter::close_audio(AVFormatContext *oc, AVStream *st) @@ -1411,6 +1414,7 @@ void libav::exporter::open_video(AVFormatContext *oc, AVCodec *codec, AVStream * pkt.size = sizeof(AVPicture); ret = av_interleaved_write_frame(oc, &pkt); + av_free_packet(&pkt); ///added 091013 } else { AVPacket pkt = { 0 }; int got_packet; @@ -1436,8 +1440,11 @@ void libav::exporter::open_video(AVFormatContext *oc, AVCodec *codec, AVStream * } else { ret = 0; } + av_free_packet(&pkt); ///added 091013 } + + if (ret != 0) { //fprintf(stderr, "Error while writing video frame: %s\n", av_err2str(ret)); @@ -1590,31 +1597,7 @@ bool libav::audioloader::setup(const std::string &filename){ return frame; } - AVPacket* libav::audioloader::get_packet() { - - if (!ready) return nullptr; - - int ret=av_read_frame(formatContext, &packet); - if (ret<0) { - std::cerr << "finished with code "<<ret <<(ret==AVERROR_EOF?" ,EOF":"")<<std::endl; - ready=false; - return nullptr; - } - //if (packet.stream_index == audioStream->index) - //{ - //int bytes = - // avcodec_decode_audio4(codecContext, frame, &frameFinished, &packet); - - // Some frames rely on multiple packets, so we have to make sure the frame is finished before - // we can use it - //} - // You *must* call av_free_packet() after each call to av_read_frame() or else you'll leak memory - //av_free_packet(&packet);????? - //} - return &packet; - - } - uint16_t* libav::audioloader::get_samples(int num){ //presumes 16bpc here and outputs interleaved samples +uint16_t* libav::audioloader::get_samples(int num){ //presumes 16bpc here and outputs interleaved samples //std::cerr << "request "<<num<<" samples: "<<(ready?"ready":"not ready")<<std::endl; //if(!ready) return nullptr; //shuffle down samples diff --git a/rotord/src/libavwrapper.h b/rotord/src/libavwrapper.h index ed538d2..d30ea95 100644 --- a/rotord/src/libavwrapper.h +++ b/rotord/src/libavwrapper.h @@ -262,7 +262,6 @@ namespace libav { bool setup(const std::string &filename); AVFrame* get_frame(); uint16_t* get_samples(int num); - AVPacket* get_packet(); bool close(); bool ready; diff --git a/rotord/src/rotor.h b/rotord/src/rotor.h index 009d52f..eba5be1 100644 --- a/rotord/src/rotor.h +++ b/rotord/src/rotor.h @@ -613,7 +613,7 @@ namespace Rotor { image+=(*in); delete in; */ - in=(*in2); + in=(*in2); //removed allocator in*=parameters["amount"]->value; image+=in; break; diff --git a/rotord/src/rotord.cpp b/rotord/src/rotord.cpp index cdc38fe..bae169f 100644 --- a/rotord/src/rotord.cpp +++ b/rotord/src/rotord.cpp @@ -110,6 +110,7 @@ HTTPRequestHandler* RotorRequestHandlerFactory::createRequestHandler(const HTTPS Node_factory factory; factory.list_nodes(root); string content = writer.write(root); + status=HTTPResponse::HTTP_OK; return new RenderContextHandler(content, status); } } |
