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

94 Коммитов

Автор SHA1 Сообщение Дата
Andrew Osmond a445258270 Bug 1255106 - Part 1. Move color transform state to image decoder base class. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D26369
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
Ehsan Akhgari ca162bee20 Bug 1508472 - Part 4: Fourth batch of comment fix-ups in preparation for the tree reformat r=sylvestre
This is a best effort attempt at ensuring that the adverse impact of
reformatting the entire tree over the comments would be minimal.  I've used a
combination of strategies including disabling of formatting, some manual
formatting and some changes to formatting to work around some clang-format
limitations.

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

--HG--
extra : moz-landing-system : lando
2018-11-28 09:16:55 +00:00
Brian Hackett c96a2f28d5 Bug 1508099 Part 2 - Record refcount changes for image decoders and decoding tasks, r=tnikkel.
--HG--
extra : rebase_source : 9d3d94baab901a84e6ec0bb8cc01220ea54ec555
2018-11-17 12:55:12 -10:00
Andrew Osmond 4e0ba74469 Bug 1465619 - Part 7. Add support for recycling to image::Decoder. r=tnikkel
The owner for the decoder may implement IDecoderFrameRecycler to allow
the decoder to request a recycled frame instead of allocating a new one.
If none are available, it will fallback to allocating a new frame.

Not only may the IDecoderFrameRecycler not have any frames available for
recycling, the recycled frame itself may still be in use by other
entities outside of imagelib. Additionally it may still be required by
BlendAnimationFilter to restore the previous frame's data. It may even
be the same frame as to restore. In the worst case, we will simply
choose to allocate an entirely new frame, just like before.

When we allocate a new frame, that means the old frame we tried to
recycle will be taken out of circulation and not reused again,
regardless of why it failed.

Differential Revision: https://phabricator.services.mozilla.com/D7512
2018-10-22 13:40:35 -04:00
Andrew Osmond 2c6fa568a4 Bug 1465619 - Part 4. Move the first frame refresh area calculation to frame commit. r=tnikkel
If we discard a frame during decoding, e.g. due to an error, then we
don't want to take that frame into account for the first frame refresh
area. We should also be handling partial frames here (the dirty rect
needs to encompass the rows that did not get written with actual pixel
data). The only place that can have the necessary information is at the
end rather than at the beginning.

Differential Revision: https://phabricator.services.mozilla.com/D7509
2018-10-22 13:40:35 -04:00
Andrew Osmond c838361d7c Bug 1465619 - Part 2. Add basic support for recycling a frame buffer to BlendAnimationFilter. r=tnikkel
Given an invalidation rect, called the recycle rect, which represents
the area which may have changed between the current frame and the frame
we are recycling, we can not only reuse the buffer itself to avoid an
allocation and free, we can also avoid copying pixel data from the
restore frame which is already set.

Differential Revision: https://phabricator.services.mozilla.com/D7507
2018-10-22 13:40:35 -04:00
Andrew Osmond 5fbd07b388 Bug 1337111 - Part 3. Land groundwork for new blended animation gtests. r=tnikkel 2018-09-17 15:06:29 -04: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 fb09de50d6 Bug 1337111 - Part 3. Land groundwork for new blended animation gtests. r=tnikkel 2018-09-17 13:21:38 -04: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
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 6c32a5f985 Bug 1462355 - Part 1b. Update Decoder and SurfacePipe plumbing to use updated imgFrame methods. r=tnikkel 2018-05-29 08:36:12 -04:00
Timothy Nikkel 7d6982559e Bug 1443232. Don't insert frames into our AnimationFrameBuffer that we consider in error and unusable. r=aosmond
After decoding the first frame we allocate the second frame, but before it finishes we encounter an error, Decoder::PostError is called it aborts the second frame and decrements the frame count. But AnimationSurfaceProvider::CheckForFrameAtTerminalState just asks for the current frame ref from the decoder (which it never cleared) and inserts that.

The condition that we use from the decoder to decide to report a new frame is mFinishedNewFrame (via TakeCompleteFrameCount), however this doesn't directly correspond to mFrameCount. So we create a new bool on the Decoder to track when there is a frame that we can take.

This didn't cause any problems before but now we have tighter coupling between the list of frames the AnimationSurfaceProvider has and what FrameAnimator expects.

Another possible fix would be to clear the current frame ref in PostError, but the only place we clear the current frame is when we allocate the new frame and we have the mImageData pointer still around that decoders could theorhetically use to do final processing on the last partial frame.
2018-03-08 17:33:04 -06:00
Andrew Osmond 28978c4f66 Bug 523950 - Part 2. Expose image decoder type and SourceBuffer to owners. r=tnikkel
Later in the patch series, we use the new APIs to facilitate cloning of
an existing decoder. This is useful when you want to redecode the same
image with the exact same configuration but from the very beginning.
2018-02-28 13:34:52 -05:00
Andrew Osmond 5380fd8762 Bug 1436247 - Part 3. Fix image/DecodePool.h inclusions. r=tnikkel 2018-02-13 06:43:31 -05:00
Margareta Eliza Balazs 2fd871d8b3 Backed out 4 changesets (bug 1436247) for c2 failures in dom/events/test/test_DataTransferItemList.html on a CLOSED TREE
Backed out changeset 858d629f761d (bug 1436247)
Backed out changeset 4ce2bfe462a0 (bug 1436247)
Backed out changeset 3650631487c7 (bug 1436247)
Backed out changeset c32ead4e3525 (bug 1436247)
2018-02-13 19:56:26 +02:00
Andrew Osmond cf10de0f91 Bug 1436247 - Part 4. Fix image/DecodePool.h inclusions. r=tnikkel 2018-02-13 06:43:31 -05:00
Andrew Osmond 93efb56fbf Bug 1315554 - Part 3. Expose Decoder::IsValidICOResource for all decoders. r=tnikkel 2017-07-22 07:50:31 -04:00
Andrew Osmond ac14e4f8f5 Bug 1315554 - Part 1. Enforce the parent decoder size (ICO) for child decoders (BMP, PNG). r=tnikkel 2017-07-22 07:50:31 -04:00
Sebastian Hengst cc27374338 Backed out changeset fd310390a64a (bug 1315554) for failing GTest's ImageDecoders.LargeICOWithPNGSingleChunk on OS X opt. r=backout 2017-07-22 11:05:35 +02:00
Sebastian Hengst 7197a59a77 Backed out changeset 9780a01b3e94 (bug 1315554) 2017-07-22 11:04:17 +02:00
Andrew Osmond a5bb792dc9 Bug 1315554 - Part 3. Expose Decoder::IsValidICOResource for all decoders. r=tnikkel 2017-07-22 00:14:59 -04:00
Andrew Osmond 1e83b97079 Bug 1315554 - Part 1. Enforce the parent decoder size (ICO) for child decoders (BMP, PNG). r=tnikkel 2017-07-22 00:14:58 -04: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
Andrew Osmond 4f8eb1363e Bug 1339202 - Decode images to shared surfaces for WebRender. r=tnikkel 2017-02-08 15:48:59 -05:00
Jeff Walden ca2e1ac4c0 Bug 1287006 - Don't pass Maybe by value in miscellaneous places. r=froydnj
--HG--
extra : rebase_source : 145f2fc605ff917d3067826a9daebdce07bde02a
2017-02-13 09:07:40 -08:00
Sebastian Hengst 3ce82bcd4f Backed out changeset 45dd83a63162 (bug 1339202) for crashing in image processing related tests, e.g. xpcshell test test_imgtools.js. r=backout 2017-02-13 22:34:54 +01:00
Andrew Osmond 1683b602b4 Bug 1339202 - Decode images to shared surfaces for WebRender. r=tnikkel 2017-02-08 15:48:59 -05:00
Ehsan Akhgari ba68896bf9 Bug 1311246 - Remove support for the -moz-samplesize media fragment; r=jrmuizel
This removes the feature added in bug 854795 for Tarako b2g devices.
2016-11-16 08:18:56 -05:00
Andrew Osmond 54d6f7e0c4 Bug 1258741 - Part 1. Remove dead/unused image decoder aborted flag. r=tnikkel 2016-09-21 07:13:08 -04:00
Seth Fowler 1f92f3a7b9 Bug 1293472 (Part 3) - Store animated images in the surface cache as a sequence of frames, rather than each frame getting its own cache entry. r=dholbert,edwin,njn 2016-08-18 15:42:48 -07:00
Seth Fowler 0403b4baba Bug 1291071 (Part 5) - Pass the decoder's final status explicitly to FinalizeDecoder(). r=edwin 2016-08-05 18:50:31 -07: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 baf4983cd8 Bug 1291071 (Part 3) - Pass telemetry explicitly to FinalizeDecoder. r=edwin 2016-08-05 18:50:27 -07:00
Seth Fowler b765419db3 Bug 1291071 (Part 1) - Pass ImageMetadata explicitly to FinalizeDecoder. r=edwin 2016-08-05 18:50:24 -07:00
Seth Fowler f5495f0fd1 Bug 1291045 (Part 7) - Replace DecodingTask with DecodedSurfaceProvider. r=dholbert,edwin 2016-08-05 18:46:24 -07:00
Seth Fowler 694b00bcd2 Bug 1291045 (Part 3) - Handle interactions with the SurfaceCache in DecodingTask. r=dholbert,edwin 2016-08-05 18:46:13 -07:00
Seth Fowler ba6bdbca1c Bug 1291045 (Part 2) - Pass the image into NotifyProgress() and NotifyDecodeComplete() explicitly. r=edwin 2016-08-05 18:46:12 -07:00
Seth Fowler f2c6e25053 Bug 1292505 (Part 1a) - Replace Decoder::SetTargetSize() with Decoder::SetOutputSize(). r=edwin 2016-08-05 13:44:44 -07:00
Seth Fowler bef1e68a73 Bug 1291054 (Part 5) - Remove Decoder::AllocateBasicFrame(), which is dead code. r=edwin 2016-08-02 04:10:56 -07:00
Seth Fowler 6ce660afb2 Bug 1291054 (Part 4) - Add Decoder convenience methods for the common case of frame rects that cover the whole image. r=edwin 2016-08-02 04:10:52 -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 1d1a71d4bc Bug 1291054 (Part 1) - Clean up Decoder's size getters a little bit. r=edwin 2016-08-02 04:10:47 -07:00
Seth Fowler 97b4a5d8c7 Bug 1289957 (Part 2) - Notify RasterImage about new frames in NotifyProgress() and remove OnAddedFrame(). r=edwin 2016-07-28 00:12:50 -07:00
Seth Fowler 3e8d8d790f Bug 1288040 (Part 10) - Determine the first frame refresh area of animated images while decoding them. r=edwin 2016-07-20 16:30:39 -07:00
Seth Fowler 642c28d837 Bug 1288040 (Part 9) - Determine the loop length of animated images while decoding them. r=edwin 2016-07-20 16:30:36 -07:00