* Add ImageMagick 7 compatibility
A new header, `imclude/MagickUtilities.h`, is created to hold the
compatibility `#define`s.
The image-conversion code in `src/Frame.cpp` received the only
major changes — instead of doing the export by hand (and having
to account for changes in the underlying API), it uses the
`MagickCore::ExportImagePixels()` function which does basically
the same work, but accounts for all of the API changes for us.
The API of that function is _unchanged_ from IM6 to IM7.
TODO: `MagickCore::ExportImagePixels()` will return an `exception`
struct if it encounters any problems. Currently the code ignores
that, which it should not.
* Add ImageMagick 7 compatibility
A new header, `imclude/MagickUtilities.h`, is created to hold the
compatibility `#define`s.
The image-conversion code in `src/Frame.cpp` received the only
major changes — instead of doing the export by hand (and having
to account for changes in the underlying API), it uses the
`MagickCore::ExportImagePixels()` function which does basically
the same work, but accounts for all of the API changes for us.
The API of that function is _unchanged_ from IM6 to IM7.
TODO: `MagickCore::ExportImagePixels()` will return an `exception`
struct if it encounters any problems. Currently the code ignores
that, which it should not.
Thanks @ferdnyc
`Json::Reader` has been deprecated for some time, so we replace it with
`Json::CharReader` generated by a `Json::CharReaderBuilder`, or (in the
one instance where we have a stream as input) `Json::parseFromStream();`
This current version supports the new `Json::CharReader`, which
replaces the now-deprecated `Json::Reader`. It's necessary to
eliminate `Json::Reader` from libopenshot because using it
causes a flood of deprecation warnings when building with
system jsoncpp.
Also, the `thirdparty/jsoncpp` directory was generated using
the jsoncpp project's `amalgamate.py` tool, which condenses
the library down to a single C++ source file and two headers,
making it easier to incorporate into libopenshot.
Add 2 new multiplexing presets for mp4, mov files:
mp4_faststart
mp4_fragmented
The Preset usage from openshot-qt export.py as follows (example):
w.SetOption(openshot.VIDEO_STREAM, "muxing_preset", "mp4_faststart")
YouTube suggest to use streamable file formats to process the uploading
videos faster (by starting its processing when upload not yet complete)
MP4, MOV files export requires additional dictionary keys to be set in
this case.