Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: remoting/base/decompressor_zlib.cc

Issue 11195029: Remove ZLib codec support from chromoting host and client. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « remoting/base/decompressor_zlib.h ('k') | remoting/base/decompressor_zlib_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "remoting/base/decompressor_zlib.h"
6
7 #if defined(USE_SYSTEM_ZLIB)
8 #include <zlib.h>
9 #else
10 #include "third_party/zlib/zlib.h"
11 #endif
12 #include "base/logging.h"
13
14 namespace remoting {
15
16 DecompressorZlib::DecompressorZlib() {
17 InitStream();
18 }
19
20 DecompressorZlib::~DecompressorZlib() {
21 inflateEnd(stream_.get());
22 }
23
24 void DecompressorZlib::Reset() {
25 inflateEnd(stream_.get());
26 InitStream();
27 }
28
29 bool DecompressorZlib::Process(const uint8* input_data, int input_size,
30 uint8* output_data, int output_size,
31 int* consumed, int* written) {
32 DCHECK_GT(output_size, 0);
33
34 // Setup I/O parameters.
35 stream_->avail_in = input_size;
36 stream_->next_in = (Bytef*)input_data;
37 stream_->avail_out = output_size;
38 stream_->next_out = (Bytef*)output_data;
39
40 int ret = inflate(stream_.get(), Z_NO_FLUSH);
41 if (ret == Z_STREAM_ERROR) {
42 NOTREACHED() << "zlib compression failed";
43 }
44
45 *consumed = input_size - stream_->avail_in;
46 *written = output_size - stream_->avail_out;
47
48 // Since we check that output is always greater than 0, the only
49 // reason for us to get Z_BUF_ERROR is when zlib requires more input
50 // data.
51 return ret == Z_OK || ret == Z_BUF_ERROR;
52 }
53
54 void DecompressorZlib::InitStream() {
55 stream_.reset(new z_stream());
56
57 stream_->next_in = Z_NULL;
58 stream_->zalloc = Z_NULL;
59 stream_->zfree = Z_NULL;
60 stream_->opaque = Z_NULL;
61
62 int ret = inflateInit(stream_.get());
63 DCHECK_EQ(ret, Z_OK);
64 }
65
66 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/base/decompressor_zlib.h ('k') | remoting/base/decompressor_zlib_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698