Closed
Bug 860488
Opened 12 years ago
Closed 12 years ago
When playing some videos, each frames of rendering size is different
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
INVALID
People
(Reporter: sotaro, Assigned: sotaro)
References
Details
It seems landing GFX layer refactoring regression. Confirmed on unagi by using m-i source code.
When playing some videos, each frames of rendering size is different.
Confirmed by using a following video on Bug 850566.
https://www.dropbox.com/s/bxgyyrcvyymi4xd/AvatarMovieTrailer.mp4
Updated•12 years ago
|
QA Contact: nical.bugzilla
Updated•12 years ago
|
Assignee: nobody → nical.bugzilla
QA Contact: nical.bugzilla
Updated•12 years ago
|
Blocks: layers-refactoring
Assignee | ||
Comment 1•12 years ago
|
||
I confirmed following
- first video is rendered correctly
- if second video sizes are different one, video is rendered strangely
Assignee | ||
Comment 2•12 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #1)
> I confirmed following
> - first video is rendered correctly
> - if second video sizes are different one, video is rendered strangely
It seems like somewhere keeps old information.
Assignee | ||
Comment 3•12 years ago
|
||
Before layer refactoring. There are two RenderLayer() in ImageLayerOGL.cpp. Only ShadowImageLayerOGL one is used. ImageLayerOGL one is not used.
- ImageLayerOGL::RenderLayer()
- ShadowImageLayerOGL::RenderLayer()
So, ImageLayerOGL is not updated anymore and do not work correctly.
Assignee | ||
Comment 4•12 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #3)
> Before layer refactoring. There are two RenderLayer() in ImageLayerOGL.cpp.
> Only ShadowImageLayerOGL one is used. ImageLayerOGL one is not used.
> - ImageLayerOGL::RenderLayer()
> - ShadowImageLayerOGL::RenderLayer()
>
> So, ImageLayerOGL is not updated anymore and do not work correctly.
And ImageLayerOGL is used for layer refactoring.
Assignee | ||
Comment 5•12 years ago
|
||
IIRC following, 2nd arg of GetVisibleRegion().GetBounds() need to be picture size. I do not remember which bug is. Though it is not related to the bug.
> mOGLManager->BindAndDrawQuadWithTextureRect(program,
> GetVisibleRegion().GetBounds(),
> nsIntSize(ioImage->GetSize().width,
> ioImage->GetSize().height));
http://mxr.mozilla.org/mozilla-central/source/gfx/layers/opengl/ImageLayerOGL.cpp#437
Comment 6•12 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #3)
> Before layer refactoring. There are two RenderLayer() in ImageLayerOGL.cpp.
> Only ShadowImageLayerOGL one is used. ImageLayerOGL one is not used.
> - ImageLayerOGL::RenderLayer()
> - ShadowImageLayerOGL::RenderLayer()
>
> So, ImageLayerOGL is not updated anymore and do not work correctly.
More precisely, ImageLayerOGL is not used on mobile platforms. We used and still use ImageLayerOGL on desktop firefox.
The point is, though, that in the making of ImageHost that provides the functionality once provided by ShadowImageLayerOGL, we apparently used ImageLayerOGL's implementation as a reference. I am not sure why ShadowImageLayerOLG::RenderLayer and ImageLayerOGL::RenderLayer were different, though.
Assignee | ||
Comment 7•12 years ago
|
||
ImageLayerOGL::RenderLayer() uses GonkIOSurfaceImage to get an image size and image buffer size. But ShadowImageLayerOGL::RenderLayer() uses SurfaceDescriptorGralloc and android::GraphicBuffer to get an image size and image buffer size.
Assignee | ||
Comment 8•12 years ago
|
||
nical, I re-think about the bug. I take the bug. Is it OK?
Assignee: nical.bugzilla → sotaro.ikeda.g
Comment 9•12 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #8)
> nical, I re-think about the bug. I take the bug. Is it OK?
Of course :) thanks
Assignee | ||
Comment 10•12 years ago
|
||
This bug is not valid now.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•