summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-stream.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-stream.c')
-rw-r--r--source/pdf/pdf-stream.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/pdf/pdf-stream.c b/source/pdf/pdf-stream.c
index f52539cf..29301f5d 100644
--- a/source/pdf/pdf-stream.c
+++ b/source/pdf/pdf-stream.c
@@ -173,6 +173,7 @@ build_filter(fz_context *ctx, fz_stream *chain, pdf_document *doc, pdf_obj *f, p
{
fz_compression_params local_params;
+ local_params.u.jbig2.globals = NULL;
if (params == NULL)
params = &local_params;
@@ -184,6 +185,18 @@ build_filter(fz_context *ctx, fz_stream *chain, pdf_document *doc, pdf_obj *f, p
if (params != &local_params && params->type != FZ_IMAGE_RAW)
return fz_keep_stream(ctx, chain); /* nothing to do */
+ else if (params->type == FZ_IMAGE_JBIG2)
+ {
+ fz_stream *stm;
+ fz_try(ctx)
+ stm = fz_open_image_decomp_stream(ctx, chain, params, NULL);
+ fz_always(ctx)
+ fz_drop_jbig2_globals(ctx, local_params.u.jbig2.globals);
+ fz_catch(ctx)
+ fz_rethrow(ctx);
+ return stm;
+ }
+
else if (params->type != FZ_IMAGE_RAW)
return fz_open_image_decomp_stream(ctx, chain, params, NULL);