summaryrefslogtreecommitdiffstats
path: root/libavcodec/ljpegenc.c
Commit message (Collapse)AuthorAgeFilesLines
* avcodec/mjpegenc: move ff_mjpeg_encode_picture_frame to mjpegenc_commonJames Almer2017-05-081-1/+0
| | | | Fixes compilation of ljpeg encoder if mjpeg and amv encoders are disabled
* Merge commit '2862b63783b5556f7f3fb2d097629bc6879f833a'Derek Buitenhuis2016-02-031-5/+38
|\ | | | | | | | | | | | | * commit '2862b63783b5556f7f3fb2d097629bc6879f833a': lavc: Move prediction_method to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavc: Move prediction_method to codec private optionsVittorio Giovara2016-01-211-5/+38
| | | | | | | | | | | | | | | | | | | | This options is only used by huffyuv, ffvhuv, jpegls, mjpeg, mpegvideoenc, png, utvideo. It is a very codec-specific options, so deprecate the global variant. Set proper limits to the maximum allowed values, and update utvideoenc tests to use the new option name. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit 'e60a6e7545dd6f5b25e3a65de9c6fdcc6e2e9d6b'Hendrik Leppkes2015-09-161-1/+0
|\ \ | |/ | | | | | | | | | | * commit 'e60a6e7545dd6f5b25e3a65de9c6fdcc6e2e9d6b': mpegvideo: Drop mpegvideo.h where not needed Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * mpegvideo: Drop mpegvideo.h where not neededVittorio Giovara2015-09-131-1/+0
| | | | | | | | Add necessary headers in .c files.
* | avcodec/ljpegenc: Fix encoding RGBA LJPEGMichael Niedermayer2015-09-111-9/+12
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'Michael Niedermayer2015-07-271-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '059a934806d61f7af9ab3fd9f74994b838ea5eba': lavc: Consistently prefix input buffer defines Conflicts: doc/examples/decoding_encoding.c libavcodec/4xm.c libavcodec/aac_adtstoasc_bsf.c libavcodec/aacdec.c libavcodec/aacenc.c libavcodec/ac3dec.h libavcodec/asvenc.c libavcodec/avcodec.h libavcodec/avpacket.c libavcodec/dvdec.c libavcodec/ffv1enc.c libavcodec/g2meet.c libavcodec/gif.c libavcodec/h264.c libavcodec/h264_mp4toannexb_bsf.c libavcodec/huffyuvdec.c libavcodec/huffyuvenc.c libavcodec/jpeglsenc.c libavcodec/libxvid.c libavcodec/mdec.c libavcodec/motionpixels.c libavcodec/mpeg4videodec.c libavcodec/mpegvideo.c libavcodec/noise_bsf.c libavcodec/nuv.c libavcodec/nvenc.c libavcodec/options.c libavcodec/parser.c libavcodec/pngenc.c libavcodec/proresenc_kostya.c libavcodec/qsvdec.c libavcodec/svq1enc.c libavcodec/tiffenc.c libavcodec/truemotion2.c libavcodec/utils.c libavcodec/utvideoenc.c libavcodec/vc1dec.c libavcodec/wmalosslessdec.c libavformat/adxdec.c libavformat/aiffdec.c libavformat/apc.c libavformat/apetag.c libavformat/avidec.c libavformat/bink.c libavformat/cafdec.c libavformat/flvdec.c libavformat/id3v2.c libavformat/isom.c libavformat/matroskadec.c libavformat/mov.c libavformat/mpc.c libavformat/mpc8.c libavformat/mpegts.c libavformat/mvi.c libavformat/mxfdec.c libavformat/mxg.c libavformat/nutdec.c libavformat/oggdec.c libavformat/oggparsecelt.c libavformat/oggparseflac.c libavformat/oggparseopus.c libavformat/oggparsespeex.c libavformat/omadec.c libavformat/rawdec.c libavformat/riffdec.c libavformat/rl2.c libavformat/rmdec.c libavformat/rtpdec_latm.c libavformat/rtpdec_mpeg4.c libavformat/rtpdec_qdm2.c libavformat/rtpdec_svq3.c libavformat/sierravmd.c libavformat/smacker.c libavformat/smush.c libavformat/spdifenc.c libavformat/takdec.c libavformat/tta.c libavformat/utils.c libavformat/vqf.c libavformat/westwood_vqa.c libavformat/xmv.c libavformat/xwma.c libavformat/yop.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * lavc: Consistently prefix input buffer definesVittorio Giovara2015-07-271-1/+1
| | | | | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'Michael Niedermayer2015-07-271-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'def97856de6021965db86c25a732d78689bd6bb0': lavc: AV-prefix all codec capabilities Conflicts: cmdutils.c ffmpeg.c ffplay.c libavcodec/8svx.c libavcodec/aacenc.c libavcodec/ac3dec.c libavcodec/adpcm.c libavcodec/alac.c libavcodec/atrac3plusdec.c libavcodec/bink.c libavcodec/dnxhddec.c libavcodec/dvdec.c libavcodec/dvenc.c libavcodec/ffv1dec.c libavcodec/ffv1enc.c libavcodec/fic.c libavcodec/flacdec.c libavcodec/flacenc.c libavcodec/flvdec.c libavcodec/fraps.c libavcodec/frwu.c libavcodec/gifdec.c libavcodec/h261dec.c libavcodec/hevc.c libavcodec/iff.c libavcodec/imc.c libavcodec/libopenjpegdec.c libavcodec/libvo-aacenc.c libavcodec/libvorbisenc.c libavcodec/libvpxdec.c libavcodec/libvpxenc.c libavcodec/libx264.c libavcodec/mjpegbdec.c libavcodec/mjpegdec.c libavcodec/mpegaudiodec_float.c libavcodec/msmpeg4dec.c libavcodec/mxpegdec.c libavcodec/nvenc_h264.c libavcodec/nvenc_hevc.c libavcodec/pngdec.c libavcodec/qpeg.c libavcodec/ra288.c libavcodec/rv10.c libavcodec/s302m.c libavcodec/sp5xdec.c libavcodec/takdec.c libavcodec/tiff.c libavcodec/tta.c libavcodec/utils.c libavcodec/v210dec.c libavcodec/vp6.c libavcodec/vp9.c libavcodec/wavpack.c libavcodec/yop.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec: Add a min size parameter to ff_alloc_packet2()Michael Niedermayer2015-07-271-1/+1
| | | | | | | | | | | | | | | | This parameter can be used to inform the allocation code about how much downsizing might occur, and can be used to optimize how to allocate the packet Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '40cf1bbacc6220a0aa6bed5c331871d43f9ce370'Michael Niedermayer2015-07-211-0/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '40cf1bbacc6220a0aa6bed5c331871d43f9ce370': Deprecate avctx.coded_frame Conflicts: ffmpeg.c libavcodec/a64multienc.c libavcodec/asvenc.c libavcodec/cljrenc.c libavcodec/dpxenc.c libavcodec/gif.c libavcodec/mpegvideo_enc.c libavcodec/nvenc.c libavcodec/proresenc_kostya.c libavcodec/pthread_frame.c libavcodec/rawenc.c libavcodec/sunrastenc.c libavcodec/tiffenc.c libavcodec/version.h libavcodec/xbmenc.c libavcodec/xwdenc.c libavdevice/v4l2.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * Deprecate avctx.coded_frameVittorio Giovara2015-07-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rationale is that coded_frame was only used to communicate key_frame, pict_type and quality to the caller, as well as a few other random fields, in a non predictable, let alone consistent way. There was agreement that there was no use case for coded_frame, as it is a full-sized AVFrame container used for just 2-3 int-sized properties, which shouldn't even belong into the AVCodecContext in the first place. The appropriate AVPacket flag can be used instead of key_frame, while quality is exported with the new AVPacketSideData quality factor. There is no replacement for the other fields as they were unreliable, mishandled or just not used at all. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit 'd6604b29ef544793479d7fb4e05ef6622bb3e534'Michael Niedermayer2015-07-201-5/+0
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'd6604b29ef544793479d7fb4e05ef6622bb3e534': Gather all coded_frame allocations and free functions to a single place Conflicts: libavcodec/a64multienc.c libavcodec/asvenc.c libavcodec/cljrenc.c libavcodec/dpxenc.c libavcodec/dvenc.c libavcodec/gif.c libavcodec/huffyuvenc.c libavcodec/jpeglsenc.c libavcodec/libopenjpegenc.c libavcodec/libtheoraenc.c libavcodec/libvpxenc.c libavcodec/mpegvideo_enc.c libavcodec/nvenc.c libavcodec/pngenc.c libavcodec/proresenc_kostya.c libavcodec/sunrastenc.c libavcodec/tiffenc.c libavcodec/utils.c libavcodec/utvideoenc.c libavcodec/v210enc.c libavcodec/v410enc.c libavcodec/xbmenc.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * Gather all coded_frame allocations and free functions to a single placeVittorio Giovara2015-07-201-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Allocating coded_frame is what most encoders do anyway, so it makes sense to always allocate and free it in a single place. Moreover a lot of encoders freed the frame with av_freep() instead of the correct API av_frame_free(). This bring uniformity to encoder behaviour and prevents applications from erroneusly accessing this field when not allocated. Additionally this helps isolating encoders that export information with coded_frame, and heavily simplifies its deprecation. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit '4978850ca2cb1ec6908f5bc79cc592ca454d11e8'Michael Niedermayer2015-03-311-0/+1
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '4978850ca2cb1ec6908f5bc79cc592ca454d11e8': build: Split JPEG-related tables off into a separate component Conflicts: configure Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * build: Split JPEG-related tables off into a separate componentDiego Biurrun2015-03-301-0/+1
| |
* | avcodec/ljpegenc: Check for av_malloc_array() failureMichael Niedermayer2015-01-031-0/+5
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'e3fcb14347466095839c2a3c47ebecff02da891e'Michael Niedermayer2014-07-011-4/+5
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'e3fcb14347466095839c2a3c47ebecff02da891e': dsputil: Split off IDCT bits into their own context Conflicts: configure libavcodec/aic.c libavcodec/arm/Makefile libavcodec/arm/dsputil_init_arm.c libavcodec/arm/dsputil_init_armv6.c libavcodec/asvdec.c libavcodec/dnxhdenc.c libavcodec/dsputil.c libavcodec/dvdec.c libavcodec/dxva2_mpeg2.c libavcodec/intrax8.c libavcodec/mdec.c libavcodec/mjpegdec.c libavcodec/mjpegenc_common.h libavcodec/mpegvideo.c libavcodec/ppc/dsputil_altivec.h libavcodec/ppc/dsputil_ppc.c libavcodec/ppc/idctdsp.c libavcodec/x86/Makefile libavcodec/x86/dsputil_init.c libavcodec/x86/dsputil_mmx.c libavcodec/x86/dsputil_x86.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * dsputil: Split off IDCT bits into their own contextDiego Biurrun2014-06-301-4/+5
| |
* | Merge commit 'adcb8392c9b185fd8a91a95fa256d15ab1432a30'Michael Niedermayer2014-07-011-0/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | * commit 'adcb8392c9b185fd8a91a95fa256d15ab1432a30': mjpeg: Split off bits shared by MJPEG and LJPEG encoders Conflicts: libavcodec/mjpegenc.c libavcodec/mjpegenc.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mjpeg: Split off bits shared by MJPEG and LJPEG encodersDiego Biurrun2014-06-301-0/+1
| | | | | | | | This obviates a dependency of the LJPEG encoder on mpegvideo.
* | lavc/ljpegenc: Enable frame-threading.Carl Eugen Hoyos2014-05-311-0/+1
| |
* | Merge commit 'bf0d7da7cbbf869605086c2a47cdf87f0a533e24'Michael Niedermayer2014-03-171-1/+2
|\ \ | |/ | | | | | | | | | | * commit 'bf0d7da7cbbf869605086c2a47cdf87f0a533e24': ljpeg: check color_range Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ljpeg: check color_rangeVittorio Giovara2014-03-161-1/+2
| |
| * ljpeg: fix duplicated pixel format entryVittorio Giovara2014-03-131-1/+1
| |
* | avcodec/mjpegenc: pass chroma quantization matrix through as well, not just lumaMichael Niedermayer2014-01-111-1/+1
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | mjpeg/ljpegenc: factor ff_mjpeg_init_hvsample() outMichael Niedermayer2013-12-061-21/+1
| | | | | | | | | | | | This reduces the amount of duplicated code Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'b73a8922d818c7f909855557718d4c3bfacbd92d'Michael Niedermayer2013-12-061-74/+93
|\ \ | |/ | | | | | | | | | | | | | | | | * commit 'b73a8922d818c7f909855557718d4c3bfacbd92d': ljpegenc: split yuv encoding into a separate function Conflicts: libavcodec/ljpegenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ljpegenc: split yuv encoding into a separate functionAnton Khirnov2013-12-051-74/+93
| |
* | Merge commit 'fa4476815d0d27996eb199452f2cdbfccdd244a5'Michael Niedermayer2013-12-061-51/+64
|\ \ | |/ | | | | | | | | | | | | | | | | * commit 'fa4476815d0d27996eb199452f2cdbfccdd244a5': ljpegenc: split bgr encoding into a separate function Conflicts: libavcodec/ljpegenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ljpegenc: split bgr encoding into a separate functionAnton Khirnov2013-12-051-45/+58
| |
* | Merge commit 'daffed3b173c59d64907747bf3309e98a8974f4e'Michael Niedermayer2013-12-061-6/+6
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | * commit 'daffed3b173c59d64907747bf3309e98a8974f4e': ljpegenc: accept bgr24 instead of bgra Conflicts: libavcodec/ljpegenc.c libavcodec/mjpegenc.c Only whitespace merged, we continue to support both formats Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ljpegenc: accept bgr24 instead of bgraAnton Khirnov2013-12-051-9/+9
| | | | | | | | The alpha plane is not encoded.
* | Merge commit '0cdbc4d39394965bd8712395b19160da8f3fe144'Michael Niedermayer2013-12-061-3/+3
|\ \ | |/ | | | | | | | | | | * commit '0cdbc4d39394965bd8712395b19160da8f3fe144': ljpegenc: rename the encoding function. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ljpegenc: rename the encoding function.Anton Khirnov2013-12-051-3/+3
| | | | | | | | The new name is more consistent with the rest of Libav.
* | Merge commit '72c0b8f724a71d2784aecad0e5221e7ab6206371'Michael Niedermayer2013-12-061-1/+0
|\ \ | |/ | | | | | | | | | | * commit '72c0b8f724a71d2784aecad0e5221e7ab6206371': ljpeg: remove a commented-out line Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ljpeg: remove a commented-out lineAnton Khirnov2013-12-051-1/+0
| |
* | Merge commit '24abd806ea0cfb0d988d2f0044eac79cff12918c'Michael Niedermayer2013-12-061-63/+136
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | * commit '24abd806ea0cfb0d988d2f0044eac79cff12918c': ljpegenc: deMpegEncContextize Conflicts: libavcodec/ljpegenc.c libavcodec/mpegvideo.h libavcodec/mpegvideo_enc.c tests/ref/vsynth/vsynth1-ljpeg tests/ref/vsynth/vsynth2-ljpeg Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * ljpegenc: deMpegEncContextizeAnton Khirnov2013-12-051-47/+132
| | | | | | | | | | | | | | | | | | The encoder uses almost none of the mpegvideo infrastructure, only some fields from MpegEncContext. The FATE results change because now an all-zero quant matrix is written into the file. Since it is not used for anything for ljpeg, this should not be a problem.
* | avcodec/ljpegenc: Dont use ff_mjpeg_encode_stuffing()Michael Niedermayer2013-12-061-1/+1
| | | | | | | | | | | | This avoids a use of MpegEncContext Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/ljpegenc: fix mem allocation failure return code ↵Michael Niedermayer2013-12-061-1/+1
| | | | | | | | | | | | encode_picture_lossless() Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '86eb2eaac629909d6ee4067c6f1e485a4e70473d'Michael Niedermayer2013-12-061-8/+8
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '86eb2eaac629909d6ee4067c6f1e485a4e70473d': mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_dc() Conflicts: libavcodec/mjpegenc.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_dc()Anton Khirnov2013-12-051-8/+8
| | | | | | | | This will allow deMpegEncContextizing the LJPEG encoder.
* | Merge commit '3360ad995530ea6967b1e83981b4aa8240fbb0ed'Michael Niedermayer2013-12-061-1/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit '3360ad995530ea6967b1e83981b4aa8240fbb0ed': mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_trailer() Conflicts: libavcodec/ljpegenc.c libavcodec/mjpegenc.c libavcodec/mjpegenc.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_trailer()Anton Khirnov2013-12-051-1/+1
| | | | | | | | This will allow deMpegEncContextizing the LJPEG encoder.
* | Merge commit '058d5f2feb730846f22c1812e433f92f670ad751'Michael Niedermayer2013-12-061-1/+2
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '058d5f2feb730846f22c1812e433f92f670ad751': mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_header() Conflicts: libavcodec/mjpegenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_header()Anton Khirnov2013-12-051-1/+2
| | | | | | | | This will allow deMpegEncContextizing the LJPEG encoder.
* | Merge commit 'c99307caee01441cfde24f3b7b0db3037b7022dc'Michael Niedermayer2013-12-061-4/+8
|\ \ | |/ | | | | | | | | | | * commit 'c99307caee01441cfde24f3b7b0db3037b7022dc': mpegvideo: make frame_size_alloc() static. Merged-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'b2bed9325dbd6be0da1d91ffed3f513c40274fd2'Michael Niedermayer2013-10-041-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'b2bed9325dbd6be0da1d91ffed3f513c40274fd2': cosmetics: Group .name and .long_name together in codec/format declarations Conflicts: libavcodec/8svx.c libavcodec/alac.c libavcodec/cljr.c libavcodec/dnxhddec.c libavcodec/dnxhdenc.c libavcodec/dpxenc.c libavcodec/dvdec.c libavcodec/dvdsubdec.c libavcodec/dvdsubenc.c libavcodec/ffv1dec.c libavcodec/flacdec.c libavcodec/flvdec.c libavcodec/fraps.c libavcodec/frwu.c libavcodec/g726.c libavcodec/gif.c libavcodec/gifdec.c libavcodec/h261dec.c libavcodec/h263dec.c libavcodec/iff.c libavcodec/imc.c libavcodec/libopencore-amr.c libavcodec/libopenjpegdec.c libavcodec/libopenjpegenc.c libavcodec/libspeexenc.c libavcodec/libvo-amrwbenc.c libavcodec/libvorbisenc.c libavcodec/libvpxenc.c libavcodec/libx264.c libavcodec/libxavs.c libavcodec/libxvid.c libavcodec/ljpegenc.c libavcodec/mjpegbdec.c libavcodec/mjpegdec.c libavcodec/mpeg12dec.c libavcodec/mpeg4videodec.c libavcodec/msmpeg4dec.c libavcodec/pgssubdec.c libavcodec/pngdec.c libavcodec/pngenc.c libavcodec/proresdec_lgpl.c libavcodec/proresenc_kostya.c libavcodec/ra144enc.c libavcodec/rawdec.c libavcodec/rv10.c libavcodec/sp5xdec.c libavcodec/takdec.c libavcodec/tta.c libavcodec/v210dec.c libavcodec/vp6.c libavcodec/wavpack.c libavcodec/xbmenc.c libavcodec/yop.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * cosmetics: Group .name and .long_name together in codec/format declarationsDiego Biurrun2013-10-031-1/+1
| |
OpenPOWER on IntegriCloud