/usr/include/libindi/stream/jpegutils.h is in libindi-dev 1.7.1-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | /*
* jpegutils.h: Some Utility programs for dealing with
* JPEG encoded images
*
* Copyright (C) 1999 Rainer Johanni <Rainer@Johanni.de>
* Copyright (C) 2001 pHilipp Zabel <pzabel@gmx.de>
* Copyright (C) 2008 Angel Carpintero <ack@telenfonica.net>
*
*/
#pragma once
#include <stddef.h>
#include <stdio.h>
#include <inttypes.h>
/**
* \defgroup jpegSpace Functions to encode and decode JPEG
<b>jpeg_data</b>: buffer with input / output jpeg\n
<b>len</b>: Length of jpeg buffer\n
<b>itype</b>: Y4M_ILACE_NONE: Not interlaced\n
Y4M_ILACE_TOP_FIRST: Interlaced, top-field-first\n
Y4M_ILACE_BOTTOM_FIRST: Interlaced, bottom-field-first\n
<b>ctype</b> Chroma format for decompression.\n
Currently always 420 and hence ignored.\n
<b>raw0</b> buffer with input / output raw Y channel\n
<b>raw1</b> buffer with input / output raw U/Cb channel\n
<b>raw2</b> buffer with input / output raw V/Cr channel\n
<b>width</b> width of Y channel (width of U/V is width/2)\n
<b>height</b> height of Y channel (height of U/V is height/2)\n
*/
/*@{*/
#define Y4M_ILACE_NONE 0 /** non-interlaced, progressive frame */
#define Y4M_ILACE_TOP_FIRST 1 /** interlaced, top-field first */
#define Y4M_ILACE_BOTTOM_FIRST 2 /** interlaced, bottom-field first */
#define Y4M_ILACE_MIXED 3 /** mixed, "refer to frame header" */
#define Y4M_CHROMA_420JPEG 0 /** 4:2:0, H/V centered, for JPEG/MPEG-1 */
#define Y4M_CHROMA_420MPEG2 1 /** 4:2:0, H cosited, for MPEG-2 */
#define Y4M_CHROMA_420PALDV 2 /** 4:2:0, alternating Cb/Cr, for PAL-DV */
#define Y4M_CHROMA_444 3 /** 4:4:4, no subsampling, phew. */
#define Y4M_CHROMA_422 4 /** 4:2:2, H cosited */
#define Y4M_CHROMA_411 5 /** 4:1:1, H cosited */
#define Y4M_CHROMA_MONO 6 /** luma plane only */
#define Y4M_CHROMA_444ALPHA 7 /** 4:4:4 with an alpha channel */
#ifdef __cplusplus
extern "C" {
#endif
/**
* @short decode JPEG buffer
*/
int decode_jpeg_raw(unsigned char *jpeg_data, int len, int itype, int ctype, unsigned int width, unsigned int height,
unsigned char *raw0, unsigned char *raw1, unsigned char *raw2);
/**
* @brief decode_jpeg_rgb Read jpeg in memory buffer and produce RGB image
* @param inBuffer pointer to jpeg file in memory
* @param inSize file of jpeg file in bytes
* @param memptr pointer to store RGB data. To enhance performance, the memory must be allocated at least byte. memptr = malloc(1) since subsequent calls
* will use realloc to allocate memory. The caller is responsible for free(*memptr) eventually.
* @param memsize size of RGB data as determined after jpeg decompression
* @param naxis 1 for mono, 3 for color
* @param w width of image in pixels
* @param h height image in pixels
* @return 0 if decoding sucseeds, -1 otherwise.
*/
int decode_jpeg_rgb(unsigned char *inBuffer, unsigned long inSize, uint8_t **memptr, size_t *memsize, int *naxis, int *w, int *h);
/**
* @short decode JPEG raw gray buffer
*/
int decode_jpeg_gray_raw(unsigned char *jpeg_data, int len, int itype, int ctype, unsigned int width,
unsigned int height, unsigned char *raw0, unsigned char *raw1, unsigned char *raw2);
/**
* @short encode raw JPEG buffer
*/
int encode_jpeg_raw(unsigned char *jpeg_data, int len, int quality, int itype, int ctype, unsigned int width,
unsigned int height, unsigned char *raw0, unsigned char *raw1, unsigned char *raw2);
#ifdef __cplusplus
}
#endif
/*@}*/
|