FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Functions | Variables
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>

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
 

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.

Function Documentation

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 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().

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 av_cold int libschroedinger_decode_init ( AVCodecContext avctx)
static

Definition at line 147 of file libschroedingerdec.c.

static void libschroedinger_decode_frame_free ( void frame)
static
static void libschroedinger_handle_first_access_unit ( AVCodecContext avctx)
static

Definition at line 171 of file libschroedingerdec.c.

Referenced by libschroedinger_decode_frame().

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

Definition at line 202 of file libschroedingerdec.c.

static av_cold int libschroedinger_decode_close ( AVCodecContext avctx)
static

Definition at line 354 of file libschroedingerdec.c.

static void libschroedinger_flush ( AVCodecContext avctx)
static

Definition at line 368 of file libschroedingerdec.c.

Variable Documentation

AVCodec ff_libschroedinger_decoder
Initial value:
= {
.name = "libschroedinger",
.long_name = NULL_IF_CONFIG_SMALL("libschroedinger Dirac 2.2"),
.priv_data_size = sizeof(SchroDecoderParams),
}
static void flush(AVCodecContext *avctx)
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
static av_cold int libschroedinger_decode_init(AVCodecContext *avctx)
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
Definition: decode_audio.c:42
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
Definition: avcodec.h:1023
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:179
static av_cold int libschroedinger_decode_close(AVCodecContext *avctx)
static void libschroedinger_flush(AVCodecContext *avctx)
libschroedinger decoder private data
static int libschroedinger_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
Definition: avcodec.h:998

Definition at line 384 of file libschroedingerdec.c.