exif 2.2.0 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8d658dd771d13abedfe7ab02bfede763a0021132
4
- data.tar.gz: 56327a0dade4446064ffbed2a849836598b891dd
2
+ SHA256:
3
+ metadata.gz: 0de28879ec8434fe5be0f9d0991d964800ea0add8600d405bc6865005185666c
4
+ data.tar.gz: 39f9aa6a21e95d82b801f59e7453d650335ac8b19141c487640ccae6ac9c7a5b
5
5
  SHA512:
6
- metadata.gz: a1e5a4b2d2826d24dcb5d5e2e59a6f1f4df7a2753ed17526b83c236f164d74139f4037833e55f913a5a3dc77f6e32398c9bdf48893f701647305b36ed22980c2
7
- data.tar.gz: dd5a25648daaa66665ccc0c3ad9b3da78a2f02b1ee2b77c016ad45d082293c61b4df75590f82584722b7806b08add02c98cd8e1aaee13aa9b32dd9d40788645d
6
+ metadata.gz: adb933cbd6ab8b5487346c4e8f3348df2337176f35b07eeef6bfa79c23ea1c619c0909e804577d2ceb2180796052a8d82e52c6fe33f147a1607ae8628be5a441
7
+ data.tar.gz: 6f9c748c4f7266f6f4de038cd60cc09fb92f69ceac2ad9faaa2c60c5295c20d2e04ab04463f41f2242f4369a3f31e4f33840eb027020e7f4cbae051850093977
data/ext/exif/data.c CHANGED
@@ -1,9 +1,9 @@
1
1
  #include "data.h"
2
2
  #include "ruby.h"
3
3
 
4
- #include <libexif/exif-log.h>
5
4
  #include <libexif/exif-data.h>
6
5
  #include <libexif/exif-loader.h>
6
+ #include <libexif/exif-log.h>
7
7
  #include <stdint.h>
8
8
  #include <time.h>
9
9
 
@@ -181,7 +181,7 @@ static void exif_corrupt_log_func(ExifLog *log, ExifLogCode code,
181
181
  }
182
182
  }
183
183
 
184
- void init_data() {
184
+ void init_data(void) {
185
185
  int length;
186
186
 
187
187
  rb_cExifData = rb_define_class_under(rb_mExif, "Data", rb_cObject);
@@ -208,7 +208,7 @@ VALUE new (VALUE self, VALUE input) {
208
208
  ed = exif_data_new();
209
209
  exif_data_log(ed, log);
210
210
  exif_data_load_data(ed, (unsigned char *)RSTRING_PTR(input),
211
- RSTRING_LEN(input));
211
+ (uint32_t)RSTRING_LEN(input));
212
212
  exif_log_unref(log);
213
213
  if (corrupt) {
214
214
  exif_data_free(ed);
@@ -222,7 +222,7 @@ VALUE new (VALUE self, VALUE input) {
222
222
  if (TYPE(buffer) == T_NIL)
223
223
  break;
224
224
  if (!exif_loader_write(loader, (unsigned char *)RSTRING_PTR(buffer),
225
- RSTRING_LEN(buffer)))
225
+ (uint32_t)RSTRING_LEN(buffer)))
226
226
  break;
227
227
  }
228
228
  ed = exif_loader_get_data(loader);
@@ -249,7 +249,6 @@ static VALUE brackets(VALUE self, VALUE ifd_symbol) {
249
249
  }
250
250
 
251
251
  static void each_content(ExifContent *ec, void *self_ptr) {
252
- VALUE *self;
253
252
  ExifIfd ifd;
254
253
 
255
254
  ifd = exif_content_get_ifd(ec);
@@ -266,6 +265,12 @@ static void each_entry(ExifEntry *entry, void *self_ptr) {
266
265
 
267
266
  ivar_name = exif_entry_to_ivar(entry);
268
267
  value = exif_entry_to_rb_value(entry);
268
+
269
+ if (ivar_name == 0x00) {
270
+ rb_warning("Unsupported tag %x", entry->tag);
271
+ return;
272
+ }
273
+
269
274
  rb_hash_aset(rb_hash_aref(rb_iv_get(*(VALUE *)self_ptr, "@ifds"),
270
275
  ID2SYM(rb_intern(
271
276
  ifd_name_mapping[exif_entry_get_ifd(entry)]))),
@@ -296,10 +301,8 @@ static void each_entry(ExifEntry *entry, void *self_ptr) {
296
301
  static VALUE exif_entry_to_rb_value(ExifEntry *entry) {
297
302
  ExifData *data;
298
303
  ExifByteOrder order;
299
- ExifRational rational;
300
- ExifSRational srational;
301
304
  VALUE ret;
302
- size_t len, i;
305
+ size_t i;
303
306
  unsigned char size;
304
307
 
305
308
  data = entry->parent->parent;
data/ext/exif/data.h CHANGED
@@ -1,3 +1,3 @@
1
1
  #pragma once
2
2
 
3
- void init_data();
3
+ void init_data(void);
data/ext/exif/exif.c CHANGED
@@ -1,12 +1,14 @@
1
1
  #include "data.h"
2
2
  #include "ruby.h"
3
3
 
4
- VALUE rb_mExif, rb_eError, rb_eNotReadable, rb_eIFDNotFound, rb_eUnknownDataType;
4
+ VALUE rb_mExif, rb_eError, rb_eNotReadable, rb_eIFDNotFound,
5
+ rb_eUnknownDataType;
5
6
 
6
7
  VALUE rb_exif_const_missing(VALUE klass, VALUE name) {
7
8
  const char not_readble[] = "NotReadble";
8
- if(strcmp(rb_id2name(SYM2ID(name)), not_readble) == 0) {
9
- rb_warn("constant NotReadble is deprecated and will be removed in the future, use NotReadable instead.");
9
+ if (strcmp(rb_id2name(SYM2ID(name)), not_readble) == 0) {
10
+ rb_warn("constant NotReadble is deprecated and will be removed in the "
11
+ "future, use NotReadable instead.");
10
12
  return rb_eNotReadable;
11
13
  }
12
14
  return rb_call_super(1, &name);
@@ -20,6 +22,8 @@ void Init_exif(void) {
20
22
  rb_eIFDNotFound = rb_define_class_under(rb_mExif, "IFDNotFound", rb_eError);
21
23
  rb_eUnknownDataType =
22
24
  rb_define_class_under(rb_mExif, "UnknownDataType", rb_eError);
23
- rb_define_singleton_method(rb_mExif, "const_missing", rb_exif_const_missing, 1);
25
+ rb_define_singleton_method(rb_mExif, "const_missing", rb_exif_const_missing,
26
+ 1);
27
+ rb_define_const(rb_mExif, "LIBEXIF_VERSION", rb_str_new2(LIBEXIF_VERSION));
24
28
  init_data();
25
29
  }
@@ -447,6 +447,70 @@ const char *exif_entry_to_ivar(ExifEntry *ee) {
447
447
  case EXIF_TAG_GPS_DIFFERENTIAL:
448
448
  return "@gps_differential";
449
449
  break;
450
+ #ifdef LIBEXIF_0_6_22_OR_HIGHER
451
+ case EXIF_TAG_BODY_SERIAL_NUMBER:
452
+ return "@body_serial_number";
453
+ break;
454
+ case EXIF_TAG_CAMERA_OWNER_NAME:
455
+ return "@camera_owner_name";
456
+ break;
457
+ case EXIF_TAG_COMPOSITE_IMAGE:
458
+ return "@composite_image";
459
+ break;
460
+ case EXIF_TAG_GPS_H_POSITIONING_ERROR:
461
+ return "@gps_h_positioning_error";
462
+ break;
463
+ case EXIF_TAG_LENS_MAKE:
464
+ return "@lens_make";
465
+ break;
466
+ case EXIF_TAG_LENS_MODEL:
467
+ return "@lens_model";
468
+ break;
469
+ case EXIF_TAG_LENS_SERIAL_NUMBER:
470
+ return "@lens_serial_number";
471
+ break;
472
+ case EXIF_TAG_LENS_SPECIFICATION:
473
+ return "@lens_specification";
474
+ break;
475
+ case EXIF_TAG_SOURCE_EXPOSURE_TIMES_OF_COMPOSITE_IMAGE:
476
+ return "@source_exposure_times_of_composite_image";
477
+ break;
478
+ case EXIF_TAG_SOURCE_IMAGE_NUMBER_OF_COMPOSITE_IMAGE:
479
+ return "@source_image_number_of_composite_image";
480
+ break;
481
+ #endif
482
+ #ifdef LIBEXIF_0_6_23_OR_HIGHER
483
+ case EXIF_TAG_IMAGE_DEPTH:
484
+ return "@image_depth";
485
+ break;
486
+ case EXIF_TAG_ISO_SPEED:
487
+ return "@iso_speed";
488
+ break;
489
+ case EXIF_TAG_ISO_SPEEDLatitudeYYY:
490
+ return "@iso_speedlatitudeyyy";
491
+ break;
492
+ case EXIF_TAG_ISO_SPEEDLatitudeZZZ:
493
+ return "@iso_speedlatitudezzz";
494
+ break;
495
+ case EXIF_TAG_OFFSET_TIME:
496
+ return "@offset_time";
497
+ break;
498
+ case EXIF_TAG_OFFSET_TIME_DIGITIZED:
499
+ return "@offset_time_digitized";
500
+ break;
501
+ case EXIF_TAG_OFFSET_TIME_ORIGINAL:
502
+ return "@offset_time_original";
503
+ break;
504
+ case EXIF_TAG_RECOMMENDED_EXPOSURE_INDEX:
505
+ return "@recommended_exposure_index";
506
+ break;
507
+ case EXIF_TAG_SENSITIVITY_TYPE:
508
+ return "@sensitivity_type";
509
+ break;
510
+ case EXIF_TAG_STANDARD_OUTPUT_SENSITIVITY:
511
+ return "@standard_output_sensitivity";
512
+ break;
513
+ #endif
450
514
  }
451
515
  return 0;
452
516
  }
data/ext/exif/extconf.rb CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  require 'mkmf'
4
4
  $CFLAGS << ' -std=c99 '
5
+ pkg_config('libexif')
5
6
  have_library('exif')
6
7
  have_header('libexif/exif-data.h')
8
+
9
+ checking_for 'libexif >= 0.6.22' do
10
+ if try_const(%w[EXIF_TAG_LENS_SPECIFICATION ExifTag], 'libexif/exif-tag.h')
11
+ append_cflags('-D LIBEXIF_0_6_22_OR_HIGHER')
12
+ end
13
+ end
14
+
15
+ checking_for 'libexif >= 0.6.23' do
16
+ if try_const(%w[EXIF_TAG_IMAGE_DEPTH ExifTag], 'libexif/exif-tag.h')
17
+ append_cflags('-D LIBEXIF_0_6_23_OR_HIGHER')
18
+ end
19
+ end
20
+
21
+ libexif_version = pkg_config('libexif', 'modversion') || 'unknown'
22
+ append_cflags("-D LIBEXIF_VERSION='\"#{libexif_version}\"'")
23
+
7
24
  create_makefile('exif/exif')
data/lib/exif/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Exif
4
- VERSION = '2.2.0'
4
+ VERSION = '2.2.3'
5
5
  end
metadata CHANGED
@@ -1,43 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exif
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jian Weihang
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-28 00:00:00.000000000 Z
11
+ date: 2022-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 1.15.4
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 1.15.4
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rake
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
- - - "~>"
17
+ - - ">="
32
18
  - !ruby/object:Gem::Version
33
- version: 12.0.0
19
+ version: 0.8.1
34
20
  type: :development
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
- - - "~>"
24
+ - - ">="
39
25
  - !ruby/object:Gem::Version
40
- version: 12.0.0
26
+ version: 0.8.1
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: rake-compiler
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +44,14 @@ dependencies:
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: 5.10.3
47
+ version: 5.11.3
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: 5.10.3
54
+ version: 5.11.3
69
55
  description: Ruby EXIF reader written in C extension.
70
56
  email: tonytonyjan@gmail.com
71
57
  executables: []
@@ -84,7 +70,7 @@ homepage: https://github.com/tonytonyjan/exif
84
70
  licenses:
85
71
  - MIT
86
72
  metadata: {}
87
- post_install_message:
73
+ post_install_message:
88
74
  rdoc_options: []
89
75
  require_paths:
90
76
  - lib
@@ -99,9 +85,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
85
  - !ruby/object:Gem::Version
100
86
  version: '0'
101
87
  requirements: []
102
- rubyforge_project:
103
- rubygems_version: 2.6.14
104
- signing_key:
88
+ rubygems_version: 3.3.7
89
+ signing_key:
105
90
  specification_version: 4
106
91
  summary: Ruby EXIF reader written in C extension.
107
92
  test_files: []