cuda: Hide memory copy util function

The method was intended to be used by only cudaupload/download elements
and not ready to be a part of public API

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3545>
This commit is contained in:
Seungha Yang 2022-12-08 05:58:48 +09:00 committed by GStreamer Marge Bot
parent f588932547
commit e6585c89ea
4 changed files with 54 additions and 57 deletions

View file

@ -0,0 +1,52 @@
/* GStreamer
* Copyright (C) 2022 Seungha Yang <seungha@centricular.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#pragma once
#include "cuda-prelude.h"
#include "cuda-gst.h"
#include <gst/video/video.h>
G_BEGIN_DECLS
typedef enum
{
GST_CUDA_BUFFER_COPY_SYSTEM,
GST_CUDA_BUFFER_COPY_CUDA,
GST_CUDA_BUFFER_COPY_GL,
GST_CUDA_BUFFER_COPY_D3D11,
GST_CUDA_BUFFER_COPY_NVMM,
} GstCudaBufferCopyType;
GST_CUDA_API
const gchar * gst_cuda_buffer_copy_type_to_string (GstCudaBufferCopyType type);
GST_CUDA_API
gboolean gst_cuda_buffer_copy (GstBuffer * dst,
GstCudaBufferCopyType dst_type,
const GstVideoInfo * dst_info,
GstBuffer * src,
GstCudaBufferCopyType src_type,
const GstVideoInfo * src_info,
GstCudaContext * context,
CUstream stream);
G_END_DECLS

View file

@ -23,6 +23,7 @@
#include "gstcudautils.h"
#include "gstcudacontext.h"
#include "gstcuda-private.h"
#ifdef HAVE_NVCODEC_GST_GL
#include <gst/gl/gl.h>

View file

@ -184,63 +184,6 @@ void gst_cuda_graphics_resource_unmap (GstCudaGraphicsResource * reso
GST_CUDA_API
void gst_cuda_graphics_resource_free (GstCudaGraphicsResource * resource);
/**
* GstCudaBufferCopyType:
* @GST_CUDA_BUFFER_COPY_SYSTEM: Copy from/to system memory
* @GST_CUDA_BUFFER_COPY_CUDA: Copy from/to cuda memory
* @GST_CUDA_BUFFER_COPY_GL: Copy from/to GL memory
* @GST_CUDA_BUFFER_COPY_D3D11: Copy from/to D3D11 memory
* @GST_CUDA_BUFFER_COPY_NVMM: Copy from/to NVMM memory
*
* Since: 1.22
*/
typedef enum
{
GST_CUDA_BUFFER_COPY_SYSTEM,
GST_CUDA_BUFFER_COPY_CUDA,
GST_CUDA_BUFFER_COPY_GL,
GST_CUDA_BUFFER_COPY_D3D11,
GST_CUDA_BUFFER_COPY_NVMM,
} GstCudaBufferCopyType;
/**
* gst_cuda_buffer_copy_type_to_string:
* @type: The #GstCudaBufferCopyType to get name from
*
* Returns: The human readable name of @type
*
* Since: 1.22
*/
GST_CUDA_API
const gchar * gst_cuda_buffer_copy_type_to_string (GstCudaBufferCopyType type);
/**
* gst_cuda_buffer_copy:
* @dst: The buffer into which to copy @src content
* @dst_type: The #GstCudaBufferCopyType to copy @src into
* @dst_info: #GstVideoInfo defining @dst
* @src: The source buffer to copy
* @src_type: The #GstCudaBufferCopyType @src is in
* @src_info: $GstVideoInfo defining @src
* @context: The #GstCudaContext to use to copy @src into @dst
* @stream: The @CUStream to use to copy @src into @dst
*
* Copies @src into @dst with the specified arguments.
*
* Returns: %TRUE if the buffer could be copied %FALSE otherwise
*
* Since: 1.22
*/
GST_CUDA_API
gboolean gst_cuda_buffer_copy (GstBuffer * dst,
GstCudaBufferCopyType dst_type,
const GstVideoInfo * dst_info,
GstBuffer * src,
GstCudaBufferCopyType src_type,
const GstVideoInfo * src_info,
GstCudaContext * context,
CUstream stream);
G_END_DECLS
#endif /* __GST_CUDA_UTILS_H__ */

View file

@ -42,6 +42,7 @@
#include "gstcudamemorycopy.h"
#include "gstcudaformat.h"
#include <gst/cuda/gstcudautils.h>
#include <gst/cuda/gstcuda-private.h>
#ifdef HAVE_NVCODEC_NVMM
#include "gstcudanvmm.h"
#endif