FFmpeg
hwcontext_cuda_internal.h
Go to the documentation of this file.
1 /*
2  * This file is part of FFmpeg.
3  *
4  * FFmpeg is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * FFmpeg is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with FFmpeg; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 
20 #ifndef AVUTIL_HWCONTEXT_CUDA_INTERNAL_H
21 #define AVUTIL_HWCONTEXT_CUDA_INTERNAL_H
22 
24 #include "hwcontext_cuda.h"
25 
26 /**
27  * @file
28  * FFmpeg internal API for CUDA.
29  */
30 
32  CudaFunctions *cuda_dl;
34  CUdevice cuda_device;
35  int flags;
36 };
37 
38 /**
39  * Return the element size in bytes for a CUarray_format, or 0 for unknown.
40  *
41  * Used to compute frame->linesize[] for CUarray frames (block-linear).
42  * Callers that need a fallback should treat a 0 return as an error.
43  */
44 static inline int ff_cuda_cuarray_elem_size(CUarray_format fmt)
45 {
46  switch (fmt) {
47  case CU_AD_FORMAT_UNSIGNED_INT8:
48  case CU_AD_FORMAT_SIGNED_INT8: return 1;
49  case CU_AD_FORMAT_UNSIGNED_INT16:
50  case CU_AD_FORMAT_SIGNED_INT16:
51  case CU_AD_FORMAT_HALF: return 2;
52  case CU_AD_FORMAT_UNSIGNED_INT32:
53  case CU_AD_FORMAT_SIGNED_INT32:
54  case CU_AD_FORMAT_FLOAT: return 4;
55  default: return 0;
56  }
57 }
58 
59 #endif /* AVUTIL_HWCONTEXT_CUDA_INTERNAL_H */
ff_cuda_cuarray_elem_size
static int ff_cuda_cuarray_elem_size(CUarray_format fmt)
Return the element size in bytes for a CUarray_format, or 0 for unknown.
Definition: hwcontext_cuda_internal.h:44
AVCUDADeviceContextInternal
Definition: hwcontext_cuda_internal.h:31
AVCUDADeviceContextInternal::is_allocated
int is_allocated
Definition: hwcontext_cuda_internal.h:33
AVCUDADeviceContextInternal::cuda_device
CUdevice cuda_device
Definition: hwcontext_cuda_internal.h:34
hwcontext_cuda.h
AVCUDADeviceContextInternal::flags
int flags
Definition: hwcontext_cuda_internal.h:35
AVCUDADeviceContextInternal::cuda_dl
CudaFunctions * cuda_dl
Definition: hwcontext_cuda_internal.h:32