summaryrefslogtreecommitdiff
path: root/rotord/src
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2013-09-10 17:56:17 +0100
committerTim Redfern <tim@eclectronics.org>2013-09-10 17:56:17 +0100
commit1f52520db005e056e131f511418e4b71bc9e89fd (patch)
tree77eae6d1cf04d63f157626b528fda010ceb03ade /rotord/src
parentc52e24e5c1d0f2b90412826dece31f1604f26683 (diff)
corrected response code for listnodes
Diffstat (limited to 'rotord/src')
-rw-r--r--rotord/src/libavwrapper.cpp45
-rw-r--r--rotord/src/libavwrapper.h1
-rw-r--r--rotord/src/rotor.h2
-rw-r--r--rotord/src/rotord.cpp1
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);
}
}