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>
* configure.ac:

View file

@ -4,6 +4,9 @@ $Id$
We have gst-plugins-base/gst-libs/gst/audio with some audio helper and base
classes.
audiofilter: for src_caps=sink_caps
basetransform: *
= 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);
disconnect e1.src, e1.src.peer
disconnect e4.sink, e4.sink.peer
connect e1.src e2.sink
connect e3.src e4.sink
connect e1.src, e2.sink
connect e3.src, e4.sink
== 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_pads_remove_link (e1.src, e3.sink);
disconnect e1.src, e1.src.peer
disconnect e3.sink, e3.sink..peer
connect e1.src e3.sink
disconnect e3.sink, e3.sink.peer
connect e1.src, e3.sink
== swapping out an elelment ==
* we have: e1 ! e2 ! e5
* we want: e1 ! e3 ! e4 ! e5
* we want: e1 ! e3 ! e5
* we have: e1 ! e2 ! e6
* we have: e1 ! e2 ! e3 ! e6
* we want: e1 ! e4 ! e5 ! e6
* we want: e1 ! e3 ! e6
gst_element_swap_linked(e1, e3, e4, e5);
gst_pads_insert_link (e1.src, e3.sink, e4.src, e5.sink);
gst_element_swap_linked(e1, e4, e5, e6);
gst_pads_insert_link (e1.src, e4.sink, e5.src, e6.sink);
disconnect e1.src, e1.src.peer (=e2.sink)
disconnect e5.sink, e5.sink.peer
connect e1.src e3.sink
connect e4.src e5.sink
disconnect e6.sink, e6.sink.peer
connect e1.src, e4.sink
connect e5.src, e6.sink

View file

@ -17,17 +17,12 @@ $Id$
* (streamtime,propotion) pairs from sinks
draw a graph with gnuplot or similar
* number of frames in total
* number of frames dropped from each element that support QOS
elements that don't support QOS wont have this information anyway
* needs to be media type specific:
* video: full frames
* audio: partial buffers can be dropped in the sink, count number of dropped
audio frames
* number of audio/video frames dropped from each element that support QOS
* could be expressed as percent in relation to total-frames
* idea2: query data (e.g. via. gst-launch)
* query data (e.g. via. 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 need to capture QOS-events to record 'streamtime,proportion' pairs
* during playing we capture QOS-events to record 'streamtime,proportion' pairs
gst_pad_add_event_probe(video_sink->sink_pad,handler,data)
* during playback we like to know when an elemnt drops frames
what about elements sending a qos_action message?
@ -37,11 +32,9 @@ $Id$
number of frames dropped
* print a nice table with the results
* 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 =

View file

@ -53,6 +53,8 @@ CHECKLIST
- use correct value, name, nick for enums
- use underscores in macros/function names/structs
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:
- should be correctly integrated with configure.ac