I wanted to ask you about RTP sessions in Libjitsi. We need to pause
data flow for the time when Android device is being rotated, but
without the need of restarting RTP session and performing ICE
negotiations again. It would be fine if whole codec chain could be
recreated when it happens. This is especially required for hardware
codecs that rely on Surface objects which are invalid after rotate. Is
it possible to do it ? Where should I start looking ?
As far as my understanding goes, (1) there is nothing particular in
FMJ which disallows the changing of the Format parameters midstream
and (2) problems could arise because of CaptureDevice/DataSource,
Codec and Renderer implementation specifics.
I presume that we could easily take care of (2) because I expect that
we/libjitsi implement every node of the flow graph on Android.
With (2) properly handled (if there is anything to be handled in the
current implementations at all), we could implement (1) by making the
CaptureDevice and the Renderer implementations aware of the rotation.
Each of them could destroy their internal state relying on a Surface
expected to be invalidated at the beginning of the rotation and
re-create that internal state at the end of the rotation. During the
rotation, (a) the CaptureDevice implementation will naturally not
provide any data because its internal Surface-related state will be
non-existent and (b) the Renderer implementation will ignore any video
frames submitted for processing.
How does that sound?
Thanks for the answer. Yes, we can (1)make the DataSource and the
Renderer rotation aware. This was the first solution I've been
thinking of, but it will result in even more hacks included to the
What I was asking about is if there is (2)an operation available in
Libjitsi that will destroy whole codec chain(DataSource, Codec,
Packetizer), but will keep the ICE connection alive. Another one that
would recreate it back. If there is no such facility right now then
I'm going to go for the (1). (1) will probably work faster than (2)
and easier for me to implement without making any harm to Libjitsi.
On Thu, Jan 2, 2014 at 5:43 PM, Lyubomir Marinov <email@example.com> wrote:
2014/1/2 Paweł Domas <firstname.lastname@example.org>: