#ifndef MEDIA_BASE_VIDEO_FRAME_CONVERTER_INTERNALS_H_
#define MEDIA_BASE_VIDEO_FRAME_CONVERTER_INTERNALS_H_
#include "media/base/video_frame.h"
#include "third_party/libyuv/include/libyuv.h"
namespace media::internals {
bool ARGBScale(const VideoFrame& src_frame,
VideoFrame& dst_frame,
libyuv::FilterMode filter);
bool ARGBToI420x(const VideoFrame& src_frame, VideoFrame& dst_frame);
bool ARGBToI444x(const VideoFrame& src_frame, VideoFrame& dst_frame);
bool ARGBToNV12x(const VideoFrame& src_frame, VideoFrame& dst_frame);
bool ABGRToARGB(const VideoFrame& src_frame, VideoFrame& dst_frame);
void I4xxxScale(const VideoFrame& src_frame, VideoFrame& dst_frame);
bool I420xToNV12x(const VideoFrame& src_frame, VideoFrame& dst_frame);
bool I444xToNV12x(const VideoFrame& src_frame, VideoFrame& dst_frame);
void MergeUV(const VideoFrame& src_frame, VideoFrame& dst_frame);
void SplitUV(const VideoFrame& src_frame, VideoFrame& dst_frame);
bool NV12xScale(const VideoFrame& src_frame,
VideoFrame& dst_frame,
libyuv::FilterMode filter);
bool NV12xToI420x(const VideoFrame& src_frame, VideoFrame& dst_frame);
}
#endif