libschroedingerdec.c File Reference

Dirac decoder support via libschroedinger-1.0 libraries. More...

#include <string.h>
#include "libavutil/imgutils.h"
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "avcodec.h"
#include "internal.h"
#include "libschroedinger.h"
#include <schroedinger/schro.h>
#include <schroedinger/schrodebug.h>
#include <schroedinger/schrovideoformat.h>
Include dependency graph for libschroedingerdec.c:

Go to the source code of this file.

Data Structures

struct  LibSchroFrameContext
 SchroFrame and Pts relation. More...
 
struct  SchroDecoderParams
 libschroedinger decoder private data More...
 
struct  SchroParseUnitContext
 

Typedefs

typedef struct LibSchroFrameContext LibSchroFrameContext
 SchroFrame and Pts relation. More...
 
typedef struct SchroDecoderParams SchroDecoderParams
 libschroedinger decoder private data More...
 
typedef struct SchroParseUnitContext SchroParseUnitContext
 

Functions

static void libschroedinger_decode_buffer_free (SchroBuffer *schro_buf, void *priv)
 
static void parse_context_init (SchroParseUnitContext *parse_ctx, const uint8_t *buf, int buf_size)
 
static SchroBuffer * find_next_parse_unit (SchroParseUnitContext *parse_ctx)
 
static enum AVPixelFormat get_chroma_format (SchroChromaFormat schro_pix_fmt)
 Returns FFmpeg chroma format. More...
 
static av_cold int libschroedinger_decode_init (AVCodecContext *avctx)
 
static void libschroedinger_decode_frame_free (void *frame)
 
static void libschroedinger_handle_first_access_unit (AVCodecContext *avctx)
 
static int libschroedinger_decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
 
static av_cold int libschroedinger_decode_close (AVCodecContext *avctx)
 
static void libschroedinger_flush (AVCodecContext *avctx)
 

Variables

AVCodec ff_libschroedinger_decoder
 

Detailed Description

Dirac decoder support via libschroedinger-1.0 libraries.

More details about the Schroedinger project can be found at http://www.diracvideo.org/. The library implements Dirac Specification Version 2.2. (http://dirac.sourceforge.net/specification.html).

Definition in file libschroedingerdec.c.

Typedef Documentation

SchroFrame and Pts relation.

libschroedinger decoder private data

Function Documentation

static SchroBuffer* find_next_parse_unit ( SchroParseUnitContext parse_ctx)
static

Definition at line 90 of file libschroedingerdec.c.

Referenced by libschroedinger_decode_frame().

static enum AVPixelFormat get_chroma_format ( SchroChromaFormat  schro_pix_fmt)
static

Returns FFmpeg chroma format.

Definition at line 135 of file libschroedingerdec.c.

Referenced by libschroedinger_handle_first_access_unit().

static void libschroedinger_decode_buffer_free ( SchroBuffer *  schro_buf,
void priv 
)
static

Definition at line 77 of file libschroedingerdec.c.

Referenced by find_next_parse_unit().

static av_cold int libschroedinger_decode_close ( AVCodecContext avctx)
static

Definition at line 345 of file libschroedingerdec.c.

static int libschroedinger_decode_frame ( AVCodecContext avctx,
void data,
int *  got_frame,
AVPacket avpkt 
)
static

Definition at line 202 of file libschroedingerdec.c.

static void libschroedinger_decode_frame_free ( void frame)
static
static av_cold int libschroedinger_decode_init ( AVCodecContext avctx)
static

Definition at line 147 of file libschroedingerdec.c.

static void libschroedinger_flush ( AVCodecContext avctx)
static

Definition at line 359 of file libschroedingerdec.c.

static void libschroedinger_handle_first_access_unit ( AVCodecContext avctx)
static

Definition at line 171 of file libschroedingerdec.c.

Referenced by libschroedinger_decode_frame().

static void parse_context_init ( SchroParseUnitContext parse_ctx,
const uint8_t buf,
int  buf_size 
)
static

Definition at line 83 of file libschroedingerdec.c.

Referenced by libschroedinger_decode_frame().

Variable Documentation

AVCodec ff_libschroedinger_decoder
Initial value:
= {
.name = "libschroedinger",
.priv_data_size = sizeof(SchroDecoderParams),
.capabilities = CODEC_CAP_DELAY,
.long_name = NULL_IF_CONFIG_SMALL("libschroedinger Dirac 2.2"),
}
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
static av_cold int libschroedinger_decode_init(AVCodecContext *avctx)
struct SchroDecoderParams SchroDecoderParams
libschroedinger decoder private data
#define CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static av_cold int libschroedinger_decode_close(AVCodecContext *avctx)
static void libschroedinger_flush(AVCodecContext *avctx)
static void flush(AVCodecContext *avctx)
static void close(AVCodecParserContext *s)
Definition: h264_parser.c:375
static int libschroedinger_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
static int decode(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
Definition: crystalhd.c:868

Definition at line 375 of file libschroedingerdec.c.