| $Id$ |
| |
| = embedded = |
| |
| == index handling == |
| For avidemux I currently have a big patch doing memory optimized index handling. |
| It basically thins out the index to save memory. Right now it only keeps index |
| entries marked with the avi keyframe flag. |
| |
| In gstreamer core we have some indexing objects. They are curently used nowhere. |
| The idea is to use them and to make the index strategy plugable or configurable |
| at run time. |
| |
| The challenge is then to rewrite muxers and demuxers to use them instead of the |
| built in index logic. |
| |
| This way the different requirements of desktop and embedded platforms could be |
| encapsulated in the indexer strategy. |
| |
| == ranking == |
| Autopluggers like playbin and decodebin use the element caps plus static ranks |
| to create piplines. |
| The rank of an elemnt right now refers to the quality/maturity of the element. |
| Elements with higher rank should be functionally more complete. If we have |
| multiple elements that are feature complete there is a draw. |
| |
| There are more decission criteria thinkable: |
| * target processor (CPU,DSP,GPU) |
| * ressource usage (CPU, memory) |
| * license (proprietary, open source) |
| * quality (in terms of the audio/image quality) |
| |
| One problem of taking criteria like quality and performance into account when |
| autoplugging, is that elements might have objects-properties that influence |
| them. |
| |
| Beside adding more ranking criteria, we might consider adding an overridable |
| mechanism for picking elements (basically registry filters that not decide on |
| the base of ranks). Applications might choose the filter mechanism based on the |
| use-case (which gstreamer not know right now). |
| |
| == g_malloc vs. g_try_malloc == |
| g_malloc/g_new should not be used when allocating space of a size that is |
| derived from a value found in the file. Instead one should use g_try_malloc or |
| g_try_new and check the return value. |
| |
| $ find . -name "*.c" -exec grep "g_malloc" {} \; | wc -l |
| 190 |
| $ find . -name "*.c" -exec grep "g_try_malloc" {} \; | wc -l |
| 0 |
| $ find . -name "*.c" -exec grep "g_new" {} \; | wc -l |
| 398 |
| $ find . -name "*.c" -exec grep "g_try_new" {} \; | wc -l |
| 3 |
| |
| This is not strickly related to embedded, but its easier to crash gstreamer on |
| embedded this way. |