FFmpeg
9.0.2
Toggle main menu visibility
Loading...
Searching...
No Matches
libavutil
hwcontext_videotoolbox.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
#ifndef AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H
20
#define AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H
21
22
#include <stdint.h>
23
24
#include <VideoToolbox/VideoToolbox.h>
25
26
#include "
frame.h
"
27
#include "
pixfmt.h
"
28
29
/**
30
* @file
31
* An API-specific header for AV_HWDEVICE_TYPE_VIDEOTOOLBOX.
32
*
33
* This API supports frame allocation using a native CVPixelBufferPool
34
* instead of an AVBufferPool.
35
*
36
* If the API user sets a custom pool, AVHWFramesContext.pool must return
37
* AVBufferRefs whose data pointer is a CVImageBufferRef or CVPixelBufferRef.
38
* Note that the underlying CVPixelBuffer could be retained by OS frameworks
39
* depending on application usage, so it is preferable to let CoreVideo manage
40
* the pool using the default implementation.
41
*
42
* Currently AVHWDeviceContext.hwctx are always NULL.
43
*/
44
45
typedef
struct
AVVTFramesContext
{
46
enum
AVColorRange
color_range
;
47
}
AVVTFramesContext
;
48
49
/**
50
* Convert a VideoToolbox (actually CoreVideo) format to AVPixelFormat.
51
* Returns AV_PIX_FMT_NONE if no known equivalent was found.
52
*/
53
enum
AVPixelFormat
av_map_videotoolbox_format_to_pixfmt
(uint32_t cv_fmt);
54
55
/**
56
* Convert an AVPixelFormat to a VideoToolbox (actually CoreVideo) format.
57
* Returns 0 if no known equivalent was found.
58
*/
59
uint32_t
av_map_videotoolbox_format_from_pixfmt
(
enum
AVPixelFormat
pix_fmt
);
60
61
/**
62
* Same as av_map_videotoolbox_format_from_pixfmt function, but can map and
63
* return full range pixel formats via a flag.
64
*/
65
uint32_t
av_map_videotoolbox_format_from_pixfmt2
(
enum
AVPixelFormat
pix_fmt
,
bool
full_range);
66
67
/**
68
* Convert an AVChromaLocation to a VideoToolbox/CoreVideo chroma location string.
69
* Returns 0 if no known equivalent was found.
70
*/
71
CFStringRef
av_map_videotoolbox_chroma_loc_from_av
(
enum
AVChromaLocation
loc);
72
73
/**
74
* Convert an AVColorSpace to a VideoToolbox/CoreVideo color matrix string.
75
* Returns 0 if no known equivalent was found.
76
*/
77
CFStringRef
av_map_videotoolbox_color_matrix_from_av
(
enum
AVColorSpace
space);
78
79
/**
80
* Convert an AVColorPrimaries to a VideoToolbox/CoreVideo color primaries string.
81
* Returns 0 if no known equivalent was found.
82
*/
83
CFStringRef
av_map_videotoolbox_color_primaries_from_av
(
enum
AVColorPrimaries
pri);
84
85
/**
86
* Convert an AVColorTransferCharacteristic to a VideoToolbox/CoreVideo color transfer
87
* function string.
88
* Returns 0 if no known equivalent was found.
89
*/
90
CFStringRef
av_map_videotoolbox_color_trc_from_av
(
enum
AVColorTransferCharacteristic
trc);
91
92
/**
93
* Set CVPixelBufferRef's metadata based on an AVFrame.
94
*
95
* Sets/unsets the CVPixelBuffer attachments to match as closely as possible the
96
* AVFrame metadata. To prevent inconsistent attachments, the attachments for properties
97
* that could not be matched or are unspecified in the given AVFrame are unset. So if
98
* any attachments already covered by AVFrame metadata need to be set to a specific
99
* value, this should happen after calling this function.
100
*
101
* Returns < 0 in case of an error.
102
*/
103
int
av_vt_pixbuf_set_attachments
(
void
*log_ctx,
104
CVPixelBufferRef pixbuf,
const
struct
AVFrame
*src);
105
106
#endif
/* AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H */
pix_fmt
static enum AVPixelFormat pix_fmt
Definition
demux_decode.c:41
frame.h
reference-counted frame API
av_map_videotoolbox_chroma_loc_from_av
CFStringRef av_map_videotoolbox_chroma_loc_from_av(enum AVChromaLocation loc)
Convert an AVChromaLocation to a VideoToolbox/CoreVideo chroma location string.
av_vt_pixbuf_set_attachments
int av_vt_pixbuf_set_attachments(void *log_ctx, CVPixelBufferRef pixbuf, const struct AVFrame *src)
Set CVPixelBufferRef's metadata based on an AVFrame.
av_map_videotoolbox_format_to_pixfmt
enum AVPixelFormat av_map_videotoolbox_format_to_pixfmt(uint32_t cv_fmt)
Convert a VideoToolbox (actually CoreVideo) format to AVPixelFormat.
av_map_videotoolbox_color_matrix_from_av
CFStringRef av_map_videotoolbox_color_matrix_from_av(enum AVColorSpace space)
Convert an AVColorSpace to a VideoToolbox/CoreVideo color matrix string.
av_map_videotoolbox_color_primaries_from_av
CFStringRef av_map_videotoolbox_color_primaries_from_av(enum AVColorPrimaries pri)
Convert an AVColorPrimaries to a VideoToolbox/CoreVideo color primaries string.
av_map_videotoolbox_format_from_pixfmt
uint32_t av_map_videotoolbox_format_from_pixfmt(enum AVPixelFormat pix_fmt)
Convert an AVPixelFormat to a VideoToolbox (actually CoreVideo) format.
av_map_videotoolbox_format_from_pixfmt2
uint32_t av_map_videotoolbox_format_from_pixfmt2(enum AVPixelFormat pix_fmt, bool full_range)
Same as av_map_videotoolbox_format_from_pixfmt function, but can map and return full range pixel form...
av_map_videotoolbox_color_trc_from_av
CFStringRef av_map_videotoolbox_color_trc_from_av(enum AVColorTransferCharacteristic trc)
Convert an AVColorTransferCharacteristic to a VideoToolbox/CoreVideo color transfer function string.
pixfmt.h
pixel format definitions
AVChromaLocation
AVChromaLocation
Location of chroma samples.
Definition
pixfmt.h:796
AVColorRange
AVColorRange
Visual content value range.
Definition
pixfmt.h:742
AVPixelFormat
AVPixelFormat
Pixel format.
Definition
pixfmt.h:71
AVColorPrimaries
AVColorPrimaries
Chromaticity coordinates of the source primaries.
Definition
pixfmt.h:636
AVColorTransferCharacteristic
AVColorTransferCharacteristic
Color Transfer Characteristic.
Definition
pixfmt.h:666
AVColorSpace
AVColorSpace
YUV colorspace type.
Definition
pixfmt.h:700
AVFrame
This structure describes decoded (raw) audio or video data.
Definition
frame.h:466
AVVTFramesContext
Definition
hwcontext_videotoolbox.h:45
AVVTFramesContext::color_range
enum AVColorRange color_range
Definition
hwcontext_videotoolbox.h:46
Generated by
1.17.0