  
  void FfmpegEncoder::encoder_close() {
    if (!is_open) return;
  
    writer_close();
    avcodec_free_context(&codec_ctx);
    is_open = false;
  }
  
  int FfmpegEncoder::encode_frame(VisionBuf* buf, VisionIpcBufExtra *extra) {
 
</s> remove     writer_close();
 </s> add  </s> remove   writer_open(path);
 </s> add  </s> remove   void writer_open(const char* path) {
    if (this->write) write_handler_thread = std::thread(VideoEncoder::write_handler, this, path);
  }

  void writer_close() {
    if (this->write) {
      to_write.push(NULL);
      write_handler_thread.join();
    }
    assert(to_write.empty());
  }
 </s> add  </s> remove     bitrate(bitrate), codec(codec), out_width(out_width), out_height(out_height), write(write) { }
 </s> add     bitrate(bitrate), codec(codec), out_width(out_width), out_height(out_height) { } </s> remove               int bitrate, cereal::EncodeIndex::Type codec, int out_width, int out_height, bool write)
 </s> add               int bitrate, cereal::EncodeIndex::Type codec, int out_width, int out_height)
  
  void FfmpegEncoder::encoder_close() {
    if (!is_open) return;
  

    avcodec_free_context(&codec_ctx);
    is_open = false;
  }
  
  int FfmpegEncoder::encode_frame(VisionBuf* buf, VisionIpcBufExtra *extra) {
keep keep keep keep replace keep keep keep keep keep
 Encoderd: encoders don't write, they only encode (#28499)

* Encoders dont write, they encode

* Delete words

* unused

---------

Co-authored-by: Harald Schaefer <torq_boi@Haralds-MacBook-Air.local>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com> 
system/loggerd/encoder/ffmpeg_encoder.cc