FFmpeg
4.0
libavcodec
vt_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
#ifndef AVCODEC_VT_INTERNAL_H
20
#define AVCODEC_VT_INTERNAL_H
21
22
typedef
struct
VTContext
{
23
// The current bitstream buffer.
24
uint8_t
*
bitstream
;
25
26
// The current size of the bitstream.
27
int
bitstream_size
;
28
29
// The reference size used for fast reallocation.
30
int
allocated_size
;
31
32
// The core video buffer
33
CVImageBufferRef
frame
;
34
35
// Current dummy frames context (depends on exact CVImageBufferRef params).
36
struct
AVBufferRef
*
cached_hw_frames_ctx
;
37
38
// Non-NULL if the new hwaccel API is used. This is only a separate struct
39
// to ease compatibility with the old API.
40
struct
AVVideotoolboxContext
*
vt_ctx
;
41
42
// Current H264 parameters (used to trigger decoder restart on SPS changes).
43
uint8_t
sps
[3];
44
bool
reconfig_needed
;
45
}
VTContext
;
46
47
int
ff_videotoolbox_alloc_frame
(
AVCodecContext
*avctx,
AVFrame
*
frame
);
48
int
ff_videotoolbox_uninit
(
AVCodecContext
*avctx);
49
int
ff_videotoolbox_h264_start_frame
(
AVCodecContext
*avctx,
50
const
uint8_t
*
buffer
,
51
uint32_t
size
);
52
int
ff_videotoolbox_h264_decode_slice
(
AVCodecContext
*avctx,
53
const
uint8_t
*
buffer
,
54
uint32_t
size
);
55
CFDataRef
ff_videotoolbox_avcc_extradata_create
(
AVCodecContext
*avctx);
56
CFDataRef
ff_videotoolbox_hvcc_extradata_create
(
AVCodecContext
*avctx);
57
58
#endif
/* AVCODEC_VT_INTERNAL_H */
size
int size
Definition:
twinvq_data.h:11134
AVFrame
This structure describes decoded (raw) audio or video data.
Definition:
frame.h:218
VTContext::bitstream
uint8_t * bitstream
Definition:
vt_internal.h:24
ff_videotoolbox_alloc_frame
int ff_videotoolbox_alloc_frame(AVCodecContext *avctx, AVFrame *frame)
Definition:
videotoolbox.c:89
buffer
static char buffer[20]
Definition:
seek.c:32
uint8_t
uint8_t
Definition:
audio_convert.c:194
ff_videotoolbox_h264_start_frame
int ff_videotoolbox_h264_start_frame(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
Definition:
videotoolbox.c:338
VTContext::allocated_size
int allocated_size
Definition:
vt_internal.h:30
VTContext
Definition:
ffmpeg_videotoolbox.c:30
VTContext::bitstream_size
int bitstream_size
Definition:
vt_internal.h:27
VTContext::reconfig_needed
bool reconfig_needed
Definition:
vt_internal.h:44
VTContext::sps
uint8_t sps[3]
Definition:
vt_internal.h:43
ff_videotoolbox_avcc_extradata_create
CFDataRef ff_videotoolbox_avcc_extradata_create(AVCodecContext *avctx)
Definition:
videotoolbox.c:121
AVCodecContext
main external API structure.
Definition:
avcodec.h:1518
ff_videotoolbox_h264_decode_slice
int ff_videotoolbox_h264_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
Definition:
videotoolbox.c:375
AVBufferRef
A reference to a data buffer.
Definition:
buffer.h:81
VTContext::vt_ctx
struct AVVideotoolboxContext * vt_ctx
Definition:
vt_internal.h:40
ff_videotoolbox_uninit
int ff_videotoolbox_uninit(AVCodecContext *avctx)
Definition:
videotoolbox.c:402
VTContext::cached_hw_frames_ctx
struct AVBufferRef * cached_hw_frames_ctx
Definition:
vt_internal.h:36
ff_videotoolbox_hvcc_extradata_create
CFDataRef ff_videotoolbox_hvcc_extradata_create(AVCodecContext *avctx)
Definition:
videotoolbox.c:160
AVVideotoolboxContext
This struct holds all the information that needs to be passed between the caller and libavcodec for i...
Definition:
videotoolbox.h:46
VTContext::frame
CVImageBufferRef frame
Definition:
vt_internal.h:33
Generated on Tue May 22 2018 07:06:43 for FFmpeg by
1.8.13