Dustin Oprea
c93f37a85d
ifd_enumerate: Now parse and expose thumbnail.
2018-05-24 15:27:45 -04:00
Dustin Oprea
d7ff9ccbbe
Tag dumps now include indices.
2018-05-24 03:19:46 -04:00
Dustin Oprea
843976865e
ifdBuilder.dumpToStrings: Fixed usage of II.
...
- We were ambiguously treating it as both the parent II in some places
and the child II in others. It's supposed to be the parent II.
2018-05-24 01:58:58 -04:00
Dustin Oprea
e3c96766ca
tests: Fixed tests for recent changes. One remaining.
2018-05-22 09:39:03 -04:00
Dustin Oprea
3cee9b956b
ifd_builder_encoder: Fixed subtle but detrimental bugs.
...
- ifd_builder_encode
- Bugfix: We were assigning the "next" IFD in correctly (so, chaining
was broken).
- Bugfix: We weren't using the right value when *writing* the "next"
IFD offset (so, chaining was, again, broken).
- The same IFD was showing as both a child and a sibling, so we were
seeing the EXIF IFD also being chained-to by the first root IFD
instead of the *actual* sibling, but only after encoding and then
decoding (so, this had to be tracked down in the encoding
semantics, which was non-trivial).
- Added a test for the stuff that we fixed.
- Implemented journaling, where we can dump a hierarchically-formatted
list of operations involved in a completed encode.
- ifd_enumerate: Added (Ifd).TagValueBytes() to return the raw tag-
value's bytes (rather than just having (Ifd).TagValue(), which returns
the value marshaled into a string). Good for comparing raw encoded
and decoded values without imposing interpretation (which gets us into
trouble with unknown-type tags whose values are non-standard and
undocumentedand, therefore, not actually parseable).
- Rewired a lot of print and dump functions.
- For naming-specificity as well as functionality.
- Removed from debugging.
2018-05-21 13:14:42 -04:00
Dustin Oprea
6207bd6200
Checkpoint.
2018-05-12 23:12:53 -04:00
Dustin Oprea
cf17cf4aa6
ifd: Can now resolve its own tags' values.
...
- Adjustments to argument naming.
2018-05-06 16:19:20 -04:00
Dustin Oprea
98b3d60a12
type: Added encode and decode tests for all types but undefined.
...
- Updated `(TagType).Encode()` to use the byte-order it already has.
- TODO: Add tests for TypeUndefined.
2018-05-05 15:15:17 -04:00
Dustin Oprea
7166faa0be
type: Renamed ValueBytes()
to Encode()
.
2018-05-05 02:17:43 -04:00
Dustin Oprea
6c71ccf651
ifd_builder_encode: Bugfixed next-IFD offsets.
...
- Affected sibling IFDs.
2018-05-05 02:01:18 -04:00
Dustin Oprea
887842e85a
ifd_enumerate: Improved DumpTree()
.
2018-05-05 01:58:00 -04:00
Dustin Oprea
ea8e174374
ifd_builder_encode: Simplified arithmetic on IFD encode.
2018-05-05 01:03:00 -04:00
Dustin Oprea
a3f14b2e42
ifd_builder_encode: Extended test to allocate multiple child IFDs.
...
- Want to be sure that the arithmetic to bump the offsets works.
2018-05-05 00:28:28 -04:00
Dustin Oprea
4e0ba639f9
ifd_builder_encode: Replaced EntrySize()
with a constant.
2018-05-05 00:15:59 -04:00
Dustin Oprea
306b314f7a
ifd_tag_entry: Added test.
2018-05-04 18:40:35 -04:00
Dustin Oprea
b18da0cc3d
ifd_tag_entry: Added full test coverage.
...
- bytes are now stringified to a hex-byte representation.
2018-05-04 18:34:01 -04:00
Dustin Oprea
d265631db3
ci: Fixed badge.
2018-05-04 11:05:35 -04:00
Dustin Oprea
b46d138022
utility: Added tests.
2018-05-04 05:09:27 -04:00
Dustin Oprea
a9c16ec9ef
utility: Added tests.
2018-05-03 12:59:12 -04:00
Dustin Oprea
c408aa04d0
ci: Added support for 1.6. Dropped support for unsupported 1.10 .
2018-05-03 12:45:18 -04:00
Dustin Oprea
21ce2d887e
ci: Added support for more Go versions.
2018-05-03 12:43:15 -04:00
Dustin Oprea
75b2c75c5a
ifd_builder_encode: Added tests for encoding child IBs to EXIF.
...
- Big step. This is the most complicated thing we can do.
- ifd_builder_encode: Need to debug encoding linked IFDs to EXIF.
- ifd_builder: Renamed `SetNextIfd()` to `SetNextIb()`.
- ifd_builder: Bugfix to size assertion on return of
(IfdBuilderEncode).encodeIfdToBytes().
- ifd_enumerate: Rename PrintNode() to PrintTree().
- ifd_enumerate: Added DumpTree() (to return a list of strings).
2018-05-03 12:43:06 -04:00
Dustin Oprea
b75f980bc4
ifd_enumerate: Create II when Ifd
is constructed.
...
- ..rather than on-the-fly. Now efficient, especially now that it's used
for find operations.
2018-05-03 11:13:34 -04:00
Dustin Oprea
8c09d04212
ifd_enumerate: Added find-by-id and find-by-name to tags in ifd
.
...
- Made `(Ifd).Entries` a slice of pointers ([]*IfdTagEntry).
2018-05-03 04:09:06 -04:00
Dustin Oprea
84fe4298c4
documentation: Corrected go-get for tests.
2018-05-02 15:23:55 -04:00
Dustin Oprea
4d0cad2afb
ci: Now print test names.
2018-05-02 15:22:12 -04:00
Dustin Oprea
7518b0882a
exif: Bugfix to message in test.
...
- Put Travis badges in documentation.
2018-05-02 15:14:21 -04:00
Dustin Oprea
64e84ab28e
ci: Added Travis config.
2018-05-02 13:53:42 -04:00
Dustin Oprea
51fdf33590
exif-read-tool: Added JSON support.
2018-05-02 13:11:23 -04:00
Dustin Oprea
35ddc4f803
ifd_builder_encode: Fixed tests from previous change.
...
- Simplified `builderTag` use.
2018-05-02 07:04:47 -04:00
Dustin Oprea
16586eb8cb
ifd_builder: Now embed type in builderTag
.
...
- We were automatically looking this up but this will prevent users from
having a mechanism to use custom tags.
2018-05-02 06:40:36 -04:00
Dustin Oprea
b748843a75
tags_unknown: Seeded a first test for encode/decode.
...
- type_encode: `EncodeWithType` can now encode TypeAsciiNoNul.
- Resolved/removed a bunch of to-do's.
2018-05-02 06:04:14 -04:00
Dustin Oprea
cebf021131
exif-read-tool: Added unit-test and minimum documentation.
2018-05-02 04:11:46 -04:00
Dustin Oprea
f4cb06d79d
type: Renamed ValueString() to ResolveAsString().
2018-05-02 02:21:06 -04:00
Dustin Oprea
54e4cb73eb
IfdBuilder: Added AddFromConfigWithName().
...
- IfdBuilder: Added NewBuilderTagFromConfigWithName().
- TagIndex: Added GetWithName().
- IfdByteEncoder: Updated example to use names.
2018-05-01 12:22:48 -04:00
Dustin Oprea
b78ca39e2b
Added package description.
2018-05-01 11:04:55 -04:00
Dustin Oprea
88cb7331cf
documentation: Added examples.
...
- Renamed DefaultEncodeByteOrder to EncodeDefaultByteOrder.
2018-05-01 10:57:55 -04:00
Dustin Oprea
e8c30b7811
Tweaked write to-dos.
2018-05-01 10:20:39 -04:00
Dustin Oprea
98620a7d84
exif: Added function descriptions.
2018-05-01 10:18:52 -04:00
Dustin Oprea
2fca65a8ea
ifd_builder_encoder: Added method to package full EXIF.
...
- Moved the EXIF-parsing being done in the tests to reusable code.
2018-05-01 03:29:42 -04:00
Dustin Oprea
9c721a573d
ifd_builder_encode: Added test for recursive IB encoder.
...
- Constructs full structured EXIF on-disk structure.
- Bugfix: EncodeToBytes() started from an incorrect, initial offset.
2018-05-01 03:07:33 -04:00
Dustin Oprea
3a20f12306
encodeAndAttachIfd: Corrected IFD chain allocation arithmetic.
2018-04-30 03:30:34 -04:00
Dustin Oprea
fe20d2c334
ifd_buider_encode: Fixed test.
...
- Because of addressing bugfix.
2018-04-30 02:40:41 -04:00
Dustin Oprea
c83ebaf2a7
ifd_builder_encode: Added test to build and parse an EXIF.
...
- A big milestone. This is the same parsing that already works with
EXIFs from production JPEGs.
2018-04-30 02:34:24 -04:00
Dustin Oprea
6ffca34f8e
ifd_tag_entry: Implemented Value() and ValueString() wrappers.
...
- type: Added `(TagType).Resolve()` to return the parsed, typed value.
2018-04-30 02:32:08 -04:00
Dustin Oprea
89cfa38cfc
exif: Reorganized. No-op changes.
2018-04-30 01:33:13 -04:00
Dustin Oprea
db33894cde
unknown: Moved UnknownValue() to type.go .
2018-04-30 01:32:09 -04:00
Dustin Oprea
81079a77d6
exif: Added EXIF header builder and unit-test.
2018-04-29 02:48:52 -04:00
Dustin Oprea
bbc7f976af
ifd_builder: Added test for encoding a complete IFD.
2018-04-29 01:51:12 -04:00
Dustin Oprea
4d0cfdc1d4
ifd_builder_encode: Added test for value allocation.
2018-04-29 00:41:07 -04:00