Trac is being migrated to new services! Issues can be found in our new YouTrack instance and WIKI pages can be found on our website.

Changes between Initial Version and Version 1 of vvAPI


Ignore:
Timestamp:
Oct 29, 2008, 6:08:19 AM (15 years ago)
Author:
Maiku
Comment:

Created the page to follow the discussion in devel.

Legend:

Unmodified
Added
Removed
Modified
  • vvAPI

    v1 v1  
     1For functions that could be per conference, session, participant, or stream, they would have a session and a participant parameter. A NULL for either of these would be a wildcard.
     2
     3=== PurpleMediaManager ===
     4
     5==== Functions: ====
     6{{{
     7*_initiate       # Creates a PurpleMedia instance. Probably have a flag
     8                   as to whether it's the initiator or responder
     9}}}
     10
     11==== Signals: ====
     12{{{
     13init-media      # Same as the current signal. Is triggered when *_initiate is called
     14init-video-src  # These are all triggered when the corresponding *_get_* functions are called
     15init-video-sink   The one problem I've thought of with them is that this way it wouldn't
     16init-audio-src    be very easy to have multiple srcs or sinks of the same type.
     17init-audio-sink
     18}}}
     19
     20==== Get: ====
     21{{{
     22*_get           # Returns a global instance of the PurpleMediaManager
     23
     24*_get_pipeline  # Returns a global pipeline to be used for all PurpleMedia instances.
     25
     26*_get_video_src # These all create their respective types if they don't exist.
     27*_get_video_sink  Otherwise they return a src/sink-pad for the existing src/sink.
     28*_get_audio_src
     29*_get_audio_sink
     30
     31# The next three functions will probably have a type parameter (audio or video, src or sink)
     32*_get_plugins   # Return a list of audio/video GStreamer plugins (eg. v4lsrc, alsasrc)
     33*_get_devices   # Return a list of devices for a specific plugin
     34*_get_devices_autodetect # Eventually, return a list of devices detected for all supported plugins
     35}}}
     36
     37=== PurpleMedia ===
     38
     39==== Functions: ====
     40
     41All of these functions will have parameters for session_id and participant_id NULL for either of these would indicate a wildcard and do this operation for all matching streams
     42{{{
     43*_add_stream    # Adds a stream/session/participant to the conference, automatically
     44                  creates participants and FsSessions as necessary
     45*_remove_stream # Removes a stream/session/participant from the conference
     46
     47*_add_candidate  # Adds a single candidate to the stream (May not be necessary. Could alternately add a list)
     48*_set_candidates # Sets a list of candidates for the stream
     49*_set_codecs     # Sets a list of codecs for the stream
     50*_set_direction  # Changes the direction of a stream/session/participant
     51                   (could use *_add_stream to accomplish this)
     52
     53# The following two could probably be merged into one function
     54*_mute  # Mutes an audio stream/session/participant (sending and/or receiving?)
     55*_pause # Pauses a video stream/session/participant (sending and/or receiving?)
     56
     57*_end   # Ends a stream/session/participant
     58}}}
     59
     60==== Signals: ====
     61
     62These signals also apply to the wildcard note above
     63{{{
     64ready   # Waits for both codecs-ready to be TRUE and candidates-prepared to have fired
     65connected # signals when a new stream has connected (src-pad-added) (useful for raw-udp at least)
     66end     # Signals when a stream/session/participant has ended
     67}}}
     68More signals may be necessary for different protocols. Jingle ice-udp may also need a new-candidate and/or new-candidate-pair and a codecs-changed equivalent
     69
     70==== Get: ====
     71
     72I'm not certain all of these will be necessary
     73{{{
     74*_codecs        # gets codecs per sessions
     75*_candidates    # gets candidates per stream
     76*_streams       # gets stream_ids by session or by participant
     77*_sessions      # gets session_ids in the conference
     78*_participants  # gets participant names by conference or by session
     79}}}
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!