diff options
author | deva <deva> | 2006-06-09 18:20:51 +0000 |
---|---|---|
committer | deva <deva> | 2006-06-09 18:20:51 +0000 |
commit | 8f9101869f6b460f61033ce434bba0a793d25137 (patch) | |
tree | fd07cb44be0b01da339f79164c323793d72ab4a9 /src/jpeg_mem_dest.cc | |
parent | 6c31ad03de714676516d69ae9114e8bdd67c0d96 (diff) |
Moved files to other folder:
lib - Shared files between server and client
client - Client files
server - Server files
Diffstat (limited to 'src/jpeg_mem_dest.cc')
-rw-r--r-- | src/jpeg_mem_dest.cc | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/src/jpeg_mem_dest.cc b/src/jpeg_mem_dest.cc deleted file mode 100644 index 439c9a8..0000000 --- a/src/jpeg_mem_dest.cc +++ /dev/null @@ -1,137 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * jpeg_mem_dest.cc - * - * Thu Jul 28 16:40:08 CEST 2005 - * Copyright 2005 Bent Bisballe - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of MIaV. - * - * MIaV is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * MIaV is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with MIaV; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#include <config.h> -#include "jpeg_mem_dest.h" - -#define OUTPUT_BUF_SIZE 4096 /* choose an efficiently ?? size */ - -/* Expanded data destination object for stdio output */ -typedef struct { - struct jpeg_destination_mgr pub; /* public fields */ - - JOCTET * outbuff; /* target buffer */ - size_t * size; -} mem_destination_mgr; - -typedef mem_destination_mgr * mem_dest_ptr; - -/* - * Initialize destination --- called by jpeg_start_compress - * before any data is actually written. - */ -void init_destination (j_compress_ptr cinfo) -{ - mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest; - - *dest->size = 0; - dest->pub.next_output_byte = dest->outbuff; - dest->pub.free_in_buffer = OUTPUT_BUF_SIZE; -} - -/* - * Terminate destination --- called by jpeg_finish_compress - * after all data has been written. Usually needs to flush buffer. - * - * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding - * application must deal with any cleanup that should happen even - * for error exit. - */ -void term_destination (j_compress_ptr cinfo) -{ - mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest; - size_t datacount = OUTPUT_BUF_SIZE - dest->pub.free_in_buffer; - - /* Write any data remaining in the buffer */ - if (datacount > 0) { - dest->outbuff+=datacount; - *dest->size+=datacount; - } -} - -/* - * Empty the output buffer --- called whenever buffer fills up. - * - * In typical applications, this should write the entire output buffer - * (ignoring the current state of next_output_byte & free_in_buffer), - * reset the pointer & count to the start of the buffer, and return TRUE - * indicating that the buffer has been dumped. - * - * In applications that need to be able to suspend compression due to output - * overrun, a FALSE return indicates that the buffer cannot be emptied now. - * In this situation, the compressor will return to its caller (possibly with - * an indication that it has not accepted all the supplied scanlines). The - * application should resume compression after it has made more room in the - * output buffer. Note that there are substantial restrictions on the use of - * suspension --- see the documentation. - * - * When suspending, the compressor will back up to a convenient restart point - * (typically the start of the current MCU). next_output_byte & free_in_buffer - * indicate where the restart point will be if the current call returns FALSE. - * Data beyond this point will be regenerated after resumption, so do not - * write it out when emptying the buffer externally. - */ -boolean empty_output_buffer (j_compress_ptr cinfo) -{ - mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest; - - dest->outbuff+=OUTPUT_BUF_SIZE; - *dest->size+=OUTPUT_BUF_SIZE; - - dest->pub.next_output_byte = dest->outbuff; - dest->pub.free_in_buffer = OUTPUT_BUF_SIZE; - - return TRUE; -} - -/* - * Prepare for output to a memory buffer. - . The caller must have already allocated the buffer, and is responsible - * for closing it after finishing compression. - */ -void jpeg_mem_dest (j_compress_ptr cinfo, char * outbuff, size_t * size) -{ - mem_dest_ptr dest; - - /* The destination object is made permanent so that multiple JPEG images - * can be written to the same file without re-executing jpeg_stdio_dest. - * This makes it dangerous to use this manager and a different destination - * manager serially with the same JPEG object, because their private object - * sizes may be different. Caveat programmer. - */ - if (cinfo->dest == NULL) { /* first time for this JPEG object? */ - cinfo->dest = (struct jpeg_destination_mgr *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - sizeof(mem_destination_mgr)); - } - - dest = (mem_dest_ptr) cinfo->dest; - dest->pub.init_destination = init_destination; - dest->pub.empty_output_buffer = empty_output_buffer; - dest->pub.term_destination = term_destination; - dest->outbuff = (JOCTET *)outbuff; - dest->size = (size_t *)size; -} |