[FFmpeg-devel] [PATCH] libopenjpeg wrapper for jpeg2k decoding
Jai Menon
jmenon86
Thu Jan 29 07:05:31 CET 2009
Hi,
On Thu, Jan 29, 2009 at 4:27 AM, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Wed, Jan 28, 2009 at 02:23:46PM +0530, Jai Menon wrote:
> [...]
>> +static int libopenjpeg_decode_frame(AVCodecContext *avctx,
>> + void *data, int *data_size,
>> + const uint8_t *buf, int buf_size)
>> +{
>> + LibOpenJPEGContext *ctx = avctx->priv_data;
>> + AVPicture *picture = data;
>> + opj_dinfo_t *dec = NULL;
>> + opj_cio_t *stream = NULL;
>> + opj_image_t *image = NULL;
>> + int width, height, has_alpha = 0, ret = -1;
>> + int x, y, index;
>> + int picture_size;
>> + uint8_t *img_ptr;
>> + float scale;
>> +
>> + *data_size = 0;
>> +
>> + // Check if input is a raw jpeg2k codestream or in jp2 wrapping
>
>> + if((AV_RB32(buf) == 12) && (AV_RB32(buf + 4) == JP2_SIG_TYPE)
>> + && (AV_RB32(buf + 8) == JP2_SIG_VALUE))
>> + dec = opj_create_decompress(CODEC_JP2);
>> + else dec = opj_create_decompress(CODEC_J2K);
>
> if{
> }else
> and this can be vertically aligned prettier
fixed.
> [...]
>> + width = image->comps[0].w;
>> + height = image->comps[0].h;
>
> vertical align
done.
> [...]
>> + img_ptr = ctx->img_buf;
>> + picture->data[0] = ctx->img_buf;
>> + scale = 255.0f / (float)((1 << image->comps[0].prec) - 1);
>> + for(y = 0; y < height; y++) {
>> + index = y*width;
>> + for(x = 0; x < width; x++, index++) {
>> + *img_ptr++ = image->comps[0].data[index] * scale;
>
>> + if((image->numcomps > 2) && check_image_attributes(image)) {
>
> superflous ()
yes, removed.
revised patch attached.
[...]
--
Regards,
Jai
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libopenjpeg_wrapper.patch
Type: text/x-patch
Size: 11694 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090129/56587783/attachment.bin>
More information about the ffmpeg-devel
mailing list