FFmpeg
Loading...
Searching...
No Matches
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 */
44static 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 */
An API-specific header for AV_HWDEVICE_TYPE_CUDA.
static int ff_cuda_cuarray_elem_size(CUarray_format fmt)
Return the element size in bytes for a CUarray_format, or 0 for unknown.