jpeg_buffer
static int get_byte(struct jpeg_buffer *buf)
static int get_word_be(struct jpeg_buffer *buf, unsigned int *word)
static void skip(struct jpeg_buffer *buf, unsigned long len)
struct jpeg_buffer jpeg_buffer;
jpeg_buffer.end = buffer + size;
jpeg_buffer.curr = buffer;
c = get_byte(&jpeg_buffer);
skip(&jpeg_buffer, 3); /* segment length and bpp */
if (get_word_be(&jpeg_buffer, height) ||
get_word_be(&jpeg_buffer, width) ||
get_byte(&jpeg_buffer) != 3) /* YCbCr only */
skip(&jpeg_buffer, 1);
return get_byte(&jpeg_buffer);
if (get_word_be(&jpeg_buffer, &word))
skip(&jpeg_buffer, (long)word - 2);
struct s5p_jpeg_buffer jpeg_buffer;
jpeg_buffer.size = size;
jpeg_buffer.data = buffer;
jpeg_buffer.curr = 0;
c = get_byte(&jpeg_buffer);
c = get_byte(&jpeg_buffer);
if (get_word_be(&jpeg_buffer, &word))
sof = jpeg_buffer.curr; /* after 0xffc0 */
if (get_byte(&jpeg_buffer) == -1)
if (get_word_be(&jpeg_buffer, &height))
if (get_word_be(&jpeg_buffer, &width))
components = get_byte(&jpeg_buffer);
skip(&jpeg_buffer, 1);
subsampling = get_byte(&jpeg_buffer);
skip(&jpeg_buffer, 1);
skip(&jpeg_buffer, components * 2);
if (get_word_be(&jpeg_buffer, &word))
dqt[n_dqt] = jpeg_buffer.curr; /* after 0xffdb */
skip(&jpeg_buffer, length);
if (get_word_be(&jpeg_buffer, &word))
dht[n_dht] = jpeg_buffer.curr; /* after 0xffc4 */
skip(&jpeg_buffer, length);
sos = jpeg_buffer.curr - 2; /* 0xffda */
if (get_word_be(&jpeg_buffer, &word))
skip(&jpeg_buffer, length);
struct s5p_jpeg_buffer jpeg_buffer;
jpeg_buffer.size = 2; /* Ls */
jpeg_buffer.data =
jpeg_buffer.curr = 0;
if (get_word_be(&jpeg_buffer, &word))
jpeg_buffer.size = 0;
jpeg_buffer.size = (long)word - 2;
jpeg_buffer.data += 2;
jpeg_buffer.curr = 0;
components = get_byte(&jpeg_buffer);
c = get_byte(&jpeg_buffer);
x = get_byte(&jpeg_buffer);
struct s5p_jpeg_buffer jpeg_buffer;
jpeg_buffer.size = ctx->out_q.dht.len[j];
jpeg_buffer.data = (unsigned long)vb2_plane_vaddr(&vb->vb2_buf, 0) +
jpeg_buffer.curr = 0;
while (jpeg_buffer.curr < jpeg_buffer.size) {
c = get_byte(&jpeg_buffer);
c = get_byte(&jpeg_buffer);
c = get_byte(&jpeg_buffer);
struct s5p_jpeg_buffer jpeg_buffer;
jpeg_buffer.size = ctx->out_q.sof_len;
jpeg_buffer.data =
jpeg_buffer.curr = 0;
skip(&jpeg_buffer, 5); /* P, Y, X */
components = get_byte(&jpeg_buffer);
c = get_byte(&jpeg_buffer);
skip(&jpeg_buffer, 1);
x = get_byte(&jpeg_buffer);
struct s5p_jpeg_buffer jpeg_buffer;
jpeg_buffer.size = ctx->out_q.dqt.len[j];
jpeg_buffer.data = (unsigned long)vb2_plane_vaddr(&vb->vb2_buf, 0) +
jpeg_buffer.curr = 0;
while (jpeg_buffer.size - jpeg_buffer.curr >= 65) {
c = get_byte(&jpeg_buffer);
c = get_byte(&jpeg_buffer);