mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 19:21:06 +00:00
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:
parent
e99d464ea9
commit
1a140c99a6
5 changed files with 36 additions and 27 deletions
10
ChangeLog
10
ChangeLog
|
@ -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:
|
||||
|
|
|
@ -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 =
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
+ robust
|
||||
+ also available to application
|
||||
- changes in core
|
||||
* writes a gnuplot data file
|
||||
* list of 'streamtime,proportion,<drop>' tuples
|
||||
|
||||
|
||||
= core profiling =
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -121,7 +123,7 @@ CHECKLIST
|
|||
and following practice outlined in
|
||||
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGError.html
|
||||
- this includes:
|
||||
- message strings need to be marked for translation
|
||||
- message strings need to be marked for translation
|
||||
- should be short, well-written, clear
|
||||
- in particular, should *not* contain debug info, strerror, errno, ...
|
||||
No, really ! NO STRERROR, NO ERRNO. If you are too lazy to provide
|
||||
|
|
Loading…
Reference in a new issue