/*
 *  Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#include "webrtc/rtc_base/checks.h"
#include "webrtc/rtc_base/logging.h"
#include "webrtc/test/testsupport/frame_writer.h"


namespace webrtc {
namespace test {

JpegFrameWriter::JpegFrameWriter(const std::string& /*output_filename*/) {}

bool JpegFrameWriter::WriteFrame(const VideoFrame& /*input_frame*/,
                                 int /*quality*/) {
  LOG(LS_WARNING) << "Libjpeg isn't available on IOS. Jpeg frame writer is not "
      "supported. No frame will be saved.";
  // Don't fail.
  return true;
}

}  // namespace test
}  // namespace webrtc
