[FFmpeg-devel] [PATCH] lavc/tiff: Decode embedded JPEGs in DNG images

Nick Renieris velocityra at gmail.com
Wed Jul 24 13:14:59 EEST 2019


The latest patch is unrelated to the gamma stuff (which in hindsight
isn't accurately implemented, so never mind), it has a regression fix
for z8pf.dng and adds compatibility to the following:
https://www.camerafv5.com/pages/raw-samples.php
https://www.camerafv5.com/pages/nexus6-raw-samples.php
https://www.chris-juettner.de/projekte/raw-samples-comparison-download/dji-mavic-air
etc

>Do you plan to implement camera native RGB to CIE XYZ mapping as specified
in DNG Spec 1.4.0.0 Chapter 6 ?

Perhaps. I haven't looked at it much but it may be too much work for
the time I have left, I will talk with my mentor on whether to
prioritize it (a lot of images look fine without it).

Στις Τετ, 24 Ιουλ 2019 στις 1:06 μ.μ., ο/η <velocityra at gmail.com> έγραψε:
>
> From: Nick Renieris <velocityra at gmail.com>
>
> Used a technique similar to lavc/tdsc.c for invoking the MJPEG decoder.
>
> This commit adds support for:
> - DNG tiles
> - DNG tile huffman lossless JPEG decoding
> - DNG color scaling [1]
>   - LinearizationTable tag
>   - BlackLevel tag
>
> [1]: As specified in the DNG Specification - Chapter 5
>
> Signed-off-by: Nick Renieris <velocityra at gmail.com>
> ---
>  libavcodec/tiff.c | 16 ----------------
>  1 file changed, 16 deletions(-)
>
> diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
> index 423eaf0647..4f6ba256c6 100644
> --- a/libavcodec/tiff.c
> +++ b/libavcodec/tiff.c
> @@ -280,19 +280,6 @@ static void av_always_inline horizontal_fill(TiffContext *s,
>                                               int usePtr, const uint8_t *src,
>                                               uint8_t c, int width, int offset)
>  {
> -    /* Handle DNG images with uncompressed strips (non-tiled) */
> -    if (s->tiff_type == TIFF_TYPE_DNG || s->tiff_type == TIFF_TYPE_CINEMADNG) {
> -        dng_blit(s,
> -                 dst + offset,
> -                 width,
> -                 src,
> -                 width,
> -                 width,
> -                 1,
> -                 0);
> -        return;
> -    }
> -
>      switch (bpp) {
>      case 1:
>          while (--width >= 0) {
> @@ -1799,9 +1786,6 @@ again:
>          } else if (s->is_tiled) {
>              av_log(avctx, AV_LOG_ERROR, "DNG uncompressed tiled images are not supported\n");
>              return AVERROR_PATCHWELCOME;
> -        } else if (s->bpp != 8) {
> -            av_log(avctx, AV_LOG_ERROR, "DNG uncompressed non-tiled non-8bpp images are not supported\n");
> -            return AVERROR_PATCHWELCOME;
>          }
>      }
>
> --
> 2.21.0.windows.1
>


More information about the ffmpeg-devel mailing list