FFmpeg
Data Structures | Macros | Functions | Variables
libopenjpegenc.c File Reference

JPEG 2000 encoder using libopenjpeg. More...

#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "internal.h"
#include <openjpeg.h>

Go to the source code of this file.

Data Structures

struct  LibOpenJPEGContext
 
struct  PacketWriter
 

Macros

#define OFFSET(x)   offsetof(LibOpenJPEGContext, x)
 
#define VE   AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
 

Functions

static void error_callback (const char *msg, void *data)
 
static void warning_callback (const char *msg, void *data)
 
static void info_callback (const char *msg, void *data)
 
static OPJ_SIZE_T stream_write (void *out_buffer, OPJ_SIZE_T nb_bytes, void *user_data)
 
static OPJ_OFF_T stream_skip (OPJ_OFF_T nb_bytes, void *user_data)
 
static OPJ_BOOL stream_seek (OPJ_OFF_T nb_bytes, void *user_data)
 
static void cinema_parameters (opj_cparameters_t *p)
 
static opj_image_t * mj2_create_image (AVCodecContext *avctx, opj_cparameters_t *parameters)
 
static av_cold int libopenjpeg_encode_init (AVCodecContext *avctx)
 
static int libopenjpeg_copy_packed8 (AVCodecContext *avctx, const AVFrame *frame, opj_image_t *image)
 
static int libopenjpeg_copy_packed12 (AVCodecContext *avctx, const AVFrame *frame, opj_image_t *image)
 
static int libopenjpeg_copy_packed16 (AVCodecContext *avctx, const AVFrame *frame, opj_image_t *image)
 
static int libopenjpeg_copy_unpacked8 (AVCodecContext *avctx, const AVFrame *frame, opj_image_t *image)
 
static int libopenjpeg_copy_unpacked16 (AVCodecContext *avctx, const AVFrame *frame, opj_image_t *image)
 
static int libopenjpeg_encode_frame (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
 

Variables

static const AVOption options []
 
static const AVClass openjpeg_class
 
AVCodec ff_libopenjpeg_encoder
 

Detailed Description

JPEG 2000 encoder using libopenjpeg.

Definition in file libopenjpegenc.c.

Macro Definition Documentation

#define OFFSET (   x)    offsetof(LibOpenJPEGContext, x)

Definition at line 723 of file libopenjpegenc.c.

Definition at line 724 of file libopenjpegenc.c.

Function Documentation

static void error_callback ( const char *  msg,
void data 
)
static

Definition at line 49 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static void warning_callback ( const char *  msg,
void data 
)
static

Definition at line 54 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static void info_callback ( const char *  msg,
void data 
)
static

Definition at line 59 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static OPJ_SIZE_T stream_write ( void out_buffer,
OPJ_SIZE_T  nb_bytes,
void user_data 
)
static

Definition at line 69 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static OPJ_OFF_T stream_skip ( OPJ_OFF_T  nb_bytes,
void user_data 
)
static

Definition at line 89 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static OPJ_BOOL stream_seek ( OPJ_OFF_T  nb_bytes,
void user_data 
)
static

Definition at line 117 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static void cinema_parameters ( opj_cparameters_t *  p)
static

Definition at line 134 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_init().

static opj_image_t* mj2_create_image ( AVCodecContext avctx,
opj_cparameters_t *  parameters 
)
static

Definition at line 171 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static av_cold int libopenjpeg_encode_init ( AVCodecContext avctx)
static

Definition at line 279 of file libopenjpegenc.c.

static int libopenjpeg_copy_packed8 ( AVCodecContext avctx,
const AVFrame frame,
opj_image_t *  image 
)
static

Definition at line 348 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static int libopenjpeg_copy_packed12 ( AVCodecContext avctx,
const AVFrame frame,
opj_image_t *  image 
)
static

Definition at line 388 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static int libopenjpeg_copy_packed16 ( AVCodecContext avctx,
const AVFrame frame,
opj_image_t *  image 
)
static

Definition at line 427 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static int libopenjpeg_copy_unpacked8 ( AVCodecContext avctx,
const AVFrame frame,
opj_image_t *  image 
)
static

Definition at line 467 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static int libopenjpeg_copy_unpacked16 ( AVCodecContext avctx,
const AVFrame frame,
opj_image_t *  image 
)
static

Definition at line 508 of file libopenjpegenc.c.

Referenced by libopenjpeg_encode_frame().

static int libopenjpeg_encode_frame ( AVCodecContext avctx,
AVPacket pkt,
const AVFrame frame,
int got_packet 
)
static

Definition at line 551 of file libopenjpegenc.c.

Variable Documentation

const AVOption options[]
static
Initial value:
= {
{ "format", "Codec Format", OFFSET(format), AV_OPT_TYPE_INT, { .i64 = OPJ_CODEC_JP2 }, OPJ_CODEC_J2K, OPJ_CODEC_JP2, VE, "format" },
{ "j2k", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_CODEC_J2K }, 0, 0, VE, "format" },
{ "jp2", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_CODEC_JP2 }, 0, 0, VE, "format" },
{ "profile", NULL, OFFSET(profile), AV_OPT_TYPE_INT, { .i64 = OPJ_STD_RSIZ }, OPJ_STD_RSIZ, OPJ_CINEMA4K, VE, "profile" },
{ "jpeg2000", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_STD_RSIZ }, 0, 0, VE, "profile" },
{ "cinema2k", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_CINEMA2K }, 0, 0, VE, "profile" },
{ "cinema4k", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_CINEMA4K }, 0, 0, VE, "profile" },
{ "cinema_mode", "Digital Cinema", OFFSET(cinema_mode), AV_OPT_TYPE_INT, { .i64 = OPJ_OFF }, OPJ_OFF, OPJ_CINEMA4K_24, VE, "cinema_mode" },
{ "off", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_OFF }, 0, 0, VE, "cinema_mode" },
{ "2k_24", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_CINEMA2K_24 }, 0, 0, VE, "cinema_mode" },
{ "2k_48", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_CINEMA2K_48 }, 0, 0, VE, "cinema_mode" },
{ "4k_24", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_CINEMA4K_24 }, 0, 0, VE, "cinema_mode" },
{ "prog_order", "Progression Order", OFFSET(prog_order), AV_OPT_TYPE_INT, { .i64 = OPJ_LRCP }, OPJ_LRCP, OPJ_CPRL, VE, "prog_order" },
{ "lrcp", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_LRCP }, 0, 0, VE, "prog_order" },
{ "rlcp", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_RLCP }, 0, 0, VE, "prog_order" },
{ "rpcl", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_RPCL }, 0, 0, VE, "prog_order" },
{ "pcrl", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_PCRL }, 0, 0, VE, "prog_order" },
{ "cprl", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = OPJ_CPRL }, 0, 0, VE, "prog_order" },
{ "numresolution", NULL, OFFSET(numresolution), AV_OPT_TYPE_INT, { .i64 = 6 }, 0, 33, VE },
{ "irreversible", NULL, OFFSET(irreversible), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
{ "disto_alloc", NULL, OFFSET(disto_alloc), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, VE },
{ "fixed_quality", NULL, OFFSET(fixed_quality), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
{ NULL },
}
#define NULL
Definition: coverity.c:32
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample format(the sample packing is implied by the sample format) and sample rate.The lists are not just lists
#define VE
mfxU16 profile
Definition: qsvenc.c:44
#define OFFSET(x)

Definition at line 725 of file libopenjpegenc.c.

const AVClass openjpeg_class
static
Initial value:
= {
.class_name = "libopenjpeg",
.item_name = av_default_item_name,
.option = options,
}
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:191
static const AVOption options[]

Definition at line 751 of file libopenjpegenc.c.

AVCodec ff_libopenjpeg_encoder

Definition at line 758 of file libopenjpegenc.c.