docs/random/ensonic/: Save my thoughts.

Original commit message from CVS:
* docs/random/ensonic/audiobaseclasses.txt:
* docs/random/ensonic/dynlink.txt:
* docs/random/ensonic/profiling.txt:
Save my thoughts.
* docs/random/moving-plugins:
Add note to use g_assert type macros.
This commit is contained in:
Stefan Kost 2007-07-20 07:26:39 +00:00
parent e99d464ea9
commit 1a140c99a6
5 changed files with 36 additions and 27 deletions

View file

@ -1,3 +1,13 @@
2007-07-20 Stefan Kost <ensonic@users.sf.net>
* docs/random/ensonic/audiobaseclasses.txt:
* docs/random/ensonic/dynlink.txt:
* docs/random/ensonic/profiling.txt:
Save my thoughts.
* docs/random/moving-plugins:
Add note to use g_assert type macros.
2007-07-20 Stefan Kost <ensonic@users.sf.net> 2007-07-20 Stefan Kost <ensonic@users.sf.net>
* configure.ac: * configure.ac:

View file

@ -4,6 +4,9 @@ $Id$
We have gst-plugins-base/gst-libs/gst/audio with some audio helper and base We have gst-plugins-base/gst-libs/gst/audio with some audio helper and base
classes. classes.
audiofilter: for src_caps=sink_caps
basetransform: *
= new stuff = = new stuff =

View file

@ -25,8 +25,8 @@ gst_element_insert_linked(e1, e2, e3, e4); // e2 == e3 allowed
gst_pads_insert_link (e1.src, e2.sink, e3.src, e4.sink); gst_pads_insert_link (e1.src, e2.sink, e3.src, e4.sink);
disconnect e1.src, e1.src.peer disconnect e1.src, e1.src.peer
disconnect e4.sink, e4.sink.peer disconnect e4.sink, e4.sink.peer
connect e1.src e2.sink connect e1.src, e2.sink
connect e3.src e4.sink connect e3.src, e4.sink
== removing an element == == removing an element ==
@ -36,21 +36,22 @@ gst_pads_insert_link (e1.src, e2.sink, e3.src, e4.sink);
gst_element_remove_linked(e2); gst_element_remove_linked(e2);
gst_pads_remove_link (e1.src, e3.sink); gst_pads_remove_link (e1.src, e3.sink);
disconnect e1.src, e1.src.peer disconnect e1.src, e1.src.peer
disconnect e3.sink, e3.sink..peer disconnect e3.sink, e3.sink.peer
connect e1.src e3.sink connect e1.src, e3.sink
== swapping out an elelment == == swapping out an elelment ==
* we have: e1 ! e2 ! e5 * we have: e1 ! e2 ! e6
* we want: e1 ! e3 ! e4 ! e5 * we have: e1 ! e2 ! e3 ! e6
* we want: e1 ! e3 ! e5 * we want: e1 ! e4 ! e5 ! e6
* we want: e1 ! e3 ! e6
gst_element_swap_linked(e1, e3, e4, e5); gst_element_swap_linked(e1, e4, e5, e6);
gst_pads_insert_link (e1.src, e3.sink, e4.src, e5.sink); gst_pads_insert_link (e1.src, e4.sink, e5.src, e6.sink);
disconnect e1.src, e1.src.peer (=e2.sink) disconnect e1.src, e1.src.peer (=e2.sink)
disconnect e5.sink, e5.sink.peer disconnect e6.sink, e6.sink.peer
connect e1.src e3.sink connect e1.src, e4.sink
connect e4.src e5.sink connect e5.src, e6.sink

View file

@ -17,17 +17,12 @@ $Id$
* (streamtime,propotion) pairs from sinks * (streamtime,propotion) pairs from sinks
draw a graph with gnuplot or similar draw a graph with gnuplot or similar
* number of frames in total * number of frames in total
* number of frames dropped from each element that support QOS * number of audio/video frames dropped from each element that support QOS
elements that don't support QOS wont have this information anyway * could be expressed as percent in relation to total-frames
* needs to be media type specific:
* video: full frames
* audio: partial buffers can be dropped in the sink, count number of dropped
audio frames
* idea2: query data (e.g. via. gst-launch) * query data (e.g. via. gst-launch)
* add -r, --report option to gst-launch * add -r, --report option to gst-launch
* send duration to get total number of frames (GST_FORMAT_DEFAULT for video is frames) * during playing we capture QOS-events to record 'streamtime,proportion' pairs
* during playing we need to capture QOS-events to record 'streamtime,proportion' pairs
gst_pad_add_event_probe(video_sink->sink_pad,handler,data) gst_pad_add_event_probe(video_sink->sink_pad,handler,data)
* during playback we like to know when an elemnt drops frames * during playback we like to know when an elemnt drops frames
what about elements sending a qos_action message? what about elements sending a qos_action message?
@ -37,11 +32,9 @@ $Id$
number of frames dropped number of frames dropped
* print a nice table with the results * print a nice table with the results
* QOS stats first * QOS stats first
* list of 'streamtime,proportion' pairs * writes a gnuplot data file
* list of 'streamtime,proportion,<drop>' tuples
+ robust
+ also available to application
- changes in core
= core profiling = = core profiling =

View file

@ -53,6 +53,8 @@ CHECKLIST
- use correct value, name, nick for enums - use correct value, name, nick for enums
- use underscores in macros/function names/structs - use underscores in macros/function names/structs
e.g.: GST_BASE_SINK, GstBaseSink, gst_base_sink_ e.g.: GST_BASE_SINK, GstBaseSink, gst_base_sink_
- use g_assert(), g_return_if_fail(), g_return_val_if_fail() for pre/post
condition checks
- The plug-in's build: - The plug-in's build:
- should be correctly integrated with configure.ac - should be correctly integrated with configure.ac
@ -121,7 +123,7 @@ CHECKLIST
and following practice outlined in and following practice outlined in
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGError.html http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGError.html
- this includes: - this includes:
- message strings need to be marked for translation - message strings need to be marked for translation
- should be short, well-written, clear - should be short, well-written, clear
- in particular, should *not* contain debug info, strerror, errno, ... - in particular, should *not* contain debug info, strerror, errno, ...
No, really ! NO STRERROR, NO ERRNO. If you are too lazy to provide No, really ! NO STRERROR, NO ERRNO. If you are too lazy to provide