[FFmpeg-cvslog] libopenjpegdec: register logging callback functions
Andreas Cadhalpun
git at videolan.org
Tue Jun 2 22:45:03 CEST 2015
ffmpeg | branch: master | Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com> | Sat May 30 19:40:22 2015 +0200| [12a83bc0aa4bf680805757fd5e025adf3b16c526] | committer: Andreas Cadhalpun
libopenjpegdec: register logging callback functions
Reviewed-by: Michael Niedermayer <michaelni at gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=12a83bc0aa4bf680805757fd5e025adf3b16c526
---
libavcodec/libopenjpegdec.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/libavcodec/libopenjpegdec.c b/libavcodec/libopenjpegdec.c
index ab681f1..8fe7a50 100644
--- a/libavcodec/libopenjpegdec.c
+++ b/libavcodec/libopenjpegdec.c
@@ -83,9 +83,25 @@ static const enum AVPixelFormat libopenjpeg_all_pix_fmts[] = {
typedef struct LibOpenJPEGContext {
AVClass *class;
opj_dparameters_t dec_params;
+ opj_event_mgr_t event_mgr;
int lowqual;
} LibOpenJPEGContext;
+static void error_callback(const char *msg, void *data)
+{
+ av_log(data, AV_LOG_ERROR, "%s", msg);
+}
+
+static void warning_callback(const char *msg, void *data)
+{
+ av_log(data, AV_LOG_WARNING, "%s", msg);
+}
+
+static void info_callback(const char *msg, void *data)
+{
+ av_log(data, AV_LOG_DEBUG, "%s", msg);
+}
+
static inline int libopenjpeg_matches_pix_fmt(const opj_image_t *image, enum AVPixelFormat pix_fmt)
{
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
@@ -286,7 +302,11 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
av_log(avctx, AV_LOG_ERROR, "Error initializing decoder.\n");
return AVERROR_UNKNOWN;
}
- opj_set_event_mgr((opj_common_ptr) dec, NULL, NULL);
+ memset(&ctx->event_mgr, 0, sizeof(ctx->event_mgr));
+ ctx->event_mgr.info_handler = info_callback;
+ ctx->event_mgr.error_handler = error_callback;
+ ctx->event_mgr.warning_handler = warning_callback;
+ opj_set_event_mgr((opj_common_ptr) dec, &ctx->event_mgr, avctx);
ctx->dec_params.cp_limit_decoding = LIMIT_TO_MAIN_HEADER;
ctx->dec_params.cp_layer = ctx->lowqual;
// Tie decoder with decoding parameters
More information about the ffmpeg-cvslog
mailing list