Coverage Report

Created: 2026-04-01 07:17

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ghostpdl/jpegxr/jpegxr_pixelformat.c
Line
Count
Source
1
/*
2
**
3
** $Id: jpegxr_priv.c,v 1.0 2009-02-23 13:47:11 Radhika Exp $
4
**
5
**
6
*/
7
8
/*************************************************************************
9
*
10
* This software module was originally contributed by Microsoft
11
* Corporation in the course of development of the
12
* ITU-T T.832 | ISO/IEC 29199-2 ("JPEG XR") format standard for
13
* reference purposes and its performance may not have been optimized.
14
*
15
* This software module is an implementation of one or more
16
* tools as specified by the JPEG XR standard.
17
*
18
* ITU/ISO/IEC give You a royalty-free, worldwide, non-exclusive
19
* copyright license to copy, distribute, and make derivative works
20
* of this software module or modifications thereof for use in
21
* products claiming conformance to the JPEG XR standard as
22
* specified by ITU-T T.832 | ISO/IEC 29199-2.
23
*
24
* ITU/ISO/IEC give users the same free license to this software
25
* module or modifications thereof for research purposes and further
26
* ITU/ISO/IEC standardization.
27
*
28
* Those intending to use this software module in products are advised
29
* that its use may infringe existing patents. ITU/ISO/IEC have no
30
* liability for use of this software module or modifications thereof.
31
*
32
* Copyright is not released for products that do not conform to
33
* to the JPEG XR standard as specified by ITU-T T.832 |
34
* ISO/IEC 29199-2.
35
*
36
* Microsoft Corporation retains full right to modify and use the code
37
* for its own purpose, to assign or donate the code to a third party,
38
* and to inhibit third parties from using the code for products that
39
* do not conform to the JPEG XR standard as specified by ITU-T T.832 |
40
* ISO/IEC 29199-2.
41
*
42
* This copyright notice must be included in all copies or derivative
43
* works.
44
*
45
* Copyright (c) ITU-T/ISO/IEC 2008, 2009.
46
***********************************************************************/
47
48
#ifdef _MSC_VER
49
#pragma comment (user,"$Id: jpegxr_priv.c,v 1.0 2009-02-23 13:47:11 Radhika Exp $")
50
#else
51
#ident "$Id: jpegxr_priv.c,v 1.0 2009-02-23 13:47:11 Radhika Exp $"
52
#endif
53
#include "jxr_priv.h"
54
#include <string.h>
55
/*
56
* This file contains functions for pixel format parsing
57
*/
58
unsigned char jxr_guids[NUM_GUIDS][16]=
59
{    
60
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x0D},/* JXR_24bppRGB = 0, */
61
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x0C},/* JXR_24bppBGR, */
62
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x0E},/* JXR_32bppBGR, */
63
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x15},/* JXR_48bppRGB, */
64
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x12},/* JXR_48bppRGBFixedPoint, */
65
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x3B},/* JXR_48bppRGBHalf, */
66
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x18},/* JXR_96bppRGBFixedPoint, */
67
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x40},/* JXR_64bppRGBFixedPoint, */
68
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x42},/* JXR_64bppRGBHalf, */
69
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x41},/* JXR_128bppRGBFixedPoint, */
70
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x1B},/* JXR_128bppRGBFloat, */
71
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x0F},/* JXR_32bppBGRA, */
72
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x16},/* JXR_64bppRGBA, */
73
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x1D},/* JXR_64bppRGBAFixedPoint, */
74
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x3A},/* JXR_64bppRGBAHalf, */
75
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x1E},/* JXR_128bppRGBAFixedPoint, */
76
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x19},/* JXR_128bppRGBAFloat, */
77
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x10},/* JXR_32bppPBGRA, */
78
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x17},/* JXR_64bppPRGBA, */
79
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x1A},/* JXR_128bppPRGBAFloat, */
80
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x1C},/* JXR_32bppCMYK, */
81
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x2C},/* JXR_40bppCMYKAlpha, */
82
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x1F},/* JXR_64bppCMYK, */
83
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x2D},/* JXR_80bppCMYKAlpha, */
84
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x20},/* JXR_24bpp3Channels, */
85
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x21},/* JXR_32bpp4Channels, */
86
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x22},/* JXR_40bpp5Channels, */
87
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x23},/* JXR_48bpp6Channels, */
88
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x24},/* JXR_56bpp7Channels, */
89
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x25},/* JXR_64bpp8Channels, */
90
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x2E},/* JXR_32bpp3ChannelsAlpha, */
91
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x2F},/* JXR_40bpp4ChannelsAlpha, */
92
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x30},/* JXR_48bpp5ChannelsAlpha, */
93
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x31},/* JXR_56bpp6ChannelsAlpha, */
94
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x32},/* JXR_64bpp7ChannelsAlpha, */
95
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x33},/* JXR_72bpp8ChannelsAlpha, */
96
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x26},/* JXR_48bpp3Channels, */
97
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x27},/* JXR_64bpp4Channels, */
98
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x28},/* JXR_80bpp5Channels, */
99
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x29},/* JXR_96bpp6Channels, */
100
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x2A},/* JXR_112bpp7Channels, */
101
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x2B},/* JXR_128bpp8Channels, */
102
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x34},/* JXR_64bpp3ChannelsAlpha, */
103
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x35},/* JXR_80bpp4ChannelsAlpha, */
104
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x36},/* JXR_96bpp5ChannelsAlpha, */
105
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x37},/* JXR_112bpp6ChannelsAlpha, */
106
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x38},/* JXR_128bpp7ChannelsAlpha, */
107
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x39},/* JXR_144bpp8ChannelsAlpha, */
108
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x08},/* JXR_8bppGray, */
109
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x0B},/* JXR_16bppGray, */
110
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x13},/* JXR_16bppGrayFixedPoint, */
111
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x3E},/* JXR_16bppGrayHalf, */
112
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x3F},/* JXR_32bppGrayFixedPoint, */
113
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x11},/* JXR_32bppGrayFloat, */
114
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x05},/* JXR_BlackWhite, */
115
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x09},/* JXR_16bppBGR555, */
116
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x0A},/* JXR_16bppBGR565, */
117
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x14},/* JXR_32bppBGR101010, */
118
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x3D},/* JXR_32bppRGBE, */
119
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x54},/* JXR_32bppCMYKDIRECT, */
120
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x55},/* JXR_64bppCMYKDIRECT, */
121
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x56},/* JXR_40bppCMYKDIRECTAlpha, */
122
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x43},/* JXR_80bppCMYKDIRECTAlpha, */
123
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x44},/* JXR_12bppYCC420, */
124
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x45},/* JXR_16bppYCC422, */
125
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x46},/* JXR_20bppYCC422, */
126
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x47},/* JXR_32bppYCC422, */
127
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x48},/* JXR_24bppYCC444, */
128
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x49},/* JXR_30bppYCC444, */
129
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x4A},/* JXR_48bppYCC444, */
130
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x4B},/* JXR_48bppYCC444FixedPoint, */
131
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x4C},/* JXR_20bppYCC420Alpha, */
132
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x4D},/* JXR_24bppYCC422Alpha, */
133
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x4E},/* JXR_30bppYCC422Alpha, */
134
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x4F},/* JXR_48bppYCC422Alpha, */
135
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x50},/* JXR_32bppYCC444Alpha, */
136
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x51},/* JXR_40bppYCC444Alpha, */
137
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x52},/* JXR_64bppYCC444Alpha, */
138
    {0x24, 0xC3, 0xDD, 0x6F, 03, 0x4E, 0xFE, 0x4B, 0xB1, 0x85, 0x3D, 0x77, 0x76, 0x8D, 0xC9,  0x53} /* JXR_64bppYCC444AlphaFixedPoint, */
139
};
140
141
unsigned int isEqualGUID(unsigned char guid1[16], unsigned char guid2[16])
142
0
{
143
0
    return memcmp(guid1,guid2,16) == 0;
144
0
}
145
146
147
/*
148
* $Log: jpegxr_pixelformat.c,v $
149
* Revision 1.2 2009/05/29 12:00:00 microsoft
150
* Reference Software v1.6 updates.
151
*
152
* Revision 1.1 2009/04/13 12:00:00 microsoft
153
* Reference Software v1.5 updates.
154
*
155
*/
156