xine-lib: xine-lib-1.2.12/src/combined/xine_theora_decoder.c File Reference

xine-lib 1.2.12

Data Structures | Macros | Typedefs | Functions
xine_theora_decoder.c File Reference
`#include <stdlib.h>`
`#include <stdio.h>`
`#include <inttypes.h>`
`#include <string.h>`
`#include <pthread.h>`
`#include <math.h>`
`#include <theora/theora.h>`
`#include <xine/xine_internal.h>`
`#include <xine/video_out.h>`
`#include <xine/buffer.h>`
`#include <xine/metronom.h>`
`#include <xine/xineutils.h>`
`#include "ogg_combined.h"`

## Data Structures
struct | theora_decoder_s

## Macros
#define | LOG_MODULE "theora_decoder"
#define | LOG_VERBOSE

## Typedefs
typedef struct theora_decoder_s | theora_decoder_t

## Functions
static void | readin_op (theora_decoder_t *this, unsigned char *src, int size)
static void | yuv2frame (yuv_buffer *yuv, vo_frame_t *frame, int offset_x, int offset_y, unsigned pixel_format)
static int | collect_data (theora_decoder_t *this, buf_element_t *buf)
static void | theora_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
static void | theora_flush (video_decoder_t *this_gen)
static void | theora_reset (video_decoder_t *this_gen)
static void | theora_discontinuity (video_decoder_t *this_gen)
static void | theora_dispose (video_decoder_t *this_gen)
static video_decoder_t * | theora_open_plugin (video_decoder_class_t *class_gen, xine_stream_t *stream)
void * | theora_init_plugin (xine_t *xine, const void *data)

## Macro Definition Documentation

## ◆ LOG_MODULE

#define LOG_MODULE "theora_decoder"

## ◆ LOG_VERBOSE

#define LOG_VERBOSE

## Typedef Documentation

## ◆ theora_decoder_t

typedef struct theora_decoder_s theora_decoder_t

## Function Documentation

## ◆ collect_data()

static int collect_data | ( | theora_decoder_t * | this,
|  | buf_element_t * | buf
| ) |  |
| static

References BUF_FLAG_FRAME_END, BUF_FLAG_FRAME_START, buf_element_s::content, buf_element_s::decoder_flags, readin_op(), buf_element_s::size, and xine_fast_memcpy.

Referenced by theora_decode_data().

## ◆ readin_op()

static void readin_op | ( | theora_decoder_t * | this,
|  | unsigned char * | src,
|  | int | size
| ) |  |
| static

References xine_fast_memcpy.

Referenced by collect_data().

## ◆ theora_decode_data()

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

References BUF_FLAG_HEADER, BUF_FLAG_STDHEADER, collect_data(), buf_element_s::decoder_flags, vo_frame_s::draw, vo_frame_s::duration, vo_frame_s::free, height, lprintf, buf_element_s::pts, vo_frame_s::pts, VO_BOTH_FIELDS, width, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, XINE_VERBOSITY_LOG, xprintf, and yuv2frame().

Referenced by theora_open_plugin().

## ◆ theora_discontinuity()

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

Referenced by theora_open_plugin().

## ◆ theora_dispose()

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

References lprintf.

Referenced by theora_open_plugin().

## ◆ theora_flush()

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

Referenced by theora_open_plugin().

## ◆ theora_init_plugin()

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

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

## ◆ theora_open_plugin()

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

References NULL, xine_video_port_s::open, theora_decode_data(), theora_discontinuity(), theora_dispose(), theora_flush(), theora_reset(), and xine_stream_s::video_out.

Referenced by theora_init_plugin().

## ◆ theora_reset()

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

Referenced by theora_open_plugin().

## ◆ yuv2frame()

static void yuv2frame | ( | yuv_buffer * | yuv,
|  | vo_frame_t * | frame,
|  | int | offset_x,
|  | int | offset_y,
|  | unsigned | pixel_format
| ) |  |
| static

References vo_frame_s::base, vo_frame_s::height, init_yuv_conversion(), vo_frame_s::pitches, yuv_planes_s::row_count, yuv_planes_s::row_width, yuv_planes_s::u, yuv_planes_s::v, vo_frame_s::width, xine_fast_memcpy, yuv_planes_s::y, and yuv444_to_yuy2.

Referenced by theora_decode_data().