Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions binding.gyp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"targets": [
{
"target_name": "jpeg",
"sources": [
"src/common.cpp",
"src/jpeg_encoder.cpp",
"src/jpeg.cpp",
"src/fixed_jpeg_stack.cpp",
"src/dynamic_jpeg_stack.cpp",
"src/module.cpp"
],
"libraries": ["-lJPEG"],
"cflags!": [ "-fno-exceptions", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE" ],
"cflags_cc!": [ "-fno-exceptions", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE" ],
"conditions": [
["OS=='mac'", {
"xcode_settings": {
"GCC_ENABLE_CPP_EXCEPTIONS": "YES"
}
}]
]
}
]
}
2 changes: 1 addition & 1 deletion examples/dynamic-jpeg-stack-async.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var JpegLib = require('jpeg');
var JpegLib = require('../build/Release/jpeg');
var fs = require('fs');
var sys = require('sys');
var Buffer = require('buffer').Buffer;
Expand Down
2 changes: 1 addition & 1 deletion examples/dynamic-jpeg-stack.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var JpegLib = require('jpeg');
var JpegLib = require('../build/Release/jpeg');
var fs = require('fs');
var sys = require('sys');
var Buffer = require('buffer').Buffer;
Expand Down
2 changes: 1 addition & 1 deletion examples/fixed-jpeg-stack-async.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var JpegLib = require('jpeg');
var JpegLib = require('../build/Release/jpeg');
var fs = require('fs');
var sys = require('sys');
var Buffer = require('buffer').Buffer;
Expand Down
2 changes: 1 addition & 1 deletion examples/fixed-jpeg-stack.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var JpegLib = require('jpeg');
var JpegLib = require('../build/Release/jpeg');
var fs = require('fs');
var sys = require('sys');
var Buffer = require('buffer').Buffer;
Expand Down
2 changes: 1 addition & 1 deletion examples/jpeg-example-async.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var fs = require('fs');
var sys = require('sys');
var Jpeg = require('../jpeg').Jpeg;
var Jpeg = require('../build/Release/jpeg').Jpeg;
var Buffer = require('buffer').Buffer;

var rgba = fs.readFileSync('./rgba-terminal.dat');
Expand Down
2 changes: 1 addition & 1 deletion examples/jpeg-example.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var fs = require('fs');
var sys = require('sys');
var Jpeg = require('../jpeg').Jpeg;
var Jpeg = require('../build/Release/jpeg').Jpeg;
var Buffer = require('buffer').Buffer;

var rgba = fs.readFileSync('./rgba-terminal.dat');
Expand Down
2 changes: 1 addition & 1 deletion examples/jpeg-example2-async.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var fs = require('fs');
var sys = require('sys');
var Jpeg = require('../jpeg').Jpeg;
var Jpeg = require('../build/Release/jpeg').Jpeg;
var Buffer = require('buffer').Buffer;

var WIDTH = 400, HEIGHT = 300;
Expand Down
2 changes: 1 addition & 1 deletion examples/jpeg-example2.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var fs = require('fs');
var sys = require('sys');
var Jpeg = require('../jpeg').Jpeg;
var Jpeg = require('../build/Release/jpeg').Jpeg;
var Buffer = require('buffer').Buffer;

var WIDTH = 400, HEIGHT = 300;
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
"node": ">=0.1.93"
},
"scripts": {
"install": "node-waf configure build"
}
"install": "node-gyp rebuild"
},
"gypfile": true
}

6 changes: 3 additions & 3 deletions readme.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
This is a node.js module, writen in C++, that uses libjpeg to produce a JPEG
This is a node.js module, written in C++, that uses libjpeg to produce a JPEG
image (in memory) from a buffer of RGBA or RGB values. Since JPEG has no notion
of A (alpha), the module always uses just RGB values.

Expand All @@ -23,7 +23,7 @@ Jpeg object that takes 4 arguments in its constructor:

var jpeg = new Jpeg(buffer, width, height, [buffer_type]);

The first argument, `buffer`, is a nodee.js `Buffer` filled with RGBA or RGB
The first argument, `buffer`, is a node.js `Buffer` filled with RGBA or RGB
values.
The second argument is integer width of the image.
The third argument is integer height of the image.
Expand Down Expand Up @@ -108,7 +108,7 @@ How to install?

To get it compiled, you need to have libjpeg and node installed. Then just run

node-waf configure build
node-gyp rebuild

to build the Jpeg module. It will produce a `jpeg.node` file as the module.

Expand Down
12 changes: 7 additions & 5 deletions src/dynamic_jpeg_stack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ DynamicJpegStack::SetQuality(const Arguments &args)
}

void
DynamicJpegStack::EIO_JpegEncode(eio_req *req)
DynamicJpegStack::EIO_JpegEncode(uv_work_t *req)
{
encode_request *enc_req = (encode_request *)req->data;
DynamicJpegStack *jpeg = (DynamicJpegStack *)enc_req->jpeg_obj;
Expand All @@ -404,11 +404,10 @@ DynamicJpegStack::EIO_JpegEncode(eio_req *req)
}

int
DynamicJpegStack::EIO_JpegEncodeAfter(eio_req *req)
DynamicJpegStack::EIO_JpegEncodeAfter(uv_work_t *req)
{
HandleScope scope;

ev_unref(EV_DEFAULT_UC);
encode_request *enc_req = (encode_request *)req->data;
DynamicJpegStack *jpeg = (DynamicJpegStack *)enc_req->jpeg_obj;

Expand All @@ -435,6 +434,8 @@ DynamicJpegStack::EIO_JpegEncodeAfter(eio_req *req)
FatalException(try_catch);

enc_req->callback.Dispose();
delete req;

free(enc_req->jpeg);
free(enc_req->error);

Expand Down Expand Up @@ -468,9 +469,10 @@ DynamicJpegStack::JpegEncodeAsync(const Arguments &args)
enc_req->jpeg_len = 0;
enc_req->error = NULL;

eio_custom(EIO_JpegEncode, EIO_PRI_DEFAULT, EIO_JpegEncodeAfter, enc_req);
uv_work_t *_req = new uv_work_t;
_req->data = enc_req;
uv_queue_work(uv_default_loop(), _req, EIO_JpegEncode, (uv_after_work_cb)EIO_JpegEncodeAfter);

ev_ref(EV_DEFAULT_UC);
jpeg->Ref();

return Undefined();
Expand Down
4 changes: 2 additions & 2 deletions src/dynamic_jpeg_stack.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ class DynamicJpegStack : public node::ObjectWrap {

void update_optimal_dimension(int x, int y, int w, int h);

static void EIO_JpegEncode(eio_req *req);
static int EIO_JpegEncodeAfter(eio_req *req);
static void EIO_JpegEncode(uv_work_t *req);
static int EIO_JpegEncodeAfter(uv_work_t *req);
public:
DynamicJpegStack(buffer_type bbuf_type);
~DynamicJpegStack();
Expand Down
12 changes: 7 additions & 5 deletions src/fixed_jpeg_stack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ FixedJpegStack::SetQuality(const Arguments &args)
}

void
FixedJpegStack::EIO_JpegEncode(eio_req *req)
FixedJpegStack::EIO_JpegEncode(uv_work_t *req)
{
encode_request *enc_req = (encode_request *)req->data;
FixedJpegStack *jpeg = (FixedJpegStack *)enc_req->jpeg_obj;
Expand All @@ -272,11 +272,10 @@ FixedJpegStack::EIO_JpegEncode(eio_req *req)
}

int
FixedJpegStack::EIO_JpegEncodeAfter(eio_req *req)
FixedJpegStack::EIO_JpegEncodeAfter(uv_work_t *req)
{
HandleScope scope;

ev_unref(EV_DEFAULT_UC);
encode_request *enc_req = (encode_request *)req->data;

Handle<Value> argv[2];
Expand All @@ -300,6 +299,8 @@ FixedJpegStack::EIO_JpegEncodeAfter(eio_req *req)
FatalException(try_catch);

enc_req->callback.Dispose();
delete req;

free(enc_req->jpeg);
free(enc_req->error);

Expand Down Expand Up @@ -333,9 +334,10 @@ FixedJpegStack::JpegEncodeAsync(const Arguments &args)
enc_req->jpeg_len = 0;
enc_req->error = NULL;

eio_custom(EIO_JpegEncode, EIO_PRI_DEFAULT, EIO_JpegEncodeAfter, enc_req);
uv_work_t *_req = new uv_work_t;
_req->data = enc_req;
uv_queue_work(uv_default_loop(), _req, EIO_JpegEncode, (uv_after_work_cb)EIO_JpegEncodeAfter);

ev_ref(EV_DEFAULT_UC);
jpeg->Ref();

return Undefined();
Expand Down
4 changes: 2 additions & 2 deletions src/fixed_jpeg_stack.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ class FixedJpegStack : public node::ObjectWrap {

unsigned char *data;

static void EIO_JpegEncode(eio_req *req);
static int EIO_JpegEncodeAfter(eio_req *req);
static void EIO_JpegEncode(uv_work_t *req);
static int EIO_JpegEncodeAfter(uv_work_t *req);

public:
static void Initialize(v8::Handle<v8::Object> target);
Expand Down
12 changes: 7 additions & 5 deletions src/jpeg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ v8::Handle<v8::Value> Jpeg::SetSmoothing(const v8::Arguments &args)
}

void
Jpeg::EIO_JpegEncode(eio_req *req)
Jpeg::EIO_JpegEncode(uv_work_t *req)
{
encode_request *enc_req = (encode_request *)req->data;
Jpeg *jpeg = (Jpeg *)enc_req->jpeg_obj;
Expand All @@ -191,11 +191,10 @@ Jpeg::EIO_JpegEncode(eio_req *req)
}

int
Jpeg::EIO_JpegEncodeAfter(eio_req *req)
Jpeg::EIO_JpegEncodeAfter(uv_work_t *req)
{
HandleScope scope;

ev_unref(EV_DEFAULT_UC);
encode_request *enc_req = (encode_request *)req->data;

Handle<Value> argv[2];
Expand All @@ -219,6 +218,8 @@ Jpeg::EIO_JpegEncodeAfter(eio_req *req)
FatalException(try_catch);

enc_req->callback.Dispose();
delete req;

free(enc_req->jpeg);
free(enc_req->error);

Expand Down Expand Up @@ -252,9 +253,10 @@ Jpeg::JpegEncodeAsync(const Arguments &args)
enc_req->jpeg_len = 0;
enc_req->error = NULL;

eio_custom(EIO_JpegEncode, EIO_PRI_DEFAULT, EIO_JpegEncodeAfter, enc_req);
uv_work_t *_req = new uv_work_t;
_req->data = enc_req;
uv_queue_work(uv_default_loop(), _req, EIO_JpegEncode, (uv_after_work_cb)EIO_JpegEncodeAfter);

ev_ref(EV_DEFAULT_UC);
jpeg->Ref();

return Undefined();
Expand Down
4 changes: 2 additions & 2 deletions src/jpeg.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
class Jpeg : public node::ObjectWrap {
JpegEncoder jpeg_encoder;

static void EIO_JpegEncode(eio_req *req);
static int EIO_JpegEncodeAfter(eio_req *req);
static void EIO_JpegEncode(uv_work_t *req);
static int EIO_JpegEncodeAfter(uv_work_t *req);
public:
static void Initialize(v8::Handle<v8::Object> target);
Jpeg(unsigned char *ddata, int wwidth, int hheight, buffer_type bbuf_type);
Expand Down
2 changes: 2 additions & 0 deletions src/module.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ init(Handle<Object> target)
DynamicJpegStack::Initialize(target);
}

NODE_MODULE(jpeg, init)

30 changes: 0 additions & 30 deletions wscript

This file was deleted.