xine-lib: xine-lib-1.2.13/src/video_dec/libvpx.c File Reference

xine-lib 1.2.13-20230125hg15249

Data Structures | Macros | Typedefs | Functions | Variables
libvpx.c File Reference
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <vpx/vpx_decoder.h>`
`#include <vpx/vp8dx.h>`
`#include <xine/xine_internal.h>`
`#include <xine/video_out.h>`
`#include <xine/buffer.h>`
`#include <xine/xineutils.h>`

## Data Structures
struct | vpx_decoder_s

## Macros
#define | LOG_MODULE "libvpx_video_decoder"
#define | LOG_VERBOSE

## Typedefs
typedef struct vpx_decoder_s | vpx_decoder_t

## Functions
static void | vpx_handle_header (vpx_decoder_t *this, buf_element_t *buf)
static void | vpx_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
static void | vpx_flush (video_decoder_t *this_gen)
static void | vpx_reset (video_decoder_t *this_gen)
static void | vpx_discontinuity (video_decoder_t *this_gen)
static void | vpx_dispose (video_decoder_t *this_gen)
static video_decoder_t * | open_plugin (video_decoder_class_t *class_gen, xine_stream_t *stream)
static void * | init_plugin_vpx (xine_t *xine, const void *data)

## Variables
static const uint32_t | video_types_vpx []
static const decoder_info_t | dec_info_video_vpx
const plugin_info_t xine_plugin_info[] | EXPORTED

## Macro Definition Documentation

## ◆ LOG_MODULE

#define LOG_MODULE "libvpx_video_decoder"

Referenced by open_plugin(), and vpx_decode_data().

## ◆ LOG_VERBOSE

#define LOG_VERBOSE

## Typedef Documentation

## ◆ vpx_decoder_t

typedef struct vpx_decoder_s vpx_decoder_t

## Function Documentation

## ◆ init_plugin_vpx()

static void * init_plugin_vpx | ( | xine_t * | xine,
|  | const void * | data )
| static

References video_decoder_s::dispose, N_, NULL, open_plugin(), and video_decoder_class_s::open_plugin.

## ◆ open_plugin()

static video_decoder_t * open_plugin | ( | video_decoder_class_t * | class_gen,
|  | xine_stream_t * | stream )
| static

References _x_get_video_streamtype(), BUF_VIDEO_BASE, BUF_VIDEO_VP8, BUF_VIDEO_VP9, LOG_MODULE, NULL, VO_SET_FLAGS_CM, vpx_decode_data(), vpx_discontinuity(), vpx_dispose(), vpx_flush(), vpx_reset(), xine_stream_s::xine, xine_cpu_count(), XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, and xprintf.

Referenced by init_plugin_vpx().

## ◆ vpx_decode_data()

static void vpx_decode_data | ( | video_decoder_t * | this_gen,
|  | buf_element_t * | buf )
| static

References vo_frame_s::bad_frame, vo_frame_s::base, BUF_FLAG_COLOR_MATRIX, BUF_FLAG_FRAME_END, BUF_FLAG_PREVIEW, BUF_FLAG_SPECIAL, BUF_FLAG_STDHEADER, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, vo_frame_s::draw, vo_frame_s::free, height, vo_frame_s::height, LOG_MODULE, NULL, vo_frame_s::pitches, vo_frame_s::progressive_frame, buf_element_s::pts, vo_frame_s::pts, buf_element_s::size, VO_BOTH_FIELDS, VO_GET_FRAME_MAY_FAIL, VO_SET_FLAGS_CM, vpx_handle_header(), vo_frame_s::width, width, xine_fast_memcpy, XINE_IMGFMT_YV12, XINE_VERBOSITY_LOG, xprintf, and yv12_to_yv12().

Referenced by open_plugin().

## ◆ vpx_discontinuity()

static void vpx_discontinuity | ( | video_decoder_t * | this_gen | ) |
| static

Referenced by open_plugin().

## ◆ vpx_dispose()

static void vpx_dispose | ( | video_decoder_t * | this_gen | ) |
| static

References NULL.

Referenced by open_plugin().

## ◆ vpx_flush()

static void vpx_flush | ( | video_decoder_t * | this_gen | ) |
| static

Referenced by open_plugin().

## ◆ vpx_handle_header()

static void vpx_handle_header | ( | vpx_decoder_t * | this,
|  | buf_element_t * | buf )
| static

References _x_meta_info_set_utf8(), _x_stream_info_set(), xine_bmiheader::biHeight, xine_bmiheader::biWidth, BUF_FLAG_ASPECT, BUF_VIDEO_VP8, BUF_VIDEO_VP9, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, height, NULL, buf_element_s::type, width, XINE_META_INFO_VIDEOCODEC, XINE_STREAM_INFO_VIDEO_HEIGHT, XINE_STREAM_INFO_VIDEO_RATIO, and XINE_STREAM_INFO_VIDEO_WIDTH.

Referenced by vpx_decode_data().

## ◆ vpx_reset()

static void vpx_reset | ( | video_decoder_t * | this_gen | ) |
| static

References NULL.

Referenced by open_plugin().

## Variable Documentation

## ◆ dec_info_video_vpx

const decoder_info_t dec_info_video_vpx
| static

Initial value:
= {
.supported_types = video_types_vpx,
.priority = 1,
}
video_types_vpx
static const uint32_t video_types_vpx[]
Definition libvpx.c:371

## ◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED

Initial value:
= {
{ PLUGIN_VIDEO_DECODER, 19, "libvpx", XINE_VERSION_CODE, &dec_info_video_vpx, init_plugin_vpx },
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
dec_info_video_vpx
static const decoder_info_t dec_info_video_vpx
Definition libvpx.c:379
init_plugin_vpx
static void * init_plugin_vpx(xine_t *xine, const void *data)
Definition libvpx.c:352
XINE_VERSION_CODE
#define XINE_VERSION_CODE
Definition xine_internal.h:57
NULL
NULL
Definition xine_plugin.c:78
PLUGIN_NONE
#define PLUGIN_NONE
Definition xine_plugin.h:29
PLUGIN_VIDEO_DECODER
#define PLUGIN_VIDEO_DECODER
Definition xine_plugin.h:33

## ◆ video_types_vpx

const uint32_t video_types_vpx[]
| static

Initial value:
= {
BUF_VIDEO_VP8,
0
}
BUF_VIDEO_VP8
#define BUF_VIDEO_VP8
Definition buffer.h:194