add version getters for decoder and encoder
WebPGetDecoderVersion() and WebPGetEncoderVersion() will not return 0.1.2 encoded as 0x000102 dwebp and cwebp also have a new "-version" flag Change-Id: I4fb4b5a8fc4e53681a386ff4b74fffb639fa237a
This commit is contained in:
parent
be4867d2f8
commit
650ffa3bbb
@ -594,6 +594,7 @@ static void HelpLong() {
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
printf(" -short ................. condense printed message\n");
|
printf(" -short ................. condense printed message\n");
|
||||||
printf(" -quiet ................. don't print anything.\n");
|
printf(" -quiet ................. don't print anything.\n");
|
||||||
|
printf(" -version ............... print version number and exit.\n");
|
||||||
printf(" -v ..................... verbose, e.g. print encoding/decoding "
|
printf(" -v ..................... verbose, e.g. print encoding/decoding "
|
||||||
"times\n");
|
"times\n");
|
||||||
printf("\n");
|
printf("\n");
|
||||||
@ -678,6 +679,11 @@ int main(int argc, const char *argv[]) {
|
|||||||
crop_y = atoi(argv[++c]);
|
crop_y = atoi(argv[++c]);
|
||||||
crop_w = atoi(argv[++c]);
|
crop_w = atoi(argv[++c]);
|
||||||
crop_h = atoi(argv[++c]);
|
crop_h = atoi(argv[++c]);
|
||||||
|
} else if (!strcmp(argv[c], "-version")) {
|
||||||
|
const int version = WebPGetEncoderVersion();
|
||||||
|
printf("%d.%d.%d\n",
|
||||||
|
(version >> 16) & 0xff, (version >> 8) & 0xff, version & 0xff);
|
||||||
|
return 0;
|
||||||
} else if (!strcmp(argv[c], "-quiet")) {
|
} else if (!strcmp(argv[c], "-quiet")) {
|
||||||
quiet = 1;
|
quiet = 1;
|
||||||
} else if (!strcmp(argv[c], "-preset") && c < argc - 1) {
|
} else if (!strcmp(argv[c], "-preset") && c < argc - 1) {
|
||||||
|
@ -205,12 +205,13 @@ typedef enum {
|
|||||||
|
|
||||||
static void help(const char *s) {
|
static void help(const char *s) {
|
||||||
printf("Usage: dwebp "
|
printf("Usage: dwebp "
|
||||||
"[in_file] [-h] [-v] [-ppm] [-pgm] [-o out_file]\n\n"
|
"[in_file] [-h] [-v] [-ppm] [-pgm] [-version] [-o out_file]\n\n"
|
||||||
"Decodes the WebP image file to PNG format [Default]\n"
|
"Decodes the WebP image file to PNG format [Default]\n"
|
||||||
"Use following options to convert into alternate image formats:\n"
|
"Use following options to convert into alternate image formats:\n"
|
||||||
" -ppm: save the raw RGB samples as color PPM\n"
|
" -ppm: save the raw RGB samples as color PPM\n"
|
||||||
" -pgm: save the raw YUV samples as a grayscale PGM\n"
|
" -pgm: save the raw YUV samples as a grayscale PGM\n"
|
||||||
" file with IMC4 layout.\n"
|
" file with IMC4 layout.\n"
|
||||||
|
" -version: print version number and exit.\n"
|
||||||
"Use -v for verbose (e.g. print encoding/decoding times)\n"
|
"Use -v for verbose (e.g. print encoding/decoding times)\n"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -232,6 +233,11 @@ int main(int argc, const char *argv[]) {
|
|||||||
out_file = argv[++c];
|
out_file = argv[++c];
|
||||||
} else if (!strcmp(argv[c], "-ppm")) {
|
} else if (!strcmp(argv[c], "-ppm")) {
|
||||||
format = PPM;
|
format = PPM;
|
||||||
|
} else if (!strcmp(argv[c], "-version")) {
|
||||||
|
const int version = WebPGetDecoderVersion();
|
||||||
|
printf("%d.%d.%d\n",
|
||||||
|
(version >> 16) & 0xff, (version >> 8) & 0xff, version & 0xff);
|
||||||
|
return 0;
|
||||||
} else if (!strcmp(argv[c], "-pgm")) {
|
} else if (!strcmp(argv[c], "-pgm")) {
|
||||||
format = PGM;
|
format = PGM;
|
||||||
} else if (!strcmp(argv[c], "-v")) {
|
} else if (!strcmp(argv[c], "-v")) {
|
||||||
|
@ -16,6 +16,12 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
int WebPGetDecoderVersion() {
|
||||||
|
return (DEC_MAJ_VERSION << 16) | (DEC_MIN_VERSION << 8) | DEC_REV_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// VP8Decoder
|
// VP8Decoder
|
||||||
|
|
||||||
|
@ -22,6 +22,11 @@ extern "C" {
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Various defines and enums
|
// Various defines and enums
|
||||||
|
|
||||||
|
// version numbers
|
||||||
|
#define DEC_MAJ_VERSION 0
|
||||||
|
#define DEC_MIN_VERSION 1
|
||||||
|
#define DEC_REV_VERSION 2
|
||||||
|
|
||||||
#define ONLY_KEYFRAME_CODE // to remove any code related to P-Frames
|
#define ONLY_KEYFRAME_CODE // to remove any code related to P-Frames
|
||||||
|
|
||||||
// intra prediction modes
|
// intra prediction modes
|
||||||
|
@ -23,6 +23,11 @@ extern "C" {
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Various defines and enums
|
// Various defines and enums
|
||||||
|
|
||||||
|
// version numbers
|
||||||
|
#define ENC_MAJ_VERSION 0
|
||||||
|
#define ENC_MIN_VERSION 1
|
||||||
|
#define ENC_REV_VERSION 2
|
||||||
|
|
||||||
// intra prediction modes
|
// intra prediction modes
|
||||||
enum { B_DC_PRED = 0, // 4x4 modes
|
enum { B_DC_PRED = 0, // 4x4 modes
|
||||||
B_TM_PRED = 1,
|
B_TM_PRED = 1,
|
||||||
|
@ -27,6 +27,12 @@ extern "C" {
|
|||||||
|
|
||||||
#define MAX_DIMENSION 16384 // maximum width/height allowed by the spec
|
#define MAX_DIMENSION 16384 // maximum width/height allowed by the spec
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
int WebPGetEncoderVersion() {
|
||||||
|
return (ENC_MAJ_VERSION << 16) | (ENC_MIN_VERSION << 8) | ENC_REV_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// WebPPicture
|
// WebPPicture
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -18,6 +18,10 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Return the decoder's version number, packed in hexadecimal using 8bits for
|
||||||
|
// each of major/minor/revision. E.g: v2.5.7 is 0x020507.
|
||||||
|
int WebPGetDecoderVersion();
|
||||||
|
|
||||||
// Retrieve basic header information: width, height.
|
// Retrieve basic header information: width, height.
|
||||||
// This function will also validate the header and return 0 in
|
// This function will also validate the header and return 0 in
|
||||||
// case of formatting error.
|
// case of formatting error.
|
||||||
|
@ -22,6 +22,10 @@ extern "C" {
|
|||||||
|
|
||||||
#define WEBP_ENCODER_ABI_VERSION 0x0001
|
#define WEBP_ENCODER_ABI_VERSION 0x0001
|
||||||
|
|
||||||
|
// Return the encoder's version number, packed in hexadecimal using 8bits for
|
||||||
|
// each of major/minor/revision. E.g: v2.5.7 is 0x020507.
|
||||||
|
int WebPGetEncoderVersion();
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// One-stop-shop call! No questions asked:
|
// One-stop-shop call! No questions asked:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user