// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_GPU_VAAPI_H264_VAAPI_VIDEO_ENCODER_DELEGATE_H_ #define MEDIA_GPU_VAAPI_H264_VAAPI_VIDEO_ENCODER_DELEGATE_H_ #include <optional> #include "base/containers/circular_deque.h" #include "media/filters/h26x_annex_b_bitstream_builder.h" #include "media/gpu/h264_dpb.h" #include "media/gpu/h264_ratectrl_rtc.h" #include "media/gpu/vaapi/vaapi_video_encoder_delegate.h" namespace media { class VaapiWrapper; struct H264RateControllerSettings; H264RateControlConfigRTC; struct H264FrameParamsRTC; // Wrapper for the H264RateCtrlRTC that allows us to override methods for unit // testing. class H264RateControlWrapper { … }; // This class provides an H264 encoder functionality, generating stream headers, // managing encoder state, reference frames, and other codec parameters, while // requiring support from an Accelerator to encode frame data based on these // parameters. // // This class must be created, called and destroyed on a single sequence. // // Names used in documentation of this class refer directly to naming used // in the H.264 specification (http://www.itu.int/rec/T-REC-H.264). class H264VaapiVideoEncoderDelegate : public VaapiVideoEncoderDelegate { … }; } // namespace media #endif // MEDIA_GPU_VAAPI_H264_VAAPI_VIDEO_ENCODER_DELEGATE_H_