Add initial prototype.
This commit is contained in:
89
3-mid/opengl/private/gid/gid-decoding_jpg.ads
Normal file
89
3-mid/opengl/private/gid/gid-decoding_jpg.ads
Normal file
@@ -0,0 +1,89 @@
|
||||
private package GID.Decoding_JPG is
|
||||
|
||||
use JPEG_defs;
|
||||
|
||||
type JPEG_marker is
|
||||
(
|
||||
SOI , -- Start Of Image
|
||||
--
|
||||
SOF_0 , -- Start Of Frame - Baseline DCT
|
||||
SOF_1 , -- Extended sequential DCT
|
||||
SOF_2 , -- Progressive DCT
|
||||
SOF_3 , -- Lossless (sequential)
|
||||
SOF_5 , -- Differential sequential DCT
|
||||
SOF_6 , -- Differential progressive DCT
|
||||
SOF_7 , -- Differential lossless (sequential)
|
||||
SOF_8 , -- Reserved for JPEG extensions
|
||||
SOF_9 , -- Extended sequential DCT
|
||||
SOF_10 , -- Progressive DCT
|
||||
SOF_11 , -- Lossless (sequential)
|
||||
SOF_13 , -- Differential sequential DCT
|
||||
SOF_14 , -- Differential progressive DCT
|
||||
SOF_15 , -- Differential lossless (sequential)
|
||||
--
|
||||
DHT , -- Define Huffman Table
|
||||
DAC , -- Define Arithmetic Coding
|
||||
DQT , -- Define Quantization Table
|
||||
DRI , -- Define Restart Interval
|
||||
--
|
||||
APP_0 , -- JFIF - JFIF JPEG image - AVI1 - Motion JPEG (MJPG)
|
||||
APP_1 , -- EXIF Metadata, TIFF IFD format, JPEG Thumbnail (160x120)
|
||||
APP_2 , -- ICC color profile, FlashPix
|
||||
APP_3 ,
|
||||
APP_4 ,
|
||||
APP_5 ,
|
||||
APP_6 ,
|
||||
APP_7 ,
|
||||
APP_8 ,
|
||||
APP_9 ,
|
||||
APP_10 ,
|
||||
APP_11 ,
|
||||
APP_12 , -- Picture Info
|
||||
APP_13 , -- Photoshop Save As: IRB, 8BIM, IPTC
|
||||
APP_14 , -- Copyright Entries
|
||||
--
|
||||
COM , -- Comments
|
||||
SOS , -- Start of Scan
|
||||
EOI -- End of Image
|
||||
);
|
||||
|
||||
YCbCr_set : constant Compo_set:= (Y|Cb|Cr => True, others => False);
|
||||
Y_Grey_set: constant Compo_set:= (Y => True, others => False);
|
||||
CMYK_set : constant Compo_set:= (Y|Cb|Cr|I => True, others => False);
|
||||
|
||||
type Segment_head is record
|
||||
length : U16;
|
||||
kind : JPEG_marker;
|
||||
end record;
|
||||
|
||||
procedure Read(image: in out Image_descriptor; sh: out Segment_head);
|
||||
|
||||
-- SOF - Start Of Frame (the real header)
|
||||
procedure Read_SOF(image: in out Image_descriptor; sh: Segment_head);
|
||||
|
||||
procedure Read_DHT(image: in out Image_descriptor; data_length: Natural);
|
||||
procedure Read_DQT(image: in out Image_descriptor; data_length: Natural);
|
||||
procedure Read_DRI(image: in out Image_descriptor);
|
||||
|
||||
procedure Read_EXIF(image: in out Image_descriptor; data_length: Natural);
|
||||
|
||||
--------------------
|
||||
-- Image decoding --
|
||||
--------------------
|
||||
|
||||
generic
|
||||
type Primary_color_range is mod <>;
|
||||
with procedure Set_X_Y (x, y: Natural);
|
||||
with procedure Put_Pixel (
|
||||
red, green, blue : Primary_color_range;
|
||||
alpha : Primary_color_range
|
||||
);
|
||||
with procedure Feedback (percents: Natural);
|
||||
-- mode: Display_mode; -- nice -> progressive nicely displayed
|
||||
--
|
||||
procedure Load (
|
||||
image : in out Image_descriptor;
|
||||
next_frame: out Ada.Calendar.Day_Duration
|
||||
);
|
||||
|
||||
end GID.Decoding_JPG;
|
||||
Reference in New Issue
Block a user