Closed Bug 939211 Opened 7 years ago Closed 6 years ago

Omx Video fails on thumbnail generation on JB

Categories

(Firefox OS Graveyard :: General, defect)

ARM
Linux
defect
Not set

Tracking

(blocking-b2g:1.3+)

RESOLVED FIXED
1.3 Sprint 5 - 11/22
blocking-b2g 1.3+

People

(Reporter: diego, Assigned: diego)

References

()

Details

(Whiteboard: [POVB])

Attachments

(1 file)

I get a an error message that points to the thumbnail in logcat [1].

I verified OMX video with a youtube video, so it seems OmxDecoder can play back video fine.

Also, manifest.ogv and meetthecubs.webm work fine. The problem seems to be only with thumbnail generation of OmxDecoder formats.

[1] E/GeckoConsole( 1143): Content JS ERROR at app://video.gaiamobile.org/js/metadata.js:344 in captureFrame: Exception in captureFrame: [Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: app://video.gaiamobile.org/js/metadata.js :: captureFrame :: line 338"  data: no] 
E/GeckoConsole( 1143): Content JS WARN at app://video.gaiamobile.org/js/metadata.js:242 in fail: Seek failed while creating thumbnail for /sdcard/Movies/VID_0001.3gp . Ignoring corrupt file.
Attached file logcat.txt
blocking-b2g: --- → 1.3?
Can you give exact STR you used to reproduce this bug?
STR:

1. Load this media clip to the sd card: http://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4
2. Open video app

The app fails to list the clip on my device. I'd appreciate if someone could try it out on Nexus 4 and verify that it's using the OMX decoder.
Forgot to mention an important detail: this happens on JellyBean only.
Summary: Omx Video fails on thumbnail generation → Omx Video fails on thumbnail generation on JB
(In reply to Diego Wilson [:diego] from comment #4)
> Forgot to mention an important detail: this happens on JellyBean only.

Oh - in that case, this is unlikely a regression then.
blocking-b2g: 1.3? → 1.3+
Target Milestone: --- → 1.3 Sprint 5 - 11/22
(In reply to Diego Wilson [:diego] from comment #3)
> STR:
> 
> 1. Load this media clip to the sd card:
> http://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.
> mp4
> 2. Open video app
> 

I confirmed the thumbnail generation on nexus-4.
Your hardware might failed to convert color format to RGB565 at GrallocImage::GetAsSurface(). nexus-4's hw decoder uses HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED and it's support is added by Bug 911518.
One possibility of the problem is Diego's phone uses a proprietary color format that is not added to b2g.
(In reply to Sotaro Ikeda [:sotaro] from comment #8)
> One possibility of the problem is Diego's phone uses a proprietary color
> format that is not added to b2g.

:sotaro, can this be marked as a POVB then ? or there something we need to fix on our side for the JB support ?
Flags: needinfo?(sotaro.ikeda.g)
Yes, it could be marked as POVB. On nexus-4, the thumbnails are generated.
Flags: needinfo?(sotaro.ikeda.g)
Whiteboard: POVB
Component: General → Vendcom
Not so fast :)
This may still require a Gecko patch to handle yet another YcBcR format.
Whiteboard: POVB
Component: Vendcom → General
(In reply to Michael Vines [:m1] [:evilmachines] from comment #11)
> Not so fast :)
:D
> This may still require a Gecko patch to handle yet another YcBcR format.
ah, I see. :sotaro, is this something you can help with ?
Diego is prolly in a better position to at least let us know what format we are missing
Flags: needinfo?(dwilson)
(In reply to Michael Vines [:m1] [:evilmachines] from comment #13)
> Diego is prolly in a better position to at least let us know what format we
> are missing

Yeah, A patch/info from diego is necessary. It might need to add a proprietary color format.
:sotaro -- this is the format support we are missing: 
HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS     = 0x7FA30C04

I am getting "Invalid color conversion" for this format from here:
http://mxr.mozilla.org/mozilla-central/source/gfx/layers/GrallocImages.cpp#267
Flags: needinfo?(dwilson) → needinfo?(sotaro.ikeda.g)
(In reply to Inder from comment #15)
> :sotaro -- this is the format support we are missing: 
> HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS     = 0x7FA30C04
> 

HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS is already added to gecko by Bug 871364. If it is not added to gecko, it fails in the following line.
  http://mxr.mozilla.org/mozilla-central/source/gfx/layers/GrallocImages.cpp#227

> I am getting "Invalid color conversion" for this format from here:
> http://mxr.mozilla.org/mozilla-central/source/gfx/layers/GrallocImages.
> cpp#267

This says, android::ColorConverter in diego's hardware does not support the color conversion. It is out of gecko. It is CAF/android area. For nexus-4, we added the HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED's color conversion by forking AOSP platform_frameworks_av in Bug 911548.

https://github.com/mozilla-b2g/platform_frameworks_av/blob/b2g-4.3_r2.1/media/libstagefright/colorconversion/ColorConverter.cpp

So, HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS needs to be added to android::ColorConverter you are using. I assume you are using CAF code. If it is the case, you need to add the support to CAF's android::ColorConverter.
Flags: needinfo?(sotaro.ikeda.g)
Assignee: nobody → dwilson
Fix will land in CAF
Whiteboard: [POVB]
Status: NEW → ASSIGNED
Fix landed in CAF

https://www.codeaurora.org/cgit/quic/la/platform/frameworks/av/commit/?h=b2g_jb_3.2&id=040ca3ba634d4f294c0c3c2f3f531017df18650f
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Flags: in-testsuite?
Flags: in-moztrap?
Flags: in-moztrap? → in-moztrap+
You need to log in before you can comment on or make changes to this bug.