hook Oxide into Ubuntu platform API for media-hub
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical System Image |
Fix Released
|
High
|
David Barth | ||
Oxide |
In Progress
|
Medium
|
Justin McPherson | ||
media-hub (Ubuntu) |
In Progress
|
High
|
Justin McPherson | ||
media-hub (Ubuntu RTM) |
In Progress
|
High
|
Justin McPherson | ||
oxide-qt (Ubuntu) |
Fix Released
|
Medium
|
Justin McPherson |
Bug Description
Right now oxide uses software rendering for audio and video via the chromium content api ffmpeg implementation for libffmpegsumo.so. This is provided in either oxideqt-codecs (suitable for main) or oxideqt-
The correct way to solve this is for Oxide to use the media-hub in some manner. This was somewhat easily solved with QtWebKit since it used gstreamer and it could be made to hook into the media-hub. However, QtWebKit is dead upstream which is one reason why we are using Oxide. We should look to see how qtwebengine is handling this (ie, are they just using the software rendering or are they redoing the QtWebKit gstreamer work for qtwebengine). Perhaps we could provide our own libffmpegsumo.so or wrap it in some manner. Perhaps we can work with upstream to have something that works better on Linux/Ubuntu in general. Whatever method is chosen should be maintainable in the face of weekly or biweekly stable updates (low api churn) and 6-8 week beta updates (potential api churn) to the chromium content api, since we expect this update frequency in our stable releases for security, bug and web compatibility fixes over a period of up to 5 years.
Related branches
- Chris Coulson: Approve
-
Diff: 3896 lines (+3622/-4) (has conflicts)30 files modifiedCMakeLists.txt (+7/-0)
patches/mediahub-support.patch (+55/-0)
patches/series (+1/-0)
shared/browser/media/oxide_browser_media_player_manager.cc (+205/-0)
shared/browser/media/oxide_browser_media_player_manager.h (+95/-0)
shared/browser/media/oxide_media_player.cc (+26/-0)
shared/browser/media/oxide_media_player.h (+75/-0)
shared/browser/media/oxide_media_web_contents_observer.cc (+77/-0)
shared/browser/media/oxide_media_web_contents_observer.h (+47/-0)
shared/browser/media/oxide_player_media_hub.cc (+213/-0)
shared/browser/media/oxide_player_media_hub.h (+112/-0)
shared/browser/oxide_browser_process_main.cc (+13/-0)
shared/browser/oxide_content_browser_client.cc (+3/-1)
shared/browser/oxide_web_view.cc (+61/-3)
shared/common/oxide_constants.cc (+2/-0)
shared/common/oxide_constants.h (+2/-0)
shared/common/oxide_message_enums.h (+6/-0)
shared/common/oxide_messages.h (+130/-0)
shared/media/mediahub.gyp (+30/-0)
shared/media/mediahub_player_shim.cc (+342/-0)
shared/media/mediahub_player_shim.h (+143/-0)
shared/renderer/media/oxide_media_info_loader.cc (+192/-0)
shared/renderer/media/oxide_media_info_loader.h (+126/-0)
shared/renderer/media/oxide_renderer_media_player_manager.cc (+233/-0)
shared/renderer/media/oxide_renderer_media_player_manager.h (+105/-0)
shared/renderer/media/oxide_web_media_player.cc (+929/-0)
shared/renderer/media/oxide_web_media_player.h (+326/-0)
shared/renderer/oxide_content_renderer_client.cc (+29/-0)
shared/renderer/oxide_content_renderer_client.h (+13/-0)
shared/shared.gyp (+24/-0)
- Chris Coulson: Pending requested
-
Diff: 866 lines (+645/-4)18 files modifiedCMakeLists.txt (+5/-0)
shared/browser/media/mediahub_player_shim.cc (+48/-0)
shared/browser/media/mediahub_player_shim.h (+9/-0)
shared/browser/media/oxide_browser_media_arbitrator.cc (+204/-0)
shared/browser/media/oxide_browser_media_arbitrator.h (+89/-0)
shared/browser/media/oxide_media_web_contents_observer.cc (+2/-2)
shared/browser/oxide_browser_process_main.cc (+4/-0)
shared/browser/oxide_content_browser_client.cc (+2/-1)
shared/browser/oxide_web_view.cc (+7/-0)
shared/common/oxide_constants.cc (+1/-0)
shared/common/oxide_constants.h (+1/-0)
shared/common/oxide_messages.h (+29/-0)
shared/renderer/media/oxide_renderer_media_arbitrator.cc (+148/-0)
shared/renderer/media/oxide_renderer_media_arbitrator.h (+61/-0)
shared/renderer/media/oxide_renderer_media_player_manager.cc (+1/-1)
shared/renderer/oxide_content_renderer_client.cc (+20/-0)
shared/renderer/oxide_content_renderer_client.h (+3/-0)
shared/shared.gyp (+11/-0)
Changed in oxide: | |
importance: | Undecided → High |
assignee: | nobody → Ricardo Salveti (rsalveti) |
Changed in oxide: | |
status: | New → Triaged |
summary: |
- hook Oxide into Ubuntu platform API + hook Oxide into Ubuntu platform API for media-hub |
description: | updated |
Changed in oxide-qt (Ubuntu Trusty): | |
importance: | Undecided → High |
description: | updated |
description: | updated |
Changed in oxide-qt (Ubuntu Trusty): | |
status: | New → Triaged |
Changed in oxide: | |
milestone: | none → branch-1.2 |
Changed in oxide: | |
assignee: | Ricardo Salveti (rsalveti) → Alexandre Abreu (abreu-alexandre) |
tags: | added: rtm14 |
Changed in oxide: | |
status: | Triaged → In Progress |
Changed in media-hub: | |
status: | New → Triaged |
assignee: | nobody → Jim Hodapp (jhodapp) |
importance: | Undecided → High |
Changed in oxide-qt (Ubuntu Utopic): | |
importance: | High → Critical |
Changed in oxide: | |
importance: | High → Critical |
no longer affects: | oxide-qt (Ubuntu Trusty) |
no longer affects: | oxide-qt (Ubuntu Utopic) |
Changed in oxide-qt (Ubuntu): | |
assignee: | nobody → Alexandre Abreu (abreu-alexandre) |
Changed in media-hub: | |
importance: | High → Critical |
status: | Triaged → In Progress |
Changed in oxide: | |
importance: | Critical → High |
Changed in oxide: | |
milestone: | branch-1.2 → branch-1.3 |
tags: | added: touch-2014-9-25 |
tags: | removed: touch-2014-9-25 |
tags: | removed: rtm14 |
tags: | added: ota14-1 |
tags: |
added: ota-1 rtm14 removed: ota14-1 |
Changed in oxide-qt (Ubuntu): | |
importance: | High → Medium |
Changed in oxide: | |
importance: | High → Medium |
Changed in media-hub: | |
importance: | High → Medium |
Changed in oxide: | |
milestone: | branch-1.3 → branch-1.4 |
Changed in canonical-devices-system-image: | |
assignee: | nobody → Canonical Devices Products (canonical-devices-products-team) |
importance: | Undecided → High |
milestone: | none → r1 |
status: | New → Confirmed |
Changed in oxide: | |
assignee: | Alexandre Abreu (abreu-alexandre) → Justin McPherson (justinmcp) |
Changed in oxide-qt (Ubuntu): | |
assignee: | Alexandre Abreu (abreu-alexandre) → Justin McPherson (justinmcp) |
Changed in oxide: | |
milestone: | branch-1.4 → branch-1.5 |
Changed in media-hub: | |
status: | In Progress → Fix Committed |
Changed in oxide: | |
status: | In Progress → Fix Committed |
Changed in oxide-qt (Ubuntu): | |
status: | Triaged → Fix Committed |
Changed in canonical-devices-system-image: | |
status: | Confirmed → Fix Committed |
Changed in canonical-devices-system-image: | |
status: | Fix Committed → In Progress |
milestone: | ww05-2015 → ww09-2015 |
Changed in canonical-devices-system-image: | |
assignee: | Canonical Devices Products (canonical-devices-products-team) → David Barth (dbarth) |
Changed in canonical-devices-system-image: | |
milestone: | ww09-2015 → ww11-2015 |
status: | In Progress → Fix Released |
Changed in oxide: | |
status: | Fix Released → In Progress |
Changed in media-hub (Ubuntu): | |
status: | New → In Progress |
Changed in media-hub (Ubuntu RTM): | |
status: | New → In Progress |
no longer affects: | media-hub |
Changed in media-hub (Ubuntu): | |
importance: | Undecided → High |
Changed in media-hub (Ubuntu RTM): | |
importance: | Undecided → High |
Changed in media-hub (Ubuntu): | |
assignee: | nobody → Justin McPherson (justinmcp) |
Changed in media-hub (Ubuntu RTM): | |
assignee: | nobody → Justin McPherson (justinmcp) |
when media-hub is fully in place there will be a platform API to provide media playback control and textures that will need to be integrated with Oxide for video playback