Version 0.0.26
rawconference: Correctly check if thread is internal
rawstream: Don't start sending before having codecs
rawsession: Only manipulate the valve from the session itlsef
rawsession: Simplify transform bins creation
rawsession: Remove g_debug
rawsession: Unref the right object
rawsession: Only remove sink if it has been added
rtpconference: Correctly check if a thread is internal
rtpstream: Fix reference leak in fs_rtp_stream_set_negotiated_codecs_unlock()
Keep a ref to the fakesink
fsrawconference: Make the construction more consistent
In the construction of a raw session we add a bunch of elements. For all
elements unref them in _constructed if adding them to the bin fails, for
all other failures, leave it to the _dispose function to remove and
unref the elements
Use full prefix, even for private functions
Add a transformation bin the source pipeline
As upstream negotiation in Gstreamer still doesn't actually work, we'll
need to change transform elements around every time the caps are changed
as that will cause a re-negotiation and things will keep working..
Unfortunately managing dynamic pipelines has its own challenges, so add
a tee ! fakesink which will eat all the errors for us...
fsrawconference: Make fsrawstream explicitely ask the session to set the direction
fsrawconference: Cope with fs_raw_session_new returning NULL
Version 0.0.25
nicestreamtrans: Fix off-by-one bug
https://bugs.freedesktop.org/show_bug.cgi?id=34291
Version 0.0.24.1
Version 0.0.24
tests: Rtcp test doesn't make sense in raw
rtp: add default prefs to EXTRA_DIST
tests: Fix another race in tests
nicestream: Skip Nice errors if the component has never been ready
nicestream: Fix small leak
nicestream: Sort ipv4 addresses first
utils: Fix doc string
utils: the keyfile stuff already checks the user dirs
utils: Pass the element directly instead of its factory name
utils: Check default properties/codecs in user data dir too
rtp: Add default-element-properties
utils: Add function to get default element properties
rtp: Add default codec preferences
utils: Add function to get default codec preferences
raw: Don't delete non-generated files
Remove the temporary socket directory after usage
nicetransmitter: Place the local socket in the tmp dir
Don't hardcode /tmp, instead use g_get_tmp_dir to potentialy get it from
the environment, but falling back to /tmp
nicetransmitter: Add documentation for create-local-candidates
nicetransmitter: Add an option for the transmitter to pick the local side
rawconference: This is really meant to be called on the stream.
nicetrans: Only emit local-candidate after gathering
Unfortunately libnice doesn't currently support doing connectivity
checks untill it has finished gathering. If we send a remote peer our
candidates before finishing gathering they can start sending us
connectivity checks before we're ready for them...
So instead sends the local candidates in one batch when gathering is
finished, so we'll be ready for the connectivity checks.
rawconf: Put the whole caps into the encoding_name in codecs
rawconference: Make FsRawStream codec doc visible.
docs: Improve the title
docs: Add docs for the raw plugin
raw: Remove trailing whitespace
raw: Simplify session notification of new stream codecs
rawstream: Simplify set_remote_codecs
cuseless
rawsession: Codec has already been validated
raw: Don't check for stuff in the codecs that is meaningless for raw
rawconference: Add a test with the shm transmitter.
rawconference: Remove stream from session in stream's dispose.
There's a chance that removing the stream when the session has it
weak-reffed can be called from a streaming thread. This can cause
it to crash and/or deadlock. This patch changes the stream to
call the remove_stream function in the session in its dispose
function. The stream already protects itself from being disposed
in a streaming thread and therefore prevents the crash/deadlock.
rawconference: Use local conference variable.
tests: Split the rtpconf extra init into separate callbacks for stream and conf
tests: Split the rawconf extra init into separate callbacks for stream and conf
rawconference: Remove weak_ref when done.
rawconference: Dispose FsRawStream in a separate thread if needed.
rawconference: Add fs_raw_conference_is_internal_thread.
rawconference: Fix trailing whitespace.
rawconference: Correct an error message.
rawconference: Wait to add the transmitter's gst-sink until sending.
rawconference: Dispose of objects in a single place in new_stream.
rawconference: blocking_id will always be 0 here.
rawconference: Remove transmitter-pad from the public API.
rawconference: Correctly use g_value_set_boxed instead of _take_boxed.
rawconference: Use macro instead of g_mutex_lock directly.
This patch creates and uses FS_RAW_SESSION_LOCK and _UNLOCK and
FS_RAW_STREAM_LOCK and _UNLOCK to improve the ability to debug
mutexes.
rawconference: Add @author to the files I made.
rawconference: Misc style and error checking fixes to Sjoerd's commits.
When adding streams, sync the element states with the parent element
When removing a stream, make the valve drop packets again
rawconference: Change signature of function to avoid collision.
This patch changes the signature of fs_codec_to_gst_caps to
fs_raw_codec_to_gst_caps to avoid colliding with a function of
the same name in the FsRtpConference plugin.
rawconference: Keep reference to GstObjects in FsRawStream.
rawconference: Actually store the src_pad in FsRawStream.
rawconference: Remove unused member from FsRawStream private struct.
rawconference: Improve locking in FsRawStream.
rawconference: Simplify FsRawSession dispose a little.
rawconference: Hold references to GstObjects in FsRawSession.
rawconference: Improve FsRawSession's locking.
rawconference: Remove elements from bin if sync_state_with_parent fails.
rawconference: Simplify a little of removing streams.
rawconference: Simplify FsRawSession's dispose function.
rawconference: Remove redundant gst_element_sync_with_parent call.
rawconference: Fix implemention of FsRawSession's current-send-codec.
rawconference: Store FsRawSession codecs and notify on change.
rawconference: Fix potential double-free.
rawconference: Deactivate pad after removing from bin.
rawconference: Remove unneeded variable and just return value.
rawconference: Fix copy/paste errors.
rawconference: Use correct pad template.
rawconference: Fix disposed testcase.
rawconference: Free transmitter src and sink when removing streams.
rawconference: Set the correct error in fs_raw_session_new_stream.
rawconference: Fix base test. FsRawConference doesn't generate codecs.
rawconference: Use optional_parameters for codec properties.
rawconference: Abstract converting FsCodec to GstCaps.
rawconference: Add tests for FsRawConference plugin.
This patch adds tests for the FsRawConference plugin. Virtually
all of the code is from the FsRtpConference plugin testsuite.
rawconference: Add data probe and src_pad_added emission.
rawconference: Set capsfilter caps when set_remote_codecs is called.
rawconference: Plug memory leak.
rawconference: Set initial valve drop settings after creation.
rawconference: Set ST's "sending" property when setting "direction".
rawconference: Set booleans instead of bitmasked integers.
rawconference: Fix some GstElement refcount issues.
rawconference: Implement FsRawSession's remote codec handler.
rawconference: Implement FsRawSession's codecs properties.
Implement the FsRawSession's "codecs" and "codecs-without-config"
properties.
rawconference: Link the FsRawSession's capsfilter and transmitter_sink.
rawconference: Free the FsRawSession's FsTransmitter.
rawconference: Add to FsConference and partially link transmitter.
rawconference: Fix getting an out of range warning on a gboolean value.
rawconference: Fix some type issues in fs_raw_session_new_stream.
rawconference: Improve setting the direction.
rawconference: Implement the remote-codecs FsRawStream property.
rawconference: Implement fs_raw_stream_set_remote_codecs.
rawconference: Create and connect FsStreamTransmitter signal handlers.
rawconference: Implement fs_raw_stream_set_remote_candidates.
rawconference: Remove fs_raw_stream_set_tos_locked.
rawconference: Add FsStreamTransmitter.
rawconference: Implement fs_raw_session_get_stream_transmitter_type.
rawconference: Add FsTransmitter member.
rawconference: Add FsRawStream class files.
rawconference: Add capsfilter to the session pipeline.
rawconference: Add an id to FsRawSessions and support creating them.
rawconference: Implement fs_raw_conference_list_transmitters.
rawconference: Add the FsRawSession class.
These files have been copied directly from the FsMsnSession class
and have simply been renamed. More modifications will be needed.
P.S. The section documentation has also been altered to better
suit the FsRawSession class.
rawconference: Remove cname from FsRawParticipant.
rawconference: Add FsRawParticipant.
rawconference: Add base FsRawConference class and plugin structure.
Version 0.0.23.1
Version 0.0.23
common-modified: Dist another stamp file
nice: Update to use the nice 0.1.0 API
nice: Add compatibility for MS Office Communicator 2007 R2
example gui: Keep a ref to the FsElementAddedNotifier to keep it alive
example gui: Set the necessary properties for x264enc
rtpsession: Really fix dispose checking
rtpsession: Only set disposed to TRUE when actually disposing
tests: Add a test of codecs-ready before calling any method
Make sure the codecs-ready is not TRUE if no methods have been called yet
and some codecs that require discovered parameters are missing.
rtpsession: Make sure the original codecs are propertly setup
Do the update codecs when creating a FsSession so that original codecs have
the required bits for the parameter gathering.
tests: Add test for pad alloc in fsfunnel
Patch by Yongnian Le <yongnian.le@intel.com>
funnel: Implement pad allocation
Patch by Yongnian Le <yongnian.le@intel.com>
https://bugs.freedesktop.org/show_bug.cgi?id=32208
Use portable 'g_snprintf' instead of 'snprintf'
https://bugs.freedesktop.org/show_bug.cgi?id=32276
Replace legacy index() with strchr() and avoid calculating the index twice
https://bugs.freedesktop.org/show_bug.cgi?id=32276
mcaststreamtransmitter: Fix error message
shmtransmitter: Remove unused header includes
Update gtk-doc-plugins.mak from common/
Verify the sanity of arguments passed to user-facing functions
rtpsession: Unblock pad if the discovery callback is called while disposing of a session
docs: Add docs for the shm transmitter
docs: Update custom doc building rules to match newer gst tools
nice: Use the right enum type for pad link return
Version 0.0.22.1
Version 0.0.22
Disable the test for changing the DTMF PT for now
python: Require pygobject 2.16 to build
rtpconference: The ptime/maxptime in caps are actually uints, not strings
Update common and tabify Makefiles
gitignore: Hide shm test
readme: bump -bad requirement for shm plugin
tests: Whitelist shm plugin
tests: Clear GError* between tests
shmtrans: Don't try to unref NULL pointer on error
configure: Require GLib 2.16 for GIO
GIO is required by the shm example, require it.
tests shm: check that prepared is called
shmtrans: Sync downstream element states before linking them
shmtrans: Add debug
shmtrans: Release teepad before stopping downstream elements
shmtrans: Emit local candidate with new path
shmstreamtrans: Set the sending in set property (not get)
shmtrans: Set do-timestamp and is-live to true on shmsrc
shmstreamtransmitter: Emit local-candidates-prepared
shm: Document shm stream transmitter
shmstream: Also ignore usernames that are empty
shm: Replace base_ip with username
simplecall: Add shm version of simple-call
shm: Verify the success of state changes
tests: Add tests for the shm transmitter
shm: Implement shm transmitter
shm: Add empty transmitter
tests: Unlock lock in all cases
fsplugin: Release lock on errors
elementaddednotifier: Don't abort on elements that have no factory
rtpsession: Use copy of codec because mutex has been unlocked
Can't use the ca pointer because it is part of a list that
has been unlocked.
tests: Skip theora reception test if theora is not detected
Version 0.0.17
tests: Add test for telephone-event events parameter nego
rtpspecificnego: Add handling of telephone-event event ranges
tests: Skip tests if no local candidates are produced
rtcpfilter: Reduce the packet size when reducing the packet
tests: Skip libnice tests if it finds no local candidates
rtpdtmfsoundsource: Respect the ptime/maxptime too
tests: Add test ptime/maxptime passing
rtpsession: Set the ptime/maxptime on the send codec bin caps
rtpcodecnego: Negotiate the ptime/maxptime
rtpconference: Add function to make gst caps while keeping the ptime
rtpcodecnego: Add function to copy the list of codecs with the send-side ptime
tests; Add test for fscodec ptime/maxptime handling
codec: Add ptime
codec: Add maxptime
tests: Take rtpsession lock during message emissions
This ensures that it is not held across message emissions.
tests: Add debug-blocks
rtpsubstream: Keep ref on substream while callbacks are invoked
rtpsubstream: Put codec/codecbin inside loop
rtpsubstream: Use rw-lock to make sure the substream really stops
rtp: Move locking into callback
rtpsubstream: Don't hold session lock too much while setting new codecbin
rtpsubstream: Move modification locking to blocked function
Also allow only one thread to be in substream blocked function at once.
rtp: Move substream blocking logic into substream
rtp: Don't include marshaller headers in headers
rtp: Depend on the correct var for marshaller list generation
rtcpfilter: Add gst-p-base paths to Makefile.am
Patch contributed by Armijn Hemel <armijn@loohuis-consulting.nl>
rawudp: Remove upnp-request-timeout, it was a terrible idea
Substitute deprecated Glib symbol: g_mapped_file_free
Use g_mapped_file_unref if Glib >= 2.22 is available
http://bugs.freedesktop.org/show_bug.cgi?id=21422
rtpsession: Only add stream to list if its creation worked
README: Require gst-p-bad 0.10.17 for dtmfsrc
dtmfsrc can do do more than 8000 Hz, that has only been fixed in
gst-plugins-bad 0.10.17
rtpdtmfsound: Try hardwired PCMx only if the clock-rate is 8000
rtp: Lookup codec with config is always for sending, so make it explicit
Also, the dtmf sound will always get a valid codec now.
rtpconference: Make message about gst_bin_add failure more accurate
rtpdtmfsoundsource: Ignore codecs that don't have a blueprint
tests: Test dtmf as sound
tests: Make recv-pipeline per test
rtpdtmfsoundsource: Use main codec if PCMA/U are not available
rtpspecialsource: Make local class_get_codec function static
rtp: Regroup CodecBlueprint related functions in one place
rtpspecialsource: Rename negotiated_codecs to negotiated_codec_associations
This way, the list contents can be guessed
rtpsession: Don't need to set queue-delay anymore
rtpsession: Split codecbin generation from factory from profile
tests: Make it build against GUPnP 0.13
msnsession: Check if dispose has already been called
fstransmitter: uint can't be < 0
rawudp: Bring upnp discovery timeout down to 2 seconds
tests: Verify that it is not possible to disable all codecs
Add a reserve-pt to guarantee that it is not possible to disable all codecs
rtpcodecnego: Verify if there are any valid local codecs left after applying preferences
rtpsession: Make error message less cryptic
Version 0.0.16.1
Version 0.0.16
rtpspecialsource: Remove want_source() method
get_codec() function does the same thing
rtpdtmfsoundsource: Implement get_codec method
rtpdtmfeventsource: Implement get_codec method
rtpspecialsource: Add new get_codec method
rtp: Check if the codec changed when removing special sources
rtp: Allow checking if a codec is valid for sending even if it has no way to build a codecbin
rtpcodecnego: Fix doc string
rtpspecialsource: Move static function closer to its use place
rtpspecialsource: Fix over-80 line
rtpsession: Check/update secondary sources even if the primary one doesn't change
tests: Tests changing the dtmf PT mid-call
tests: Make sure dtmf events are really received
test: Test changing the dtmf_id
tests: dtmf method is not always auto
rtpsession: Only emit send-codec-changed message after the special codecs have been changed
rtpsession: Don't leak iterator on linking failure
rtpsession: Cleanup send codecbin on failure
rtpsession: Print error on session dispose problems
rtpdtmfsoundsource: Correctly check the presence of elements
rawudp: Use %d for ints, not %s
configure: quiet automake portability bs
msnstream: Make send sink async=false for now
msnstream: Don't keep lock into set_remote_candidates
tests: Test invalid property name in fs_element_added_notifier_from_keyfile
element-added-notifier: Don't crash on invalid property
rtpconference: Don't assert on non-existing sdes parts
rtpspecialsource: Dispose is not always called twice, cleanup in finalize
rtpsession: Remove useless ref
Version 0.0.15.1
Version 0.0.15
Require gst-p-bad 0.10.14 for mimic
tests: Unlock src before setting it to playing
tests: Refrain from using the thread unsafe version of failure in the nice test
rtpsession: Keep ref on stream while associating substreams to it
rtpsubstream: Remove another double-unlock in error case
rtpsession: Don't double-unlock
rtpsession: Fix leaking caps on signals after dispose
rtpsession: Fix potential leak if already disposed
rtpsubstrea: Remove unused variable
elementaddednotifier: Use g_connect_signal_object
Otherwise each element had a ref on the notifier and relied on the not thread
safe weak references.
rawudp: Emit local candidates if there are no local interfaces suitable for UPnP
rawudp: Add some UPnP debug messages
glib-gen: Use single = instead of == for portability
msnconnection: Check return values from recv()
msnsession: Conference must always set before get_property
msnsession: Only try to lock conference if it has been set
rtpsession: Initialise variable to NULL
Makes coverity happy
msnconnection: Remove unused variables
rtpstream: Correct documentation
rtpsession: Unref transmitter src/sink in dispose
Unref element from g_object_get(), fixes leak
elementaddednotifier: Unref element in iterator loop
Fixes leak
elementadded: Use gst_value_deserialize to read properties
Use the existing function instead of having our own less-capable re-implementation
Version 0.0.14.1
The Farsight project is an effort to create a framework to deal
with all known audio/video conferencing protocols. On one side it
offers a generic API that makes it possible to write plugins for
different streaming protocols, on the other side it offers an API
for clients to use those plugins.
The main target clients for Farsight are Instant Messaging
applications. These applications should be able to use Farsight
for all their Audio/Video conferencing needs without having to
worry about any of the lower level streaming and NAT traversal
issues.
Farsight forms an integral part of the Telepathy framework. It is
used by Empathy through the Telepathy-Farsight library. It can also
be easily used on embedded platforms by using Stream-Engine. The
Telepathy-Farsight library binds it to the Connection Managers via
D-Bus and the Telepathy Media Stream Spec and is used for all their
streaming requirements.