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

429178 Коммитов

Автор SHA1 Сообщение Дата
Robert O'Callahan 56313ecbfb Bug 1143575. Don't report negative frame delays. r=cpearce
--HG--
extra : commitid : 33nYdtZ1epY
extra : rebase_source : 477367be90253417486530bac97f03c76c7c8c9a
2015-05-25 15:42:24 +12:00
Robert O'Callahan 04dc05db17 Bug 1143575. Pass a list of timestamped images to ImageContainer::SetCurrentImages. r=nical
--HG--
extra : commitid : 2JD9zKhyZMo
extra : rebase_source : f5276dee70345e932daca7a4d082f5917e09bf9e
2015-07-07 09:58:18 +12:00
Robert O'Callahan 2e70b55264 Bug 1143575. Async image invalidation does not necessarily need to invalidate the layer; LayerTreeInvalidation will do that for us. r=mattwoodrow
We need to remove this so that adding images to the end of the list of images
for an ImageLayer doesn't force composition to happen even if nothing else
has changed.

--HG--
extra : commitid : 8ycbGC3r3R2
extra : rebase_source : 2db81491d697d45e2e2c4605a3a00db7aca8586b
2015-05-15 18:16:41 +12:00
Robert O'Callahan 66a72d1a69 Bug 1143575. Exit composition early if nothing is invalid. r=mattwoodrow
We need this change so that when ImageHost has a next image to display
more than one composition-interval in the future, we skip the actual
compositing work in those intermediate composition(s) if nothing else
has changed.

This change is a little bit scary since it breaks any code that was
previously assuming ScheduleComposition would actually update the screen.
However, that code was already broken for BasicCompositor.

--HG--
extra : commitid : FUFFaJDSwfu
extra : rebase_source : eb2d5fadd5dbd417e7a25c05b148bd8964e8c2a3
2015-05-15 18:27:04 +12:00
Robert O'Callahan 008359665e Bug 1143575. Make LayerTreeInvalidation invalidate when an ImageLayerComposite's current frame has changed. r=mattwoodrow
--HG--
extra : commitid : 377gmcdr28S
extra : rebase_source : 2784e6664d1b87442a9045cbdfd82d65e2c8a431
2015-06-07 12:27:06 +03:00
Robert O'Callahan 68954a66d8 Bug 1143575. Route ImageCompositeNotifications to ImageContainers. r=nical
For frame statistics to work properly, we have to notify an ImageContainer
when it has been composited. This requires a few changes, which have
been lumped together in this patch:
-- Create PImageContainer and ImageContainerParent/ImageContainerChild.
-- Add mFrameID and mProducerID everywhere we're passing around images.
-- Route composition notifications from the compositor back to
ImageContainerChild.

--HG--
extra : commitid : 7atVkOgdEhG
extra : rebase_source : caaba6a708ed267368df44609fb047abde9c3ca1
2015-07-06 15:02:26 +12:00
Robert O'Callahan 6111862fcc Bug 1143575. Make ImageClientSingle handle multiple textures. r=nical
--HG--
extra : commitid : IMpF8V8HNbk
extra : rebase_source : e7748b4daa61d031a092970c793edef38787f974
2015-07-03 22:37:03 +12:00
Robert O'Callahan 7f3db8a464 Bug 1143575. Factor out AsyncTransactionWaiter from AsyncTransactionTracker so we'll be able to wait for multiple AsyncTransactionTrackers. r=nical,sotaro
--HG--
extra : commitid : KV6Mne8t10A
extra : rebase_source : 02de1f49ce13465481cfa688b8867fc558cac474
2015-05-12 15:36:49 +12:00
Robert O'Callahan 4b6793f937 Bug 1143575. Fix some code formatting. r=nical
--HG--
extra : commitid : ClRm5y4d3Tv
extra : rebase_source : 3b4629fc4e171ce31cfb761e831974191d3ae35c
2015-03-20 16:46:29 +13:00
Robert O'Callahan 2ce4c471d8 Bug 1143575. ImageClient::UpdateImage should not return false when there's no image, because recreating the ImageClient won't help. r=nical
--HG--
extra : commitid : GusXnTjkMTp
extra : rebase_source : 9792f5cb1427f33ecb2577a0b0ee8f1691d89a12
2015-03-19 21:06:27 +13:00
Robert O'Callahan bcc8b5528b Bug 1143575. Remove ImageClientBridge::Updated. r=nical
--HG--
extra : commitid : Q5G6rn1dV9
extra : rebase_source : bcadc50007626d5087ddbaaa9d954d3b6bd624f1
2015-03-19 21:00:52 +13:00
Robert O'Callahan 72fed74ae6 Bug 1143575. Replace ImageClientSingle::UpdateImage's use of Image serial numbers with ImageContainer state generation counters, and switch it to use ImageContainer::GetCurrentImages. r=nical
When ImageContainer and ImageClient are managing a list of images, the
individual Image serial numbers are no longer enough to detect whether the
state has changed.

--HG--
extra : commitid : 3EkV17zqHVt
extra : rebase_source : 92e7479b39bf499db0cc1db3534317c2fb8de68a
2015-05-12 12:56:09 +12:00
Robert O'Callahan 904f16b7e1 Bug 1143575. Ensure we schedule another composite if ImageHost has pending images. r=nical
--HG--
extra : commitid : BLBkIe24S4Z
extra : rebase_source : f710a0908f9336a9a30733b7ffb297da5feeff54
2015-03-19 19:58:16 +13:00
Robert O'Callahan beb81d9243 Bug 1143575. Implement ImageHost support for multiple timed images. r=nical
--HG--
extra : commitid : AFygr6JPPRp
extra : rebase_source : d70e81f20655c3bd1de73b8cff71de1e6f381fa8
2015-05-25 22:48:09 +12:00
Robert O'Callahan d42119a3f1 Bug 1143575. Store composition time in Compositor. r=nical
We'll need this later so ImageHost can select the correct image to use.

Adding a TimeStamp parameter to BeginFrame is a bit annoying since BeginFrame
is overridden by every subclass. It's a bit more convenient to just call a
separate non-virtual method just before we call BeginFrame.

--HG--
extra : commitid : 3QUviDozXL
extra : rebase_source : ba6bc3d846606f3f7598f4a3b687b68746067ce3
2015-07-07 15:38:38 +12:00
Robert O'Callahan faeb0b0fba Bug 1143575. Extend IPDL OpUseTexture to support multiple timestamped images. r=nical
--HG--
extra : commitid : 2GX3DAQCBjp
extra : rebase_source : 1cfae59b0e042e4b0295bc4382021e523d69ec70
2015-05-04 22:59:02 +12:00
Robert O'Callahan 15642eb711 Bug 1143575. Replace ImageContainer Lock methods with simplified AutoLockImage. r=nical
--HG--
extra : commitid : B1BZNvKIQFf
extra : rebase_source : 927c9aa549a863aeba97c0e5a4cb6cf87194669a
2015-03-27 12:07:53 +13:00
Robert O'Callahan d5d2cc4906 Bug 1143575. Fix typo in ImageContainer comment. r=nical
--HG--
extra : commitid : 17nmu85I7H7
extra : rebase_source : 951506bb60b87a4d61c843eb973e104d72414dbf
2015-03-16 23:23:50 +13:00
Robert O'Callahan 66660084d6 Bug 1143575. Rename ImageBridgeChild's AutoRemoteTextures to AutoRemoveTexturesFromImageBridge to avoid clashes with later work. r=nical
--HG--
extra : commitid : DkhWRxCRw3L
extra : rebase_source : 401b71c77646ca46a0b3754d7ee060e0c2007d69
2015-03-16 23:20:42 +13:00
Robert O'Callahan 942ed20877 Bug 1143575. Pass a picture rect with OpUseOverlaySource and OpUseTexture, and eliminate OpUpdatePictureRect. r=nical
The picture rect logically belongs with the texture, and later patches will
make OpUseTexture take multiple textures, each of which needs its own
picture rect.

--HG--
extra : commitid : AF2YszcgNe1
extra : rebase_source : 826332fc5dfec25b712ff62e5812cb00aaac81a4
2015-07-04 10:52:42 +12:00
Robert O'Callahan 27ae3dd82a Bug 1143575. Remove unused MediaQueue::Empty. r=cpearce
--HG--
extra : commitid : BJKjy3e2BkR
extra : rebase_source : ae976f42593570b864708a6d3964799f39ad2ed7
2015-03-30 20:06:58 +13:00
Robert O'Callahan b5074af667 Bug 1143575. Keep currently-rendered frame at the front of the video queue. r=cpearce
This makes normal playback consistent with the buffering state, which already
does this. We'll also need this when we handle multiple images, because then
we need to hande the entire queue of images to the ImageContainer without
pulling any of them off the queue.

--HG--
extra : commitid : B1zt05nhVn6
extra : rebase_source : af8a411f5f9be9d3a8c15633b2c4ad446be6d13f
2015-07-03 19:29:30 +12:00
Robert O'Callahan 245dd9a984 Bug 1143575. Rename clock_time to clockTime. r=cpearce
--HG--
extra : commitid : EsCpdzrtuis
extra : rebase_source : 9a0bcb04adea09f78b22721f6d13477974ff9a60
2015-03-30 16:00:57 +13:00
Robert O'Callahan 9194bf3d65 Bug 1143575. ScheduleStateMachine when the playback rate changes, so we can update the rendered frame queue. r=cpearce
--HG--
extra : commitid : 7gJKH1QbPSm
extra : rebase_source : db94d541ad1e55fe44f59b85e1b01ec1b1dd49fd
2015-03-30 15:14:03 +13:00
Robert O'Callahan f0ee5f8918 Bug 1143575. Make GetClock return a TimeStamp as well as the stream time. r=cpearce
This makes MediaDecoderStateMachine::GetVideoStreamPosition compute a
time that's more consistent with the audio clock.

--HG--
extra : commitid : JWQlELWFpTu
extra : rebase_source : 7c472cfd5188f5a948af16b734c25ddeed3651f8
2015-03-30 13:40:06 +13:00
Robert O'Callahan 52c7e44c24 Bug 1143575. Rename AdvanceFrame to UpdateRenderedVideoFrames. r=cpearce
--HG--
extra : commitid : K6557ZbFFzs
extra : rebase_source : 3409058bbbb2ef281ea943d4b92f348a5e7b8e2b
2015-03-30 11:54:58 +13:00
Robert O'Callahan c3252e17f5 Bug 1143575. Remove Theora-only duplicate frame optimization. r=cpearce
--HG--
extra : commitid : 6kaBElgTmcX
extra : rebase_source : 12941907af16da54a4db81ff82892bedc0b2653f
2015-03-28 10:53:37 +13:00
Robert O'Callahan d6dac9c830 Bug 1143575. Fix indent. r=cpearce
--HG--
extra : commitid : FUGh0LcQWjL
extra : rebase_source : b6a97d4c11c871b297e2805095d3f67fc12a1e6c
2015-03-28 10:36:26 +13:00
Robert O'Callahan 77c34a416d Bug 1143575. Convert SetCurrentImage(nullptr) callers to call ClearAllImages instead. r=nical
--HG--
extra : commitid : BN8G7I6BhiD
extra : rebase_source : 19fba64a55316faa5350274b21b4ee772c9cdad6
2015-03-26 11:40:36 +13:00
Robert O'Callahan 4cbd6a0b45 Bug 1143575. Move mLayer from ImageClientBridge up into its superclass ImageClient. r=nical
This simplifies code slightly.

--HG--
extra : commitid : IIL0ssthKVz
extra : rebase_source : ac94bb95089c4e029cda43b073e8db5a11becd37
2015-03-25 22:02:04 +13:00
Robert O'Callahan f194f6dade Bug 1143575. Remove unused CompositableClient::OnTransaction. r=nical
--HG--
extra : commitid : 8rysjAMnzTJ
extra : rebase_source : 36fa30fb31e95eeeee418779acb010fd137e0991
2015-03-25 21:30:25 +13:00
Robert O'Callahan 91d0066cc9 Bug 1143575. Remove unused AttachAsyncCompositable overload. r=nical
--HG--
extra : commitid : 9HTduT5MBwh
extra : rebase_source : 35f5b66328068bdc1a6addb90ae6ea5d15c00bcf
2015-05-08 15:58:17 +12:00
Robert O'Callahan 2733931631 Bug 1143575. LayerManagerComposite can't get END_NO_COMPOSITE. r=mattwoodrow
--HG--
extra : commitid : IcaU3L5K6Of
extra : rebase_source : f6a57ac92d1d742a3b1de3c51224fc2e47b792c1
2015-05-15 18:33:20 +12:00
Robert O'Callahan bf9976987d Bug 1143575. Remove unused ReturnReleaseFence. r=nical
--HG--
extra : commitid : IRHUURGyZ8Y
extra : rebase_source : a83531052f89676887fa35a7bcb0753a373143e4
2015-05-12 09:53:22 +12:00
Robert O'Callahan 27b29b591b Bug 1143575. Remove unused VideoFrameContainer::ClearCurrentFrame aResetSize parameter. r=nical
--HG--
extra : commitid : 2SbEVaxa9We
extra : rebase_source : 4449eca94b8242be01d6124e87b4745eb378baa4
2015-03-23 23:45:35 +13:00
Robert O'Callahan 12ae793af5 Bug 1143575. Remove unused ImageContainer::ResetPaintCount. r=nical
--HG--
extra : commitid : HGiTU6g5Puk
extra : rebase_source : 5550d38a6d9a91e5be5885152885df37ddf3dfa5
2015-03-23 23:39:28 +13:00
Robert O'Callahan 20525bd83f Bug 1143575. Rename mAsyncTransactionTrackeres to mAsyncTransactionTrackers. r=nical
--HG--
extra : commitid : FYNeg3qoAWW
extra : rebase_source : 730f71e87d2f9b0afff05556ff27dd5f6f0d8b82
2015-03-23 23:34:41 +13:00
Robert O'Callahan 4dc4994e87 Bug 1143575. Remove unused VideoFrameContainer::Reset. r=nical
--HG--
extra : commitid : 4F7BQzgug3q
extra : rebase_source : 0cdac4f1f201afb0c1168c618febd6f0439e0318
2015-03-23 23:33:51 +13:00
Robert O'Callahan c85ce2add1 Bug 1143575. Remove unused CompositionNotifySink. r=nical
--HG--
extra : commitid : KLg81j7yveG
extra : rebase_source : d2a2af5c722a81632fcf4644d429bb2995fcba1e
2015-03-22 01:02:25 +13:00
Robert O'Callahan a8c934fc4b Bug 1143575. Remove unused Image::IsSentToCompositor tracking. r=nical
--HG--
extra : commitid : 4lRVErELCKo
extra : rebase_source : 00787282ba967a306fb0862ef51dc70b37c9380b
2015-03-20 16:13:46 +13:00
Robert O'Callahan 84a1b0dd5a Bug 1143575. Android's screenshotting code should invalidate the LayerManagerComposite to ensure composition will actually happen. r=nical
There is some ambiguity about whether ScheduleComposite will necessarily
trigger a composite all the way to nsWindow::DrawWindowUnderlay. Android
robocop tests assume it will, because they rely on DrawWindowOverlay
being called so they can take a screenshot and make progress,
but this is a very fragile assumption. They also rely on the entire
window being painted, which is also a fragile assumption.

This patch improves the situation by explicitly invalidating the current
window area when Android Java code needs to trigger a composite. This avoids
regressions from future patches in this series which make composition bail
out when there is nothing invalid.

The resulting setup is still a bit fragile for my taste but I'm not sure
what the ideal solution would be.

--HG--
extra : commitid : 3t3xqRdZs24
extra : rebase_source : b23749613663ca805484776ccf5e36b4ff00e3fe
2015-06-12 03:20:04 +12:00
Robert O'Callahan 39d3278ef9 Bug 1143575. Make GL context current before cleaning up programs. r=nical
Otherwise we can get a crash with the following stack:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 14711]
0x5d99974e in mozilla::gl::GLContext::BeforeGLCall (this=0x6dbf0800,
    funcName=0x60f251a4 <mozilla::gl::GLContext::raw_fDeleteProgram(unsigned int)::__PRETTY_FUNCTION__> "void mozilla::gl::GLContext::raw_fDeleteProgram(GLuint)") at /home/roc/mozilla-inbound/gfx/gl/GLContext.h:683
683	        MOZ_ASSERT(IsCurrent());
(gdb) where
#0  0x5d99974e in mozilla::gl::GLContext::BeforeGLCall (this=0x6dbf0800,
    funcName=0x60f251a4 <mozilla::gl::GLContext::raw_fDeleteProgram(unsigned int)::__PRETTY_FUNCTION__> "void mozilla::gl::GLContext::raw_fDeleteProgram(GLuint)") at /home/roc/mozilla-inbound/gfx/gl/GLContext.h:683
#1  0x5d99bed6 in mozilla::gl::GLContext::raw_fDeleteProgram (this=0x6dbf0800, program=210003)
    at /home/roc/mozilla-inbound/gfx/gl/GLContext.h:2232
#2  0x5d99c10a in mozilla::gl::GLContext::fDeleteProgram (this=0x6dbf0800, program=210003)
    at /home/roc/mozilla-inbound/gfx/gl/GLContext.h:2270
#3  0x5daa0ae6 in mozilla::layers::ShaderProgramOGL::~ShaderProgramOGL (this=0x6d7df000, __in_chrg=<optimized out>)
    at /home/roc/mozilla-inbound/gfx/layers/opengl/OGLShaderProgram.cpp:491
#4  0x5da86bdc in mozilla::layers::CompositorOGL::CleanupResources (this=0x67ae4d70)
    at /home/roc/mozilla-inbound/gfx/layers/opengl/CompositorOGL.cpp:177

--HG--
extra : commitid : LPnSogXNNio
extra : rebase_source : 0564dd5688916271c4a709ae6f15ba7ad493a761
2015-06-12 03:18:46 +12:00
Robert O'Callahan c50869770d Bug 1143575. test_HaveMetadataUnbufferedSeek should not wait for canplay since preload='metadata' elements may not fire canplay. r=cpearce
--HG--
extra : commitid : iPriL1BPFj
extra : rebase_source : 80f91242684dd828cf04024248380fe29ba27665
2015-06-10 15:56:27 +12:00
Robert O'Callahan 03d5043265 Bug 1143575. Add some #includes to avoid more unified-build issues on Windows. r=nical
--HG--
extra : commitid : LAYd8Vr7a6D
extra : rebase_source : 7338bc61bbfbc0f464d50e2d1b1842ed1d4082ba
2015-06-09 14:35:04 +12:00
Robert O'Callahan bf17280c42 Bug 1143575. Add some #includes to avoid unified-build issues on Windows. r=nical
--HG--
extra : commitid : 8xmF8987SNT
extra : rebase_source : a46a60f95c781019cb7bfd554524965efd851064
2015-06-09 05:27:37 +12:00
Robert O'Callahan 680664fafe Bug 1143575. Add RefBase #include to stagefright stubs. r=cpearce
--HG--
extra : commitid : wcsOwklXjp
extra : rebase_source : 8c4973bc7c8c032dc1c28b4525ca0fca998a1989
2015-05-12 15:36:19 +12:00
Robert O'Callahan 4ac8503958 Bug 1143575. Avoid use of COMPARE macro which can clash with Android headers. r=bent
--HG--
extra : commitid : G02N9VidCk7
extra : rebase_source : a2a3bba44ef2b8765432e06d32ee4a811c9954fd
2015-06-07 12:26:40 +03:00
Robert O'Callahan 5088734876 Bug 1143575. Avoid including Android's GraphicBuffer.h from LayersTypes.h. r=nical
On some Android versions, GraphicBuffer.h ends up including libui's
hardware.h, which #defines the symbols version_minor and version_major, which
are used as field names in Ogg Theora's th_info struct. Later patches will
require some files to include both Theora headers and LayerTypes.h.

--HG--
extra : commitid : HM7e5zfyoAz
extra : rebase_source : de8dd7e5bc6bfcfeb729cfab86fe44b8bb12ab80
2015-06-08 21:27:23 +12:00
Robert O'Callahan 1387dd6d7c Bug 1143575. #include nsDebug.h in YCbCrImageDataSerializer.cpp for NS_WARN_IF. r=nical
--HG--
extra : commitid : GDaM0ljPOHP
extra : rebase_source : 8ce0247de613f05c5d731f21f7fe0b1958f733e0
2015-06-08 22:19:11 +12:00
Olli Pettay e99787e9bc Bug 1144418 - target events for text nodes in shadow dom to the nearest element in the flattened tree. r=wchen
--HG--
extra : rebase_source : 81de26ea74c76b33bd6727297957e42c4441fb43
2015-07-07 01:56:10 +03:00