FFmpeg 7.1.1
Loading...
Searching...
No Matches
videotoolbox.h
Go to the documentation of this file.
1/*
2 * Videotoolbox hardware acceleration
3 *
4 * copyright (c) 2012 Sebastien Zwickert
5 *
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23#ifndef AVCODEC_VIDEOTOOLBOX_H
24#define AVCODEC_VIDEOTOOLBOX_H
25
26/**
27 * @file
28 * @ingroup lavc_codec_hwaccel_videotoolbox
29 * Public libavcodec Videotoolbox header.
30 */
31
32/**
33 * @defgroup lavc_codec_hwaccel_videotoolbox VideoToolbox Decoder
34 * @ingroup lavc_codec_hwaccel
35 *
36 * Hardware accelerated decoding using VideoToolbox on Apple Platforms
37 *
38 * @{
39 */
40
41#include <stdint.h>
42
43#define Picture QuickdrawPicture
44#include <VideoToolbox/VideoToolbox.h>
45#undef Picture
46
47#include "libavcodec/avcodec.h"
48
50
51/**
52 * This struct holds all the information that needs to be passed
53 * between the caller and libavcodec for initializing Videotoolbox decoding.
54 * Its size is not a part of the public ABI, it must be allocated with
55 * av_videotoolbox_alloc_context() and freed with av_free().
56 */
57typedef struct AVVideotoolboxContext {
58 /**
59 * Videotoolbox decompression session object.
60 */
61 VTDecompressionSessionRef session;
62
63 /**
64 * CVPixelBuffer Format Type that Videotoolbox will use for decoded frames.
65 * set by the caller. If this is set to 0, then no specific format is
66 * requested from the decoder, and its native format is output.
67 */
69
70 /**
71 * CoreMedia Format Description that Videotoolbox will use to create the decompression session.
72 */
73 CMVideoFormatDescriptionRef cm_fmt_desc;
74
75 /**
76 * CoreMedia codec type that Videotoolbox will use to create the decompression session.
77 */
80
81/**
82 * @}
83 */
84
85#endif /* AVCODEC_VIDEOTOOLBOX_H */
Macro definitions for various function/variable attributes.
Libavcodec external API header.
This struct holds all the information that needs to be passed between the caller and libavcodec for i...
int cm_codec_type
CoreMedia codec type that Videotoolbox will use to create the decompression session.
CMVideoFormatDescriptionRef cm_fmt_desc
CoreMedia Format Description that Videotoolbox will use to create the decompression session.
OSType cv_pix_fmt_type
CVPixelBuffer Format Type that Videotoolbox will use for decoded frames.
VTDecompressionSessionRef session
Videotoolbox decompression session object.