When playing some videos, each frames of rendering size is different

RESOLVED INVALID

Status

()

RESOLVED INVALID
5 years ago
5 years ago

People

(Reporter: sotaro, Assigned: sotaro)

Tracking

Trunk
ARM
Gonk (Firefox OS)
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Assignee)

Description

5 years ago
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
QA Contact: nical.bugzilla

Updated

5 years ago
Assignee: nobody → nical.bugzilla
QA Contact: nical.bugzilla

Updated

5 years ago
Blocks: 825928
(Assignee)

Comment 1

5 years ago
I confirmed following
 - first video is rendered correctly
 - if second video sizes are different one, video is rendered strangely
(Assignee)

Comment 2

5 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

5 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

5 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

5 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
(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

5 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

5 years ago
nical, I re-think about the bug. I take the bug. Is it OK?
Assignee: nical.bugzilla → sotaro.ikeda.g
(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

5 years ago
This bug is not valid now.
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.