diff --git a/README.mux b/README.mux index 8bcdea66..661b12ba 100644 --- a/README.mux +++ b/README.mux @@ -31,6 +31,7 @@ Usage: webpmux -get GET_OPTIONS INPUT -o OUTPUT [-bgcolor BACKGROUND_COLOR] -o OUTPUT webpmux -info INPUT webpmux [-h|-help] + webpmux -version GET_OPTIONS: Extract relevant data. diff --git a/examples/gif2webp.c b/examples/gif2webp.c index 5b43c03e..cb051058 100644 --- a/examples/gif2webp.c +++ b/examples/gif2webp.c @@ -233,9 +233,12 @@ int main(int argc, const char *argv[]) { } else if (!strcmp(argv[c], "-f") && c < argc - 1) { config.filter_strength = strtol(argv[++c], NULL, 0); } else if (!strcmp(argv[c], "-version")) { - const int version = WebPGetEncoderVersion(); - printf("%d.%d.%d\n", - (version >> 16) & 0xff, (version >> 8) & 0xff, version & 0xff); + const int enc_version = WebPGetEncoderVersion(); + const int mux_version = WebPGetMuxVersion(); + printf("WebP Encoder version: %d.%d.%d\nWebP Mux version: %d.%d.%d\n", + (enc_version >> 16) & 0xff, (enc_version >> 8) & 0xff, + enc_version & 0xff, (mux_version >> 16) & 0xff, + (mux_version >> 8) & 0xff, mux_version & 0xff); return 0; } else if (!strcmp(argv[c], "-quiet")) { quiet = 1; diff --git a/examples/vwebp.c b/examples/vwebp.c index ce5559f8..8ea105bb 100644 --- a/examples/vwebp.c +++ b/examples/vwebp.c @@ -278,9 +278,12 @@ int main(int argc, char *argv[]) { } else if (!strcmp(argv[c], "-info")) { kParams.print_info = 1; } else if (!strcmp(argv[c], "-version")) { - const int version = WebPGetDecoderVersion(); - printf("%d.%d.%d\n", - (version >> 16) & 0xff, (version >> 8) & 0xff, version & 0xff); + const int dec_version = WebPGetDecoderVersion(); + const int dmux_version = WebPGetDemuxVersion(); + printf("WebP Decoder version: %d.%d.%d\nWebP Demux version: %d.%d.%d\n", + (dec_version >> 16) & 0xff, (dec_version >> 8) & 0xff, + dec_version & 0xff, (dmux_version >> 16) & 0xff, + (dmux_version >> 8) & 0xff, dmux_version & 0xff); return 0; } else if (!strcmp(argv[c], "-mt")) { config.options.use_threads = 1; diff --git a/examples/webpmux.c b/examples/webpmux.c index a4ce6b13..69603fea 100644 --- a/examples/webpmux.c +++ b/examples/webpmux.c @@ -49,6 +49,7 @@ Misc: webpmux -info in.webp webpmux [ -h | -help ] + webpmux -version */ #include @@ -277,6 +278,7 @@ static void PrintHelp(void) { printf(" [-bgcolor BACKGROUND_COLOR] -o OUTPUT\n"); printf(" webpmux -info INPUT\n"); printf(" webpmux [-h|-help]\n"); + printf(" webpmux -version\n"); printf("\n"); printf("GET_OPTIONS:\n"); @@ -628,6 +630,12 @@ static int ParseCommandLine(int argc, const char* argv[], PrintHelp(); DeleteConfig(config); exit(0); + } else if (!strcmp(argv[i], "-version")) { + const int version = WebPGetMuxVersion(); + printf("%d.%d.%d\n", + (version >> 16) & 0xff, (version >> 8) & 0xff, version & 0xff); + DeleteConfig(config); + exit(0); } else { ERROR_GOTO2("ERROR: Unknown option: '%s'.\n", argv[i], ErrParse); } diff --git a/man/webpmux.1 b/man/webpmux.1 index 0560138e..d2c2d1b6 100644 --- a/man/webpmux.1 +++ b/man/webpmux.1 @@ -1,5 +1,5 @@ .\" Hey, EMACS: -*- nroff -*- -.TH WEBPMUX 1 "February 01, 2013" +.TH WEBPMUX 1 "February 26, 2013" .SH NAME webpmux \- command line tool to create WebP Mux/container file. .SH SYNOPSIS @@ -43,6 +43,8 @@ webpmux \- command line tool to create WebP Mux/container file. .I INPUT .br .B webpmux [\-h|\-help] +.br +.B webpmux \-version .SH DESCRIPTION This manual page documents the .B webpmux diff --git a/src/demux/demux.c b/src/demux/demux.c index 18abcdee..950863a8 100644 --- a/src/demux/demux.c +++ b/src/demux/demux.c @@ -21,6 +21,10 @@ extern "C" { #endif +#define DMUX_MAJ_VERSION 0 +#define DMUX_MIN_VERSION 1 +#define DMUX_REV_VERSION 0 + typedef struct { size_t start_; // start location of the data size_t end_; // end location @@ -88,6 +92,12 @@ static const ChunkParser kMasterChunks[] = { { { '0', '0', '0', '0' }, NULL, NULL }, }; +//------------------------------------------------------------------------------ + +int WebPGetDemuxVersion(void) { + return (DMUX_MAJ_VERSION << 16) | (DMUX_MIN_VERSION << 8) | DMUX_REV_VERSION; +} + // ----------------------------------------------------------------------------- // MemBuffer diff --git a/src/mux/muxi.h b/src/mux/muxi.h index 074fb6b4..56f3e027 100644 --- a/src/mux/muxi.h +++ b/src/mux/muxi.h @@ -24,6 +24,10 @@ extern "C" { //------------------------------------------------------------------------------ // Defines and constants. +#define MUX_MAJ_VERSION 0 +#define MUX_MIN_VERSION 1 +#define MUX_REV_VERSION 0 + // Chunk object. typedef struct WebPChunk WebPChunk; struct WebPChunk { diff --git a/src/mux/muxinternal.c b/src/mux/muxinternal.c index be20dbd5..d137215a 100644 --- a/src/mux/muxinternal.c +++ b/src/mux/muxinternal.c @@ -36,6 +36,12 @@ const ChunkInfo kChunks[] = { { NIL_TAG, WEBP_CHUNK_NIL, UNDEFINED_CHUNK_SIZE } }; +//------------------------------------------------------------------------------ + +int WebPGetMuxVersion(void) { + return (MUX_MAJ_VERSION << 16) | (MUX_MIN_VERSION << 8) | MUX_REV_VERSION; +} + //------------------------------------------------------------------------------ // Life of a chunk object. diff --git a/src/webp/demux.h b/src/webp/demux.h index 584402d3..9cc34116 100644 --- a/src/webp/demux.h +++ b/src/webp/demux.h @@ -62,6 +62,12 @@ typedef enum WebPFormatFeature WebPFormatFeature; typedef struct WebPIterator WebPIterator; typedef struct WebPChunkIterator WebPChunkIterator; +//------------------------------------------------------------------------------ + +// Returns the version number of the demux library, packed in hexadecimal using +// 8bits for each of major/minor/revision. E.g: v2.5.7 is 0x020507. +WEBP_EXTERN(int) WebPGetDemuxVersion(void); + //------------------------------------------------------------------------------ // Life of a Demux object diff --git a/src/webp/mux.h b/src/webp/mux.h index ab963e92..713d738c 100644 --- a/src/webp/mux.h +++ b/src/webp/mux.h @@ -87,6 +87,12 @@ enum WebPChunkId { WEBP_CHUNK_NIL }; +//------------------------------------------------------------------------------ + +// Returns the version number of the mux library, packed in hexadecimal using +// 8bits or each of major/minor/revision. E.g: v2.5.7 is 0x020507. +WEBP_EXTERN(int) WebPGetMuxVersion(void); + //------------------------------------------------------------------------------ // Life of a Mux object