xine-lib: xine-lib-1.2.12/src/libreal/xine_real_video_decoder.c File Reference

xine-lib 1.2.12

Data Structures | Macros | Typedefs | Functions | Variables
xine_real_video_decoder.c File Reference
`#include <stdlib.h>`
`#include <string.h>`
`#include <sys/types.h>`
`#include <sys/stat.h>`
`#include <fcntl.h>`
`#include <unistd.h>`
`#include <dlfcn.h>`
`#include "bswap.h"`
`#include <xine/xine_internal.h>`
`#include <xine/video_out.h>`
`#include <xine/buffer.h>`
`#include <xine/xineutils.h>`
`#include "real_common.h"`

## Data Structures
struct | realdec_decoder_s
struct | rv_init_t
struct | cmsg_data_s
struct | transform_in_s
struct | transform_out_t

## Macros
#define | LOG_MODULE "real_decoder"
#define | LOG_VERBOSE
#define | BUF_SIZE 65536

## Typedefs
typedef struct realdec_decoder_s | realdec_decoder_t
typedef struct cmsg_data_s | cmsg_data_t
typedef struct transform_in_s | transform_in_t

## Functions
static int | load_syms_linux (realdec_decoder_t *this, const char *codec_name, const char *const codec_alternate)
static int | init_codec (realdec_decoder_t *this, buf_element_t *buf)
static void | realdec_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
static void | realdec_flush (video_decoder_t *this_gen)
static void | realdec_reset (video_decoder_t *this_gen)
static void | realdec_discontinuity (video_decoder_t *this_gen)
static void | realdec_dispose (video_decoder_t *this_gen)
static video_decoder_t * | open_plugin (video_decoder_class_t *class_gen, xine_stream_t *stream)
void * | init_realvdec (xine_t *xine, const void *data)

## Variables
static const uint32_t | supported_types []
const decoder_info_t | dec_info_realvideo

## Macro Definition Documentation

## ◆ BUF_SIZE

#define BUF_SIZE 65536

## ◆ LOG_MODULE

#define LOG_MODULE "real_decoder"

## ◆ LOG_VERBOSE

#define LOG_VERBOSE

## Typedef Documentation

## ◆ cmsg_data_t

typedef struct cmsg_data_s cmsg_data_t

## ◆ realdec_decoder_t

typedef struct realdec_decoder_s realdec_decoder_t

## ◆ transform_in_t

typedef struct transform_in_s transform_in_t

## Function Documentation

## ◆ init_codec()

static int init_codec | ( | realdec_decoder_t * | this,
|  | buf_element_t * | buf
| ) |  |
| static

References _X_BE_16, _X_BE_32, _x_meta_info_set_utf8(), _x_stream_info_set(), BUF_FLAG_ASPECT, BUF_SIZE, BUF_VIDEO_RV20, BUF_VIDEO_RV30, BUF_VIDEO_RV40, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, rv_init_t::format, rv_init_t::h, height, load_syms_linux(), LOG, lprintf, NULL, buf_element_s::size, rv_init_t::subformat, buf_element_s::type, rv_init_t::w, width, xine_hexdump(), XINE_META_INFO_VIDEOCODEC, XINE_STREAM_INFO_FRAME_DURATION, XINE_STREAM_INFO_VIDEO_HEIGHT, XINE_STREAM_INFO_VIDEO_RATIO, XINE_STREAM_INFO_VIDEO_WIDTH, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by realdec_decode_data().

## ◆ init_realvdec()

void * init_realvdec | ( | xine_t * | xine,
|  | const void * | data
| ) |  |

References _x_real_codecs_init(), N_, NULL, open_plugin(), and video_decoder_class_s::open_plugin.

## ◆ load_syms_linux()

static int load_syms_linux | ( | realdec_decoder_t * | this,
|  | const char * | codec_name,
|  | const char *const | codec_alternate
| ) |  |
| static

References _, _x_real_codec_open(), cfg_entry_s::config, config_values_s::lookup_entry, NULL, cfg_entry_s::str_value, XINE_VERBOSITY_LOG, and xprintf.

Referenced by init_codec().

## ◆ open_plugin()

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

References NULL, realdec_decode_data(), realdec_discontinuity(), realdec_dispose(), realdec_flush(), and realdec_reset().

Referenced by init_realvdec().

## ◆ realdec_decode_data()

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

References _x_stream_info_set(), vo_frame_s::bad_frame, vo_frame_s::base, BUF_FLAG_FRAME_START, BUF_FLAG_FRAMERATE, BUF_FLAG_HEADER, BUF_FLAG_PREVIEW, BUF_FLAG_SPECIAL, BUF_SPECIAL_RV_CHUNK_TABLE, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, vo_frame_s::draw, vo_frame_s::duration, transform_out_t::frames, vo_frame_s::free, transform_out_t::height, height, init_codec(), lprintf, vo_frame_s::pitches, buf_element_s::pts, vo_frame_s::pts, buf_element_s::size, transform_out_t::timestamp, VO_BOTH_FIELDS, transform_out_t::width, width, xine_fast_memcpy, xine_hexdump(), XINE_IMGFMT_YV12, XINE_STREAM_INFO_FRAME_DURATION, XINE_STREAM_INFO_VIDEO_HANDLED, XINE_STREAM_INFO_VIDEO_HEIGHT, XINE_STREAM_INFO_VIDEO_WIDTH, and yv12_to_yv12().

Referenced by open_plugin().

## ◆ realdec_discontinuity()

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

Referenced by open_plugin().

## ◆ realdec_dispose()

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

References _x_freep(), and lprintf.

Referenced by open_plugin().

## ◆ realdec_flush()

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

References lprintf.

Referenced by open_plugin().

## ◆ realdec_reset()

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

Referenced by open_plugin().

## Variable Documentation

## ◆ dec_info_realvideo

const decoder_info_t dec_info_realvideo

Initial value:
= {
supported_types,
7
}
supported_types
static const uint32_t supported_types[]
Definition: xine_real_video_decoder.c:543

## ◆ supported_types

const uint32_t supported_types[]
| static

Initial value:
= { BUF_VIDEO_RV30,
BUF_VIDEO_RV40,
0 }
BUF_VIDEO_RV40
#define BUF_VIDEO_RV40
Definition: buffer.h:147
BUF_VIDEO_RV30
#define BUF_VIDEO_RV30
Definition: buffer.h:142

Referenced by load_plugin_list().