encoder/VideoWriter: remove unnecessary call to `avcodec_close` (#29039)

old-commit-hash: 95e9232963
beeps
Dean Lee 2 years ago committed by GitHub
parent c6d12893f6
commit 9bb3316925
  1. 4
      system/loggerd/video_writer.cc
  2. 5
      system/loggerd/video_writer.h

@ -1,6 +1,5 @@
#pragma clang diagnostic ignored "-Wdeprecated-declarations" #pragma clang diagnostic ignored "-Wdeprecated-declarations"
#include <cassert> #include <cassert>
#include <cstdlib>
#include "system/loggerd/video_writer.h" #include "system/loggerd/video_writer.h"
#include "common/swaglog.h" #include "common/swaglog.h"
@ -8,7 +7,6 @@
VideoWriter::VideoWriter(const char *path, const char *filename, bool remuxing, int width, int height, int fps, cereal::EncodeIndex::Type codec) VideoWriter::VideoWriter(const char *path, const char *filename, bool remuxing, int width, int height, int fps, cereal::EncodeIndex::Type codec)
: remuxing(remuxing) { : remuxing(remuxing) {
raw = codec == cereal::EncodeIndex::Type::BIG_BOX_LOSSLESS;
vid_path = util::string_format("%s/%s", path, filename); vid_path = util::string_format("%s/%s", path, filename);
lock_path = util::string_format("%s/%s.lock", path, filename); lock_path = util::string_format("%s/%s.lock", path, filename);
@ -18,6 +16,7 @@ VideoWriter::VideoWriter(const char *path, const char *filename, bool remuxing,
LOGD("encoder_open %s remuxing:%d", this->vid_path.c_str(), this->remuxing); LOGD("encoder_open %s remuxing:%d", this->vid_path.c_str(), this->remuxing);
if (this->remuxing) { if (this->remuxing) {
bool raw = (codec == cereal::EncodeIndex::Type::BIG_BOX_LOSSLESS);
avformat_alloc_output_context2(&this->ofmt_ctx, NULL, raw ? "matroska" : NULL, this->vid_path.c_str()); avformat_alloc_output_context2(&this->ofmt_ctx, NULL, raw ? "matroska" : NULL, this->vid_path.c_str());
assert(this->ofmt_ctx); assert(this->ofmt_ctx);
@ -98,7 +97,6 @@ void VideoWriter::write(uint8_t *data, int len, long long timestamp, bool codecc
VideoWriter::~VideoWriter() { VideoWriter::~VideoWriter() {
if (this->remuxing) { if (this->remuxing) {
if (this->raw) { avcodec_close(this->codec_ctx); }
int err = av_write_trailer(this->ofmt_ctx); int err = av_write_trailer(this->ofmt_ctx);
if (err != 0) LOGE("av_write_trailer failed %d", err); if (err != 0) LOGE("av_write_trailer failed %d", err);
avcodec_free_context(&this->codec_ctx); avcodec_free_context(&this->codec_ctx);

@ -16,11 +16,10 @@ public:
~VideoWriter(); ~VideoWriter();
private: private:
std::string vid_path, lock_path; std::string vid_path, lock_path;
FILE *of = nullptr; FILE *of = nullptr;
AVCodecContext *codec_ctx; AVCodecContext *codec_ctx;
AVFormatContext *ofmt_ctx; AVFormatContext *ofmt_ctx;
AVStream *out_stream; AVStream *out_stream;
bool remuxing, raw; bool remuxing;
}; };

Loading…
Cancel
Save