Andrew Osmond
46250e2a5e
Bug 1258741 - Part 2. Ensure we consistently render partially decoded images. r=tnikkel
2016-09-26 14:18:37 -04: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
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
f2c6e25053
Bug 1292505 (Part 1a) - Replace Decoder::SetTargetSize() with Decoder::SetOutputSize(). r=edwin
2016-08-05 13:44:44 -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
16cff1aefa
Bug 1290759 - Convert frame number check in Decoder::AllocateFrame() into an assert. r=edwin
2016-08-01 17:40:05 -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
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
a0b0263e26
Bug 1287691 (Part 4) - Leave notifying decoding progress for each frame to DecodingTask. r=edwin
2016-07-20 02:30:39 -07:00
Seth Fowler
7edd4cdb0d
Bug 1287691 (Part 1) - Expose yielding to decoding tasks. r=edwin
2016-07-20 02:30:33 -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
Seth Fowler
c4e69d01bb
Bug 1287691 (Part 4) - Leave notifying decoding progress for each frame to DecodingTask. r=edwin
2016-07-19 17:15:01 -07:00
Seth Fowler
966d0547b7
Bug 1287691 (Part 1) - Expose yielding to decoding tasks. r=edwin
2016-07-19 17:15:01 -07:00
Seth Fowler
938a963f7f
Bug 1287246 (Part 1) - Expose LexerResult from the StreamingLexer API and add an explicit Yield type. r=njn
2016-07-18 01:25:37 -07:00
Seth Fowler
4c2a4667a7
Bug 1286165 (Part 2) - Advance decoders' SourceBufferIterator directly in StreamingLexer. r=edwin,njn
2016-07-15 17:48:57 -07:00
Seth Fowler
4be29e46b3
Bug 1285867 (Part 7) - Clean up remaining references to decoder 'data errors' and refer to them as just 'errors'. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
905634be2b
Bug 1285867 (Part 6) - Record Decoder telemetry outside of the loop. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
063f83b278
Bug 1285867 (Part 5) - Replace Decoder::mDataDone with Decoder::mReachedTerminalState. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
396c016b13
Bug 1285867 (Part 4) - Decide whether we're done decoding by checking if we've reached a terminal state. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
b1af28a2d7
Bug 1285867 (Part 3f) - Only call PostDataError() outside the loop. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
0d49568090
Bug 1285867 (Part 3e) - Use TerminalState to exit the Decode() loop. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
87c5e4a570
Bug 1285867 (Part 3d) - Rely on TerminalState to decide when to post errors inside the loop. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
1204600670
Bug 1285867 (Part 3c) - Replace the Decode() |while| loop with a |do| loop. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
e8aa76cc0d
Bug 1285867 (Part 3b) - Replace the series of |if| statements in the Decode() loop with a |switch|. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
f5b3f999dd
Bug 1285867 (Part 3a) - Don't attempt to keep decoding if we're already done. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
0872ad00cb
Bug 1285867 (Part 2) - Don't call Decoder::PostDataError() from Decoder subclasses. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
3c38000891
Bug 1285867 (Part 1) - Remove Decoder's notion of decoder errors. r=edwin
2016-07-15 16:41:11 -07:00
Seth Fowler
bd9732ac1b
Bug 1285865 (Part 6) - Pass a SourceBufferIterator to Decoder::DoDecode(). r=edwin
2016-07-11 12:13:13 -07:00
Seth Fowler
e80fff4085
Bug 1285865 (Part 5) - Return a Maybe<TerminalState> from Decoder::DoDecode(). r=edwin
2016-07-11 12:13:11 -07:00
Seth Fowler
a9f24e8308
Bug 1285865 (Part 4) - Rename Decoder::WriteInternal() to Decoder::DoDecode() and fix its argument types. r=edwin
2016-07-11 12:13:09 -07:00
Seth Fowler
9ef391acb2
Bug 1285865 (Part 3) - Inline Decoder::Write() into Decoder::Decode(). r=edwin
2016-07-11 12:13:07 -07:00
Seth Fowler
b9c1cec011
Bug 1285865 (Part 2) - Add a RAII class to record decoder telemetry. r=edwin
2016-07-11 12:13:05 -07:00
Seth Fowler
a50b8d5f3e
Bug 1285865 (Part 1) - Remove Decoder::Write() checks that are redundant with Decoder::Decode(). r=edwin
2016-07-11 12:13:02 -07:00
Seth Fowler
e4439cf3bc
Bug 1185799 (Part 3) - Make nsICODecoder use only the public Decoder interface for writing to its contained decoder. r=edwin
2016-07-07 15:50:49 -07:00
Seth Fowler
6361b2adb8
Bug 1185799 (Part 1) - Use DecoderFactory to construct nsICODecoder's contained decoder. r=edwin
2016-07-07 15:50:44 -07:00
Seth Fowler
f9272b3af2
Bug 1282327 (Part 1) - Store ISurfaceProviders in the ImageLib SurfaceCache. r=dholbert
2016-07-02 18:47:44 -06:00
Seth Fowler
43c4cb86a4
Revert "Bug 1282327 - Store ISurfaceProviders in the ImageLib SurfaceCache. r=dholbert"; it was accidentally pushed.
...
This reverts commit 57147126cc04361268e606ac9e94c65e2bd4c886.
2016-06-29 18:36:34 -07:00
Seth Fowler
d35c501ce3
Bug 1282327 - Store ISurfaceProviders in the ImageLib SurfaceCache. r=dholbert
2016-06-29 18:33:20 -07:00
Seth Fowler
41627d474f
Bug 1282259 - Run IDecodingTasks instead of Decoders directly in image::DecodePool. r=dholbert
2016-06-29 13:46:27 -07:00
Seth Fowler
17074a1b49
Bug 1255107 (Part 3) - Use SurfacePipe in the PNG decoder. r=njn
2016-06-25 14:04:05 -07:00
Timothy Nikkel
2c28cda879
Bug 1271002. Notify right away after getting the first frame of an animated image. r=seth
...
The decoding loop in Decoder::Decode only pauses to report progress when it runs out of bytes to decode. So for long animated images where the network is keeping up with decoding it will be a relatively long time until we deliver the first frame complete notification and corresponding invalidation. In most cases this shouldn't be too expensive as it is just dispatching a runnable to the main thread from the decoding thread.
2016-05-13 21:32:21 -05:00
Sebastian Hengst
fe00520851
Backed out changeset 2ac62de7365d (bug 1271002) for crash in GTest: [@ mozilla::image::RasterImage::UpdateImageContainer]. r=backout
2016-05-14 00:08:18 +02:00
Timothy Nikkel
316a0874c5
Bug 1271002. Notify right away after getting the first frame of an animated image. r=seth
...
The decoding loop in Decoder::Decode only pauses to report progress when it runs out of bytes to decode. So for long animated images where the network is keeping up with decoding it will be a relatively long time until we deliver the first frame complete notification and corresponding invalidation. In most cases this shouldn't be too expensive as it is just dispatching a runnable to the main thread from the decoding thread.
2016-05-13 16:19:55 -05:00
Timothy Nikkel
6d672b7854
Bug 1270997. Send invalidations for the first image frame properly. r=seth
...
This was caused by http://hg.mozilla.org/mozilla-central/rev/167ceb965079 (bug 1194059). Before that changeset mIsAnimated meant "we currently have more than one frame". After that changeset mIsAnimated was replaced with HasAnimation(). HasAnimation() just looks at the metadata to see if the image is animated. That changeset had the effect of always detected if an image is animated during the metadata decode. Therefore during a full decode we always know the image is animated, even before we've decoded two or more frames.
The fix is to go back to using the actual current frame count to manage invalidations.
2016-05-07 15:54:39 -05:00