Libav
Data Structures | Functions | Variables
vda_h264.c File Reference
#include <CoreFoundation/CFNumber.h>
#include <CoreFoundation/CFData.h>
#include <CoreFoundation/CFString.h>
#include "libavutil/avutil.h"
#include "h264.h"
#include "internal.h"
#include "vda.h"
#include "vda_internal.h"

Go to the source code of this file.

Data Structures

struct  VDAContext
 

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 (VDAContext *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 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...
 
static int vda_h264_uninit (AVCodecContext *avctx)
 
void ff_vda_output_callback (void *opaque, CFDictionaryRef user_info, OSStatus status, uint32_t infoFlags, CVImageBufferRef image_buffer)
 
static int vda_h264_start_frame (AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
 
static int vda_h264_decode_slice (AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
 
static void release_buffer (void *opaque, uint8_t *data)
 
static int vda_h264_end_frame (AVCodecContext *avctx)
 
int ff_vda_default_init (AVCodecContext *avctx)
 
static int vda_h264_alloc_frame (AVCodecContext *avctx, AVFrame *frame)
 

Variables

AVHWAccel ff_h264_vda_old_hwaccel
 
AVHWAccel ff_h264_vda_hwaccel
 

Function Documentation

§ vda_decoder_callback()

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

Definition at line 47 of file vda_h264.c.

Referenced by ff_vda_create_decoder().

§ vda_sync_decode()

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

< kVDADecoderFlush_emitFrames

Definition at line 64 of file vda_h264.c.

Referenced by vda_old_h264_end_frame().

§ vda_old_h264_start_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 85 of file vda_h264.c.

§ vda_old_h264_decode_slice()

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

Definition at line 100 of file vda_h264.c.

§ vda_old_h264_end_frame()

static int vda_old_h264_end_frame ( AVCodecContext avctx)
static

Definition at line 127 of file vda_h264.c.

§ vda_h264_uninit()

static int vda_h264_uninit ( AVCodecContext avctx)
static

Definition at line 241 of file vda_h264.c.

§ ff_vda_output_callback()

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

Definition at line 262 of file vda_h264.c.

Referenced by ff_vda_default_init().

§ vda_h264_start_frame()

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

Definition at line 283 of file vda_h264.c.

§ vda_h264_decode_slice()

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

Definition at line 294 of file vda_h264.c.

§ release_buffer()

static void release_buffer ( void opaque,
uint8_t data 
)
static

Definition at line 317 of file vda_h264.c.

Referenced by vda_h264_end_frame().

§ vda_h264_end_frame()

static int vda_h264_end_frame ( AVCodecContext avctx)
static

< kVDADecoderFlush_emitFrames

Definition at line 323 of file vda_h264.c.

§ ff_vda_default_init()

int ff_vda_default_init ( AVCodecContext avctx)

Definition at line 370 of file vda_h264.c.

§ vda_h264_alloc_frame()

static int vda_h264_alloc_frame ( AVCodecContext avctx,
AVFrame frame 
)
static

Definition at line 473 of file vda_h264.c.

Variable Documentation

§ ff_h264_vda_old_hwaccel

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,
.uninit = vda_h264_uninit,
.priv_data_size = sizeof(VDAContext),
}
static int vda_old_h264_end_frame(AVCodecContext *avctx)
Definition: vda_h264.c:127
static int vda_h264_uninit(AVCodecContext *avctx)
Definition: vda_h264.c:241
static int vda_old_h264_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
Definition: vda_h264.c:100
hardware decoding through VDA
Definition: pixfmt.h:162
static int vda_old_h264_start_frame(AVCodecContext *avctx, av_unused const uint8_t *buffer, av_unused uint32_t size)
Definition: vda_h264.c:85

Definition at line 250 of file vda_h264.c.

§ ff_h264_vda_hwaccel

AVHWAccel ff_h264_vda_hwaccel
Initial value:
= {
.name = "h264_vda",
.pix_fmt = AV_PIX_FMT_VDA,
.alloc_frame = vda_h264_alloc_frame,
.start_frame = vda_h264_start_frame,
.decode_slice = vda_h264_decode_slice,
.end_frame = vda_h264_end_frame,
.uninit = vda_h264_uninit,
.priv_data_size = sizeof(VDAContext),
}
static int vda_h264_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
Definition: vda_h264.c:294
static int vda_h264_uninit(AVCodecContext *avctx)
Definition: vda_h264.c:241
static int vda_h264_alloc_frame(AVCodecContext *avctx, AVFrame *frame)
Definition: vda_h264.c:473
HW acceleration through VDA, data[3] contains a CVPixelBufferRef.
Definition: pixfmt.h:204
static int vda_h264_end_frame(AVCodecContext *avctx)
Definition: vda_h264.c:323
static int vda_h264_start_frame(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
Definition: vda_h264.c:283

Definition at line 485 of file vda_h264.c.