Граф коммитов

146 Коммитов

Автор SHA1 Сообщение Дата
Andrew Osmond da72652618 Bug 1620600 - Add flags to allow image decoders to produce sRGB output. r=tnikkel
Currently we can only use the gfx.color_management.force_srgb pref to
force all images to sRGB, or just accept device space. It would be nice
to be able to test device space in our tests, as well as sRGB. This
patch adds a surface flag which allows us to selectively output sRGB.

This will also be useful for clipboard and re-encoding purposes, since
they want a neutral output. In an ideal world we would just output the
color profile and the pixel data in the original color space, but for
now this is a relatively simple approach that works on all platforms and
interops well with all applications.

Differential Revision: https://phabricator.services.mozilla.com/D65734

--HG--
extra : moz-landing-system : lando
2020-04-10 16:26:33 +00:00
Arthur Iakab 6990ddf5e2 Backed out changeset e6e5816403d9 (bug 1620600) for causing Gtest failures.
CLOSED TREE
2020-03-12 04:44:59 +02:00
Andrew Osmond 5c7e1dd283 Bug 1620600 - Add flags to allow image decoders to produce sRGB output. r=tnikkel
Currently we can only use the gfx.color_management.force_srgb pref to
force all images to sRGB, or just accept device space. It would be nice
to be able to test device space in our tests, as well as sRGB. This
patch adds a surface flag which allows us to selectively output sRGB.

This will also be useful for clipboard and re-encoding purposes, since
they want a neutral output. In an ideal world we would just output the
color profile and the pixel data in the original color space, but for
now this is a relatively simple approach that works on all platforms and
interops well with all applications.

Differential Revision: https://phabricator.services.mozilla.com/D65734

--HG--
extra : moz-landing-system : lando
2020-03-12 00:37:53 +00:00
Andrew Osmond dc7128f82b Bug 1516761 - Only use OS_RGBA for the first frame of animated GIFs. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D58821

--HG--
extra : moz-landing-system : lando
2020-01-06 19:03:41 +00:00
Andrew Osmond 34bbeae92a Bug 1511290 - Reset the GIF frame delay time between frames. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D56360

--HG--
extra : moz-landing-system : lando
2019-12-10 05:30:54 +00:00
Gabriele Svelto 69790bc62e Bug 1600545 - Remove useless inclusions of header files generated from IDL files in accessible/, browser/, caps/, chrome/, devtools/, docshell/, editor/, extensions/, gfx/, hal/, image/, intl/, ipc/, js/, layout/, and media/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55443

--HG--
extra : moz-landing-system : lando
2019-12-06 09:16:44 +00:00
Andrew Osmond 877d22c39e Bug 1594425 - Part 2. Switch image decoders to use SurfaceFormat::OS_RGBA. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D52008

--HG--
extra : moz-landing-system : lando
2019-11-12 18:22:33 +00:00
Csoregi Natalia 8fdd443c49 Backed out 3 changesets (bug 1594425) for failures on SwizzleSSE2.cpp. CLOSED TREE
Backed out changeset 90ce21e7e469 (bug 1594425)
Backed out changeset 54a28220958b (bug 1594425)
Backed out changeset f1c1e5f12327 (bug 1594425)
2019-11-08 22:52:02 +02:00
Andrew Osmond b492d7bd13 Bug 1594425 - Part 2. Switch image decoders to use SurfaceFormat::OS_RGBA. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D52008

--HG--
extra : moz-landing-system : lando
2019-11-08 14:58:43 +00:00
Andrew Osmond 4cb5bd51f8 Bug 1583647 - Make the GIF decoder use the accelerated RGB unpacking. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D47063

--HG--
extra : moz-landing-system : lando
2019-09-25 23:31:40 +00:00
Andrew Osmond e9dc497c47 Bug 1551088 - Part 6. Make image decoders use accelerated methods for swizzling and premultiplication. r=tnikkel
The PNG decoder lacks fast implementations for swizzling/unpacking
inside the library, and both PNG and WebP may need to perform
premultiplication due to the alpha channel. This patch adds a new filter
allowing us to take advantage of our accelerated implementations to
perform these transformations on their behalf.

Differential Revision: https://phabricator.services.mozilla.com/D46449

--HG--
extra : moz-landing-system : lando
2019-10-02 13:37:29 +00:00
Cosmin Sabou 6da90eb0b7 Backed out 9 changesets (bug 1551088) for causing Bug 1583848. a=backout
Backed out changeset d0ab25c226a7 (bug 1551088)
Backed out changeset 9ef391e20fa6 (bug 1551088)
Backed out changeset 3e6f25b21f8c (bug 1551088)
Backed out changeset 5d72c8de4daf (bug 1551088)
Backed out changeset f77c43bcc75b (bug 1551088)
Backed out changeset 9e954d6765de (bug 1551088)
Backed out changeset d90a571e581f (bug 1551088)
Backed out changeset 25a5f5563e9d (bug 1551088)
Backed out changeset bed9c93eeb2d (bug 1551088)
2019-09-25 18:42:48 +03:00
Andrew Osmond 4bf69333a2 Bug 1551088 - Part 6. Make image decoders use accelerated methods for swizzling and premultiplication. r=tnikkel
The PNG decoder lacks fast implementations for swizzling/unpacking
inside the library, and both PNG and WebP may need to perform
premultiplication due to the alpha channel. This patch adds a new filter
allowing us to take advantage of our accelerated implementations to
perform these transformations on their behalf.

Differential Revision: https://phabricator.services.mozilla.com/D46449

--HG--
extra : moz-landing-system : lando
2019-09-24 20:42:47 +00:00
Oana Pop Rus 4f9a3f24ba Backed out 8 changesets (bug 1551088) for causing reftest failures in SwizzleAVX2.cpp and SwizzleSSSE3.cpp on a CLOSED TREE
Backed out changeset b3760d42e3bf (bug 1551088)
Backed out changeset 222e856b5bc3 (bug 1551088)
Backed out changeset b259c9fb5ad6 (bug 1551088)
Backed out changeset 5fe283ceaa0b (bug 1551088)
Backed out changeset d4dadb6ef0bd (bug 1551088)
Backed out changeset 925e26e17abe (bug 1551088)
Backed out changeset a011360f5018 (bug 1551088)
Backed out changeset 229c3d631d2e (bug 1551088)
2019-09-24 18:12:39 +03:00
Andrew Osmond dda166a96c Bug 1551088 - Part 6. Make image decoders use accelerated methods for swizzling and premultiplication. r=tnikkel
The PNG decoder lacks fast implementations for swizzling/unpacking
inside the library, and both PNG and WebP may need to perform
premultiplication due to the alpha channel. This patch adds a new filter
allowing us to take advantage of our accelerated implementations to
perform these transformations on their behalf.

Differential Revision: https://phabricator.services.mozilla.com/D46449

--HG--
extra : moz-landing-system : lando
2019-09-24 13:31:32 +00:00
Cosmin Sabou 69acba5002 Backed out 8 changesets (bug 1551088) for causing build bustages. CLOSED TREE
Backed out changeset 02d9dc4d39a5 (bug 1551088)
Backed out changeset d7684ca35c0d (bug 1551088)
Backed out changeset b061b1bf8281 (bug 1551088)
Backed out changeset 4760b8b22ffd (bug 1551088)
Backed out changeset 4685fc022257 (bug 1551088)
Backed out changeset 91300f9f99bb (bug 1551088)
Backed out changeset 6da767c8d55c (bug 1551088)
Backed out changeset ec69be661551 (bug 1551088)
2019-09-21 14:52:41 +03:00
Andrew Osmond 7f20ed4927 Bug 1551088 - Part 6. Make image decoders use accelerated methods for swizzling and premultiplication. r=tnikkel
The PNG decoder lacks fast implementations for swizzling/unpacking
inside the library, and both PNG and WebP may need to perform
premultiplication due to the alpha channel. This patch adds a new filter
allowing us to take advantage of our accelerated implementations to
perform these transformations on their behalf.

Differential Revision: https://phabricator.services.mozilla.com/D46449

--HG--
extra : moz-landing-system : lando
2019-09-21 07:13:45 +00:00
championshuttler 7141b73975 Bug 1552317 - Fix codespell errors for image/. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D45553

--HG--
extra : moz-landing-system : lando
2019-09-12 09:00:52 +00:00
Andrew Osmond 1f049d2787 Bug 1255106 - Part 4. Ensure we don't apply CMS transforms in cases we missed. r=tnikkel
GIF images should not apply CMS transforms if disabled by caller via
SurfaceFlags::NO_COLORSPACE_CONVERSION. WebP images should reject any
non-RGB ICC profiles, not just grayscale profiles.

Differential Revision: https://phabricator.services.mozilla.com/D26372
2019-05-28 11:38:46 -04:00
Andrew Osmond 741028ad6b Bug 1255106 - Part 3. Use color management filter with decoders using SurfacePipe. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D26371
2019-05-28 11:38:46 -04:00
Andrew Osmond 3befab3ee9 Bug 1530774 - Part 3. Remove decoder support for producing paletted frames. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D23716
2019-03-18 07:30:34 -04:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Andrew Osmond 5024f42bc6 Bug 1337111 - Part 2. Add an image decoder flag to request complete frames. r=tnikkel
DecoderFlags::BLEND_ANIMATION will cause the decoder to inject the
BlendAnimationFilter from the previous patch into the SurfacePipe filter
chain. All frames produced by this decoder will be complete, and
should be equivalent to the result outputted by FrameAnimator.
2018-09-17 15:06:28 -04:00
Coroiu Cristina de5411772c Backed out 6 changesets (bug 1337111) for build bustages at builds/worker/workspace/build/src/image/SurfaceFilters.h on a CLOSED TREE
Backed out changeset ca0caa556dc9 (bug 1337111)
Backed out changeset d7d7fa868d0d (bug 1337111)
Backed out changeset 93e956e89a21 (bug 1337111)
Backed out changeset f36337c1309b (bug 1337111)
Backed out changeset 1b1e25b0b345 (bug 1337111)
Backed out changeset 3785cdebe6a3 (bug 1337111)
2018-09-17 20:42:30 +03:00
Andrew Osmond d923b67d0f Bug 1337111 - Part 2. Add an image decoder flag to request complete frames. r=tnikkel
DecoderFlags::BLEND_ANIMATION will cause the decoder to inject the
BlendAnimationFilter from the previous patch into the SurfacePipe filter
chain. All frames produced by this decoder will be complete, and
should be equivalent to the result outputted by FrameAnimator.
2018-09-17 13:21:38 -04:00
Andi-Bogdan Postelnicu 7f8217a2ea Bug 1453795 - Image - Initialize member fields in classes/ structures. r=tnikkel 2018-06-14 08:21:37 +03:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Andrew Osmond 01907fa0e3 Bug 1462355 - Part 1c. Make individual image decoders to use updated Decoder/SurfacePipe methods. r=tnikkel 2018-05-29 08:36:12 -04:00
Andrew Osmond cb1d37e391 Bug 1382683 - Part 2. Switch nsGIFDecoder2 to write pixels in blocks instead of individually. r=tnikkel
nsGIFDecoder2::YieldPixel is sufficiently complex that the optimizer
does not appear to inline it with the rest of the templated methods. As
such there is a high cost to calling it. This patch modifies it to yield
a requested number of pixels before exiting, allowing us to amortize the
cost of calling across a row instead of a pixel. Based on profiling,
this will significantly reduce the time require to decode a frame.
2018-05-25 06:52:03 -04:00
Sebastian Hengst 0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tristan Bourvon a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Timothy Nikkel 56490d71bb Bug 1432679. Do multiplication in nsGIFDecoder2::FinishImageDescriptor as int64_t to avoid overflow. r=aosmond
pixels_remaining is already an int64_t.
2018-02-07 17:00:06 -06:00
Milan Sreckovic d0d070b48c Bug 1423567: Use BaseRect access methods instead of member variables in image/ r=aosmond
MozReview-Commit-ID: JNYZsts6pCO

--HG--
extra : rebase_source : d37ce77ec84af302018f95285cff61b2ba28c957
2017-12-20 16:46:28 -05:00
Timothy Nikkel 8bb6a64726 Bug 1413762. Check integer shift value is reasonable before using it in gif decoder. r=aosmond 2017-11-23 00:40:17 -06:00
Milan Sreckovic 5c01b5706c Bug 1387514: Upgrade BaseRect (derived classes) width and height direct member variable use to instead use Width()/SetWidth() and Height()/SetHeight() in image/*. r=aosmond
MozReview-Commit-ID: 8gyxxLziVe7

--HG--
extra : rebase_source : c79e81e10c54106645539c590bf81a03a300a909
2017-08-14 08:29:56 -04:00
Max Stepin 1175dd3922 Bug 1255497. Change the number of iterations we do for finite length animated gif to match what everyone else does. r=seth 2017-05-12 22:29:12 +02:00
Vedant Sareen 7d4bd52fae Bug 1330907 - Rename Telemetry::ID to Telemetry::HistogramID. r=dexter
Changed |print("enum ID : uint32_t {", file=output)| to |print("enum HistogramID : uint32_t {", file=output)| at line 53 of the file |toolkit/components/telemetry/gen-histogram-enum.py|, and then replaced all the textual occurrences of |Telemetry::ID| to |Telemetry::HistogramID| and |ID| to |HistogramID| in 43 other files.
2017-02-16 00:45:15 +05:30
Phil Ringnalda c7b01ecbda Backed out 5 changesets (bug 1290292, bug 1290293) for gfx assertions
CLOSED TREE

Backed out changeset 652c909b75ad (bug 1290293)
Backed out changeset 90a284ea19e3 (bug 1290292)
Backed out changeset 8401d12fe936 (bug 1290293)
Backed out changeset d87488b69c18 (bug 1290293)
Backed out changeset 7368aa665fae (bug 1290293)
2017-02-13 19:28:45 -08:00
Andrew Osmond 6679005d2a Bug 1290293 - Part 2e. Make SurfacePipe users clear unwritten pixels if the image is truncated. r=tnikkel 2016-08-18 09:55:45 -04:00
Andrew Osmond e7ce25346c Bug 1290293 - Part 2c. Make nsGIFDecoder2 use B8G8R8X8 only for unpaletted frames. r=tnikkel 2016-11-03 10:32:21 -04:00
Andrew Osmond 1286146b81 Bug 1303427 - Continue parsing buffered LZW codes in GIFs even if input stream is complete. r=tn 2016-09-19 09:16:28 -04:00
Nicholas Nethercote 34dcc7b852 Bug 1299384 - Use MOZ_MUST_USE with NS_warn_if_impl(). r=erahm.
This change avoids lots of false positives for Coverity's CHECKED_RETURN
warning, caused by NS_WARN_IF's current use in both statement-style and
expression-style.

In the case where the code within the NS_WARN_IF has side-effects, I made the
following change.

> NS_WARN_IF(NS_FAILED(FunctionWithSideEffects()));
> -->
> Unused << NS_WARN_IF(NS_FAILED(FunctionWithSideEffects()));

In the case where the code within the NS_WARN_IF lacks side-effects, I made the
following change.

> NS_WARN_IF(!condWithoutSideEffects);
> -->
> NS_WARNING_ASSERTION(condWithoutSideEffects, "msg");

This has two improvements.
- The condition is not evaluated in non-debug builds.
- The sense of the condition is inverted to the familiar "this condition should
  be true" sense used in assertions.

A common variation on the side-effect-free case is the following.

> nsresult rv = Fn();
> NS_WARN_IF_(NS_FAILED(rv));
> -->
> DebugOnly<nsresult rv> = Fn();
> NS_WARNING_ASSERTION(NS_SUCCEEDED(rv), "Fn failed");

--HG--
extra : rebase_source : 58788245021096efa8372a9dc1d597a611d45611
2016-09-02 17:12:24 +10:00
Seth Fowler 98a9fd7db6 Bug 1291071 (Part 4) - Clean up Decoder::SpeedHistogram() and related code. r=edwin 2016-08-05 18:50:29 -07:00
Seth Fowler 19dc4aba32 Bug 1292505 (Part 2) - Remove remaining references to Downscaler in the SurfacePipe decoders. r=edwin 2016-08-05 13:44:52 -07:00
Seth Fowler 9f0a5862e4 Bug 1291059 - Yield in the GIF decoder at the beginning of a new frame, not at the end of the previous frame. r=edwin 2016-08-02 04:10:59 -07:00
Seth Fowler 3cca5ff418 Bug 1291054 (Part 3) - Rename Decoder::GetSize() to Decoder::Size() to be consistent with the style guide. r=edwin 2016-08-02 04:10:51 -07:00
Seth Fowler 881c87ebec Bug 1291054 (Part 2) - Add a Decoder::OutputSize() getter and use it in the decoders. r=edwin 2016-08-02 04:10:49 -07:00
Seth Fowler 78ccdc2e84 Bug 1288040 (Part 5) - Wrap frame timeout values in a FrameTimeout type that ensures they're normalized. r=edwin 2016-07-20 16:30:28 -07:00
Seth Fowler 6d790d3506 Bug 1287691 (Part 2) - Yield after each frame in the GIF decoder. r=edwin 2016-07-20 02:30:35 -07:00
Makoto Kato 1cb4228397 Backed out 4 changesets (bug 1287691) due to Windows build failure
MozReview-Commit-ID: KgV3nU9a64F
2016-07-20 11:03:59 +09:00