Dustin Oprea
abbf7e0d92
ifd_builder: `builderTag` is now passed by reference.
2018-05-29 01:32:09 -04:00
Dustin Oprea
0a561e98ed
Fixed tests for recent changes.
2018-05-29 00:55:43 -04:00
Dustin Oprea
8ce7625fc9
ifd_builder_encode: Fixed addressing.
...
- Corrects the resolution issue that we were experiencing in sibling
IFDs.
2018-05-28 23:47:47 -04:00
Dustin Oprea
080ff7d07d
Adjusted some string representations. Fixed some hex-encodings.
...
- unknown: We no longer truncate UNDEFINED UserComment values.
- This is one less thing that will be different between what we read
and how we encode.
2018-05-28 21:14:15 -04:00
Dustin Oprea
3c1c668a9f
encode: We now encode child IFDs as they occur.
...
- ..rather than after the normal tags.
2018-05-28 20:04:02 -04:00
Dustin Oprea
5996e32e27
type_encode: Added to-do.
2018-05-25 21:12:45 -04:00
Dustin Oprea
75ff008365
thumbnails: Reimplemented to use normal decode flow.
...
- We added a trick to overcome the fact that the tag is a slice of longs
rather than bytes (and would usually cause check errors and alignment
problems), but this allows us to use the normal allocation and
decoding flows that are used by normal tags.
- Made things simpler, but we're still mis-encoding the
thumbnail, somehow/somewhere.
2018-05-25 21:12:24 -04:00
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