[FFmpeg-devel] [PATCH 1/2] diracdec: Move strides to bytes, and pointer types to uint8_t. Also template functions for move to support 10-bit Parts of this patch were written by Rostislav Pehlivanov

Michael Niedermayer michaelni at gmx.at
Tue Dec 8 22:32:39 CET 2015


On Tue, Dec 08, 2015 at 07:27:41PM +0000, Kieran Kunhya wrote:
[...]

> +    if (bit_depth == 8)
> +        ret = ff_spatial_idwt_init2_8bit(d, buffer, width, height, stride, type, decomposition_count, temp);
> +    else if (bit_depth == 10)
> +        ret = ff_spatial_idwt_init2_10bit(d, buffer, width, height, stride, type, decomposition_count, temp);
> +    else if (bit_depth == 12)
> +        ret = ff_spatial_idwt_init2_12bit(d, buffer, width, height, stride, type, decomposition_count, temp);
> +    else
> +        av_log(NULL, AV_LOG_WARNING, "Unsupported bit depth = %i\n", bit_depth);

[...]
> @@ -1860,10 +1905,14 @@ static int dirac_decode_data_unit(AVCodecContext *avctx, const uint8_t *buf, int
>              return 0;
>  
>          /* [DIRAC_STD] 10. Sequence header */
> -        ret = avpriv_dirac_parse_sequence_header(avctx, &s->gb, &s->source);
> +        ret = avpriv_dirac_parse_sequence_header(avctx, &s->gb, &s->source,
> +                                                 &s->bit_depth);

> +        s->pshift = s->bit_depth > 8;
>          if (ret < 0)
>              return ret;
>  
> +        s->pshift = s->bit_depth > 8;
[...]


> +static void put_signed_rect_clamped_10bit_c(uint8_t *_dst, int dst_stride, const uint8_t *_src, int src_stride, int width, int height)
> +{
> +    int x, y;
> +    uint16_t *dst = (uint16_t *)_dst;
> +    int32_t *src = (int32_t *)_src;
> +    for (y = 0; y < height; y++) {
> +        for (x = 0; x < width; x+=4) {
> +            dst[x  ] = av_clip(src[x  ] + 512, 0, (1 << 10) - 1);
> +            dst[x+1] = av_clip(src[x+1] + 512, 0, (1 << 10) - 1);
> +            dst[x+2] = av_clip(src[x+2] + 512, 0, (1 << 10) - 1);
> +            dst[x+3] = av_clip(src[x+3] + 512, 0, (1 << 10) - 1);
> +        }
> +        dst += dst_stride >> 1;
> +        src += src_stride >> 2;
>      }
>  }

Is this intended to be in this or a subsequent patch ?

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I have never wished to cater to the crowd; for what I know they do not
approve, and what they approve I do not know. -- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20151208/713d6aaa/attachment.sig>


More information about the ffmpeg-devel mailing list