diff options
author | Edgard Lima <edgard.lima@indt.org.br> | 2007-11-12 17:27:03 +0000 |
---|---|---|
committer | Edgard Lima <edgard.lima@indt.org.br> | 2007-11-12 17:27:03 +0000 |
commit | 8b2cf9ce1204bbc0ce9bec8a6478d2f80f213e13 (patch) | |
tree | 1c096e1fa9bced9e5ddab93ad1f6a7c580d61bee | |
parent | 015dc9060f89f77005e66ef880e44204292461f2 (diff) | |
download | gst-plugins-bad-8b2cf9ce1204bbc0ce9bec8a6478d2f80f213e13.tar.gz gst-plugins-bad-8b2cf9ce1204bbc0ce9bec8a6478d2f80f213e13.tar.bz2 gst-plugins-bad-8b2cf9ce1204bbc0ce9bec8a6478d2f80f213e13.zip |
Added a design proposal from metadata parse and mux.
Original commit message from CVS:
Added a design proposal from metadata parse and mux.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ext/metadata/README | 88 |
2 files changed, 93 insertions, 0 deletions
@@ -1,3 +1,8 @@ +2007-11-12 Edgard Lima <edgard.lima@indt.org.br> + + * ext/metadata/README: + Added a design proposal from metadata parse and mux. + 2007-11-11 Sebastian Dröge <slomo@circular-chaos.org> * gst/equalizer/demo.c: (draw_spectrum): diff --git a/ext/metadata/README b/ext/metadata/README new file mode 100644 index 00000000..7d5c0985 --- /dev/null +++ b/ext/metadata/README @@ -0,0 +1,88 @@ +### design proposal for metadata mux and parser ### + +## use cases ## + +1- Create metadata + +[ App send tag events to the pipeline ] + || /\ + || || + || jpegenc send tag messages like (width, height and compression info) + || || + \/ || ++---------+ +---------+ +-------------+ +----------+ +| v4l2src | -> | jpegenc | -> | metadatamux | -> | filesink | ++---------+ +---------+ +-------------+ +----------+ + +* elements like videoscale should also send (width and height tags) +* should metadatamux get info from caps (width and height) and use if not receive a event with such tags? + + +2- View metadata + ++---------+ +---------------+ +---------+ +-------------+ +| filesrc | -> | metadataparse | -> | jpegdec | -> | xvimagesink | ++---------+ +---------------+ +---------+ +-------------+ + +or + + +--> whole chunk send as event to next element + | ++---------+ +---------------+ +----------+ +| filesrc | -> | metadataparse | -> | fakesink | ++---------+ +---------------+ +----------+ + || + \/ + 1- individual tags send as messages (what about not mapped tags??) + 2- whole chunk send as message (probably the application will ignore this) + +* in any case metadataparse strips out metadata chunks (different from current implementation) + +3- Modify (add, change, delete tags) + + + +--> whole chunk send as event to next element -- ... --+ + | | + | V ++---------+ +---------------+ +-------------+ +----------+ +| filesrc | -> | metadataparse | --------------- ... --------------> | metadatamux | -> | filesink | ++---------+ +---------------+ +-------------+ +----------+ + /\ || + || \/ + || 1- individual tags send as messages (what about not mapped tags??) ==============\\ + || 2- whole chunk send as message (probably the application will ignore this) || + || || +[ App send tag events to the pipeline ] <=======================================================// + +* metadataparse strips out metadata chunks (different from current implementation) +* application receives individual tag messages (what about not mapped ones?) + * the application only send events back to the pipeline for the tags the application wants to modify or keep. + The tags not sent will not be included in metadata chunks +* the metadatamux modify the whole chunk event received before to just keep the individual tags sent by application +* the metadatamux could have a property to say if it should remove or keep tags not sent by application. + +Obs: By looking at the proposed design (1- view and 2- modify) seems that the metadataparse and metadatamux should not know about mapped tags. + Only the application map the tags to/from metadata specific format. This is because, if you notice, only tags sent by application will be keep + on new file. + +4- Convert (for example from jpeg to png) + + +--> whole chunk send as event to next element -- ... --+ + | | + | V ++---------+ +---------------+ +-------------+ +----------+ +| filesrc | -> | metadataparse | -> | jpegdec | -> ... -> | pngenc | -> | metadatamux | -> | filesink | ++---------+ +---------------+ +-------------+ +----------+ + /\ || + || \/ + || 1- individual tags send as messages (what about not mapped tags??) ==============\\ + || 2- whole chunk send as message (probably the application will ignore this) || + || || +[ App send tag events to the pipeline ] <=======================================================// + +* in this case the application set the metadatamux property to always keep the tags by default (application don't not need to send tag events) +* metadatamux needs additional smartness to check what tags still does make sense (some from original jpeg may not make sense anymore) +* if the image is resized, the videoscale should send messages to the application with new width (in the same way pngenc should also) and the + application could send width and height tag events to the pipeline +* should metadatamux get info from caps (width and height) and use if not receive a event with such tags? + |