Consolidated gstomx support from various vendors

Registered by Sachin Gupta

gstomx consolidation

 * review existing vendor branches
 * identify potential for consolidation
 * identify framework needs to allow a single runtime binary for multiple SoCs

Blueprint information

Status:
Complete
Approver:
Alexander Sack
Priority:
Not
Drafter:
Sachin Gupta
Direction:
Needs approval
Assignee:
Benjamin Gaignard
Definition:
Obsolete
Series goal:
Accepted for trunk
Implementation:
Deferred
Milestone target:
milestone icon backlog
Completed by
Jesse Barker

Related branches

Sprints

Whiteboard

[asac Nov 17]: set the specification URL correctly
[asac Nov 17]: split up implementation and work into 2-3 days work items and put those on whiteboard
[asac Nov 21]: couldnt find the wiki page at all for this ... please set this up NOW!
[asac Jan 3]: fixed all work items; approved - please see what I did to learn the syntax for future
[rajeev Feb 01]: Lot of tasks identified for Jan,11 is not yet complete. Where as lot of other tasks were done during this time. please update/add tasks done in this time frame and replan for the pending ones.
[benjiG, April 27]: current development push on git.linaro.org: my opinion is that, with the current version of GStreamer and the strict OpenMax specifications (and all vendors have their own "adaptation" of OpenMax standard) it isn't possible to achieve this task
[benjiG, April 27]: Next GStreamer major version (1.0) will implement gstbufferpool base class which could help if buffer preannoucement feature is removed from OMX spec

(1) define demuxers and parser requirement to work with OMX components:
- OMX requirements for H264 stream: formated as bytestream (not avc formated), if the a frame is split in multiple NAL units they must be send in one buffer. Check if h264parse with split-packetized=false and output-format=1 is fitting with OMX H264 requirements. if yes then change h264parse ranking to PRIMARY+1 (=257) to make it autoplug by decodebin or uridecodebin.
- OMX requirements for AAC: the stream type (aac, aac+ or eaac) must be paased to OMX decoder. We need to check if aacparse provide this info.

(2) unify openmax proprietary extension for hardware buffer management
TI make the buffers allocated by the sink and use the physical address to indentify the buffer allocated for the hardware IP.
STE use a buffer identifier (and put it private field of OMXHEADERTYPE) and buffers are allocated by outport.

Work items (11.01):
Create working environment with bellagio based OMX decoders , gstomx and gstreamer packages: DONE
[benjamin-gaignard] Identify Parsers that need to be standardised for 3gp (Mpeg4/H.264/H.263 , AAC/AMR), ASF( WMV,WMA) , SWF/FLV/F4V(H.264/Sorenson spark, ON2/VP6 , MP3/AAC) , AVI(MPEG4/H.264/H.263, MP3/AAC/AMR),.moov(MPEG4/H.284, AAC/MP3),.mp3,.aac files.: DONE
[b34248]Identify data needs from 3gp file format parser for configuring OMX : DONE
Enhance 3gp file format parser to provide expected configuration information from OMX as Src pad caps : POSTPONED

Work items (11.02):
Identify data needs from ASF file format parser for configuring OMX : POSTPONED
Enhance ASF file format parser to provide expected configuration information from OMX as Src pad caps : POSTPONED
[kanhu] Identify data needs from AVI file format parser for configuring OMX: DONE
Enhance AVI file format parser to provide expected configuration information from OMX as Src pad caps: POSTPONED
[kanhu] Identify data needs from .moov file format parser for configuring OMX: DONE
Enhance .moov file format parser to provide expected configuration information from OMX as Src pad caps : POSTPONED
[b34248] Identify data needs from ..mp3/.aac file format parser for configuring OMX: DONE
Enhance ..mp3/.aac file format parser to provide expected configuration information from OMX as Src pad caps: POSTPONED
[benjamin-gaignard] Enhance parsers to be able to operate with h.264 parse element (omx H.264 only expects bytestream format): DONE
Create a work environment for gstomx and gstreamer with hw accelerated omx components from one vendor (wil be STE since STE engineers involved): POSTPONED
Enhance gstomx to configure omx properly for all kinds of codecs: DONE
  * aac decoder properties -- channels, sample rate, stream format are handled properly.
Upstream patches on parsers, gstomx: DONE
  * aac decoder patch is adopted by gstomx upstream

Work items (11.03):
Import zero copy work done from zero copy specs: POSTPONED
Consolidation with zero copy work of upstreamed patches: POSTPONED
stabilizing and testing of zero copy and upstreamed pacthes for parsers and gstomx for one vendor(STE): POSTPONED
Create work environment for gstomx for OMAP4 platform: POSTPONED
Review buffer pool design doc: DONE
Get latest buffer pool dev from GStreamer lead architect: DONE
Add buffer pool management to x[v]imagesink plugin : DONE

Work items (11.04):
consolidate zero copy and gstomx for both TI and STE - to be refined further: POSTPONED

Work items (11.05):
study current gsteramer elements/plugin registration procedure: DONE
propose a design doc to customize element ranking: DONE

Work items (11.06):
add the feature in GStreamer: POSTPONED
create a command line tool: POSTPONED
create a GUI tool: POSTPONED

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.