FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Functions | Variables
vda_h264.c File Reference
#include <CoreFoundation/CFDictionary.h>
#include <CoreFoundation/CFNumber.h>
#include <CoreFoundation/CFData.h>
#include "vda.h"
#include "libavutil/avutil.h"
#include "h264dec.h"
#include "internal.h"
#include "vda_vt_internal.h"

Go to the source code of this file.

Data Structures

struct  vda_buffer
 

Functions

static void vda_decoder_callback (void *vda_hw_ctx, CFDictionaryRef user_info, OSStatus status, uint32_t infoFlags, CVImageBufferRef image_buffer)
 
static int vda_sync_decode (VTContext *ctx, struct vda_context *vda_ctx)
 
static int vda_old_h264_start_frame (AVCodecContext *avctx, av_unused const uint8_t *buffer, av_unused uint32_t size)
 
static int vda_old_h264_decode_slice (AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
 
static void vda_h264_release_buffer (void *opaque, uint8_t *data)
 
static int vda_old_h264_end_frame (AVCodecContext *avctx)
 
int ff_vda_create_decoder (struct vda_context *vda_ctx, uint8_t *extradata, int extradata_size)
 Create the video decoder. More...
 
int ff_vda_destroy_decoder (struct vda_context *vda_ctx)
 Destroy the video decoder. More...
 
void ff_vda_output_callback (void *opaque, CFDictionaryRef user_info, OSStatus status, uint32_t infoFlags, CVImageBufferRef image_buffer)
 
static int vda_h264_end_frame (AVCodecContext *avctx)
 
int ff_vda_default_init (AVCodecContext *avctx)
 

Variables

AVHWAccel ff_h264_vda_old_hwaccel
 
AVHWAccel ff_h264_vda_hwaccel
 

Function Documentation

static void vda_decoder_callback ( void vda_hw_ctx,
CFDictionaryRef  user_info,
OSStatus  status,
uint32_t  infoFlags,
CVImageBufferRef  image_buffer 
)
static

Definition at line 38 of file vda_h264.c.

Referenced by ff_vda_create_decoder().

static int vda_sync_decode ( VTContext ctx,
struct vda_context vda_ctx 
)
static

< kVDADecoderFlush_emitFrames

Definition at line 58 of file vda_h264.c.

Referenced by vda_old_h264_end_frame().

static int vda_old_h264_start_frame ( AVCodecContext avctx,
av_unused const uint8_t buffer,
av_unused uint32_t  size 
)
static

Definition at line 79 of file vda_h264.c.

static int vda_old_h264_decode_slice ( AVCodecContext avctx,
const uint8_t buffer,
uint32_t  size 
)
static

Definition at line 94 of file vda_h264.c.

static void vda_h264_release_buffer ( void opaque,
uint8_t data 
)
static

Definition at line 121 of file vda_h264.c.

Referenced by vda_old_h264_end_frame().

static int vda_old_h264_end_frame ( AVCodecContext avctx)
static

Definition at line 128 of file vda_h264.c.

void ff_vda_output_callback ( void opaque,
CFDictionaryRef  user_info,
OSStatus  status,
uint32_t  infoFlags,
CVImageBufferRef  image_buffer 
)

Definition at line 273 of file vda_h264.c.

Referenced by ff_vda_default_init().

static int vda_h264_end_frame ( AVCodecContext avctx)
static

< kVDADecoderFlush_emitFrames

Definition at line 294 of file vda_h264.c.

int ff_vda_default_init ( AVCodecContext avctx)

Definition at line 330 of file vda_h264.c.

Variable Documentation

AVHWAccel ff_h264_vda_old_hwaccel
Initial value:
= {
.name = "h264_vda",
.pix_fmt = AV_PIX_FMT_VDA_VLD,
.start_frame = vda_old_h264_start_frame,
.decode_slice = vda_old_h264_decode_slice,
.end_frame = vda_old_h264_end_frame,
.priv_data_size = sizeof(VTContext),
}
static int vda_old_h264_end_frame(AVCodecContext *avctx)
Definition: vda_h264.c:128
int ff_videotoolbox_uninit(AVCodecContext *avctx)
Definition: videotoolbox.c:343
static int vda_old_h264_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
Definition: vda_h264.c:94
hardware decoding through VDA
Definition: pixfmt.h:179
static int vda_old_h264_start_frame(AVCodecContext *avctx, av_unused const uint8_t *buffer, av_unused uint32_t size)
Definition: vda_h264.c:79

Definition at line 261 of file vda_h264.c.

AVHWAccel ff_h264_vda_hwaccel
Initial value:
= {
.name = "h264_vda",
.pix_fmt = AV_PIX_FMT_VDA,
.end_frame = vda_h264_end_frame,
.priv_data_size = sizeof(VTContext),
}
int ff_videotoolbox_uninit(AVCodecContext *avctx)
Definition: videotoolbox.c:343
int ff_videotoolbox_alloc_frame(AVCodecContext *avctx, AVFrame *frame)
Definition: videotoolbox.c:75
HW acceleration through VDA, data[3] contains a CVPixelBufferRef.
Definition: pixfmt.h:224
int ff_videotoolbox_h264_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
Definition: videotoolbox.c:316
static int vda_h264_end_frame(AVCodecContext *avctx)
Definition: vda_h264.c:294
int ff_videotoolbox_h264_start_frame(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
Definition: videotoolbox.c:300

Definition at line 414 of file vda_h264.c.