#include "config.h"
#include "config_components.h"
#include "videotoolbox.h"
#include "libavutil/attributes.h"
#include "libavutil/hwcontext_videotoolbox.h"
#include "libavutil/mem.h"
#include "vt_internal.h"
#include "libavutil/avutil.h"
#include "libavutil/hwcontext.h"
#include "libavutil/pixdesc.h"
#include "bytestream.h"
#include "decode.h"
#include "internal.h"
#include "h264dec.h"
#include "hevc/hevcdec.h"
#include "hwaccel_internal.h"
#include "mpegvideo.h"
#include "proresdec.h"
#include "prores_raw.h"
#include <Availability.h>
#include <AvailabilityMacros.h>
#include <TargetConditionals.h>
Go to the source code of this file.
|
| static void | videotoolbox_buffer_release (void *opaque, uint8_t *data) |
| |
| int | ff_videotoolbox_buffer_copy (VTContext *vtctx, const uint8_t *buffer, uint32_t size) |
| |
| int | ff_videotoolbox_buffer_append (VTContext *vtctx, const uint8_t *buffer, uint32_t size) |
| |
| static int | videotoolbox_postproc_frame (void *avctx, AVFrame *frame) |
| |
| int | ff_videotoolbox_alloc_frame (AVCodecContext *avctx, AVFrame *frame) |
| |
| static int | escape_ps (uint8_t *dst, const uint8_t *src, int src_size) |
| |
| CFDataRef | ff_videotoolbox_avcc_extradata_create (AVCodecContext *avctx) |
| |
| CFDataRef | ff_videotoolbox_hvcc_extradata_create (AVCodecContext *avctx) |
| |
| int | ff_videotoolbox_h264_start_frame (AVCodecContext *avctx, const AVBufferRef *buffer_ref, const uint8_t *buffer, uint32_t size) |
| |
| static int | videotoolbox_h264_decode_params (AVCodecContext *avctx, int type, const uint8_t *buffer, uint32_t size) |
| |
| static int | videotoolbox_common_decode_slice (AVCodecContext *avctx, const uint8_t *buffer, uint32_t size) |
| |
| int | ff_videotoolbox_h264_decode_slice (AVCodecContext *avctx, const uint8_t *buffer, uint32_t size) |
| |
◆ kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder
| #define kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder CFSTR("RequireHardwareAcceleratedVideoDecoder") |
◆ kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder
| #define kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder CFSTR("EnableHardwareAcceleratedVideoDecoder") |
◆ VIDEOTOOLBOX_ESDS_EXTRADATA_PADDING
| #define VIDEOTOOLBOX_ESDS_EXTRADATA_PADDING 12 |
◆ AV_W8
◆ COUNT_SIZE_PS
| #define COUNT_SIZE_PS |
( |
| T, |
|
|
| t ) |
Value: for (
i = 0;
i < HEVC_MAX_##
T##PS_COUNT;
i++) { \
if (
h->ps.t##ps_list[
i]) { \
const HEVC##
T##PS *lps =
h->ps.t##ps_list[
i]; \
vt_extradata_size += 2 +
escape_ps(
NULL, lps->data, lps->data_size); \
num_##t##ps++; \
} \
}
#define i(width, name, range_min, range_max)
Referenced by ff_videotoolbox_hvcc_extradata_create().
◆ APPEND_PS
| #define APPEND_PS |
( |
| T, |
|
|
| t ) |
Value:
\
AV_W8(p, 1 << 7 | \
HEVC_NAL_##
T##PS & 0x3f); \
\
AV_WB16(p + 1, num_##t##ps); \
p += 3; \
for (
i = 0;
i < HEVC_MAX_##
T##PS_COUNT;
i++) { \
if (
h->ps.t##ps_list[
i]) { \
const HEVC##
T##PS *lps =
h->ps.t##ps_list[
i]; \
\
\
} \
}
Referenced by ff_videotoolbox_hvcc_extradata_create().
◆ anonymous enum
◆ anonymous enum
◆ anonymous enum
◆ videotoolbox_buffer_release()
| static void videotoolbox_buffer_release |
( |
void * | opaque, |
|
|
uint8_t * | data ) |
|
static |
◆ ff_videotoolbox_buffer_copy()
| int ff_videotoolbox_buffer_copy |
( |
VTContext * | vtctx, |
|
|
const uint8_t * | buffer, |
|
|
uint32_t | size ) |
◆ ff_videotoolbox_buffer_append()
| int ff_videotoolbox_buffer_append |
( |
VTContext * | vtctx, |
|
|
const uint8_t * | buffer, |
|
|
uint32_t | size ) |
◆ videotoolbox_postproc_frame()
| static int videotoolbox_postproc_frame |
( |
void * | avctx, |
|
|
AVFrame * | frame ) |
|
static |
◆ ff_videotoolbox_alloc_frame()
◆ escape_ps()
| static int escape_ps |
( |
uint8_t * | dst, |
|
|
const uint8_t * | src, |
|
|
int | src_size ) |
|
static |
◆ ff_videotoolbox_avcc_extradata_create()
| CFDataRef ff_videotoolbox_avcc_extradata_create |
( |
AVCodecContext * | avctx | ) |
|
◆ ff_videotoolbox_hvcc_extradata_create()
| CFDataRef ff_videotoolbox_hvcc_extradata_create |
( |
AVCodecContext * | avctx | ) |
|
◆ ff_videotoolbox_h264_start_frame()
| int ff_videotoolbox_h264_start_frame |
( |
AVCodecContext * | avctx, |
|
|
const AVBufferRef * | buffer_ref, |
|
|
const uint8_t * | buffer, |
|
|
uint32_t | size ) |
◆ videotoolbox_h264_decode_params()
| static int videotoolbox_h264_decode_params |
( |
AVCodecContext * | avctx, |
|
|
int | type, |
|
|
const uint8_t * | buffer, |
|
|
uint32_t | size ) |
|
static |
◆ videotoolbox_common_decode_slice()
| static int videotoolbox_common_decode_slice |
( |
AVCodecContext * | avctx, |
|
|
const uint8_t * | buffer, |
|
|
uint32_t | size ) |
|
static |
◆ ff_videotoolbox_h264_decode_slice()
| int ff_videotoolbox_h264_decode_slice |
( |
AVCodecContext * | avctx, |
|
|
const uint8_t * | buffer, |
|
|
uint32_t | size ) |