Bug #936

Video headers include internal include files and need to be added to exiv2.hpp

Added by Andreas Huggel almost 4 years ago. Updated over 2 years ago.

Status:ClosedStart date:02 Dec 2013
Priority:NormalDue date:
Assignee:Robin Mills% Done:

100%

Category:api
Target version:0.25

Description

The *_int.hpp header files are internal files which are not published. They contain interfaces which are not part of the exiv2 public API and must only be included from *.cpp files, not from published headers.

Currently, all video header files include tags_int.hpp. That must be removed.

andreas@lenovo:~/src/exiv2/git/src$ grep include.*_int *video*hpp
asfvideo.hpp:#include "tags_int.hpp" 
matroskavideo.hpp:#include "tags_int.hpp" 
quicktimevideo.hpp:#include "tags_int.hpp" 
riffvideo.hpp:#include "tags_int.hpp" 

(Note to self: One reason why samples need to be built against the installed version of the library!)

Once this is fixed, the video headers should also be added to the exiv2.hpp header file.


Related issues

Related to Exiv2 - Patch #1012: Avoid cyclic inclusion dependency between http.hpp and ex... Closed 30 Dec 2014

Associated revisions

Revision 3234
Added by Andreas Huggel almost 4 years ago

Undo previous commit that added new headerfiles, pending fix for #936.

Revision 3757
Added by Robin Mills over 2 years ago

#936. Fix header file.

History

#1 Updated by Robin Mills over 2 years ago

  • Status changed from Assigned to Resolved
  • Assignee changed from Abhinav Badola to Robin Mills
  • Priority changed from High to Normal
  • Target version set to 0.25

I believe this has been done. I added a new tree <exiv2dir>/include/exiv2 to hold the public header files. The *int.hpp remain in src directory and are never published. Thomas and I worked on the header files while I was in Tenerife on vacation at New Year #1012

Here is my review of the samples. Only the following reference non public files:

614 rmills@rmillsmbp:~/gnu/exiv2/trunk/samples $ grep include *.cpp | grep '"'
metacopy.cpp:#include "utils.hpp" 
metacopy.cpp:#include "metacopy.hpp" 
path-test.cpp:#include "utils.hpp" 
tiffaddpath-test.cpp:#include "tiffcomposite_int.hpp" 
tiffaddpath-test.cpp:#include "makernote2_int.hpp" 
tiffaddpath-test.cpp:#include "tiffimage_int.hpp"
At some time, I we could create a distinct directory for testprogs such as path-test.cpp and the like. And perhaps metacopy.cpp should become metacopy-test.cpp as I believe the same capability is provided by exiv2 -e. The following are candidates for testprogs:
623 rmills@rmillsmbp:~/gnu/exiv2/trunk/samples $ ls *.cpp | grep -e test -e metacopy | sort
conntest.cpp
convert-test.cpp
easyaccess-test.cpp
exifdata-test.cpp
httptest.cpp
iotest.cpp
iptctest.cpp
key-test.cpp
largeiptc-test.cpp
metacopy.cpp
mmap-test.cpp
path-test.cpp
prevtest.cpp
remotetest.cpp
stringto-test.cpp
tiff-test.cpp
tiffaddpath-test.cpp
werror-test.cpp
write-test.cpp
write2-test.cpp
xmpparser-test.cpp
The samples would be reduced to:
$ ls *.cpp | grep -v -e test -v -e metacopy | sort
addmoddel.cpp
exifcomment.cpp
exifdata.cpp
exifprint.cpp
exifvalue.cpp
exiv2json.cpp
geotag.cpp
iptceasy.cpp
iptcprint.cpp
taglist.cpp
xmpparse.cpp
xmpsample.cpp

#2 Updated by Robin Mills over 2 years ago

  • % Done changed from 0 to 100

#3 Updated by Andreas Huggel over 2 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF

Redmine Appliance - Powered by TurnKey Linux