// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COBALT_MEDIA_BASE_SIMD_FILTER_YUV_H_
#define COBALT_MEDIA_BASE_SIMD_FILTER_YUV_H_

#include "cobalt/media/base/media_export.h"
#include "starboard/types.h"

namespace cobalt {
namespace media {

// These methods are exported for testing purposes only.  Library users should
// only call the methods listed in yuv_convert.h.

MEDIA_EXPORT void FilterYUVRows_C(uint8_t* ybuf, const uint8_t* y0_ptr,
                                  const uint8_t* y1_ptr, int source_width,
                                  uint8_t source_y_fraction);

MEDIA_EXPORT void FilterYUVRows_SSE2(uint8_t* ybuf, const uint8_t* y0_ptr,
                                     const uint8_t* y1_ptr, int source_width,
                                     uint8_t source_y_fraction);

}  // namespace media
}  // namespace cobalt

#endif  // COBALT_MEDIA_BASE_SIMD_FILTER_YUV_H_
