antidote-for-tox / objctox Goto Github PK
View Code? Open in Web Editor NEWNo longer maintained
License: Mozilla Public License 2.0
No longer maintained
License: Mozilla Public License 2.0
Sometimes they are failing, 1/20 or something like that.
It seems that OCTFriend.lastSeenOnline method always returns nil
If a friend makes a video call but does not send any video data, the OCTVideoView will be a transparent screen. It would be better to have a default black screen.
A demo for OSX is needed. This also provide us a a way to test audio and video later on
Platform dependent should be wrapped to
#if TARGET_OS_IPHONE
// do iOS stuff
#else
// do OS X stuff
#endif
However this should be avoid if possible. For example UIView
can be replaced with OCTView
, which would be typedef'd to UIView
or NSView
somewhere in the code.
Seems to have a long time enabling the video and it locks up causing the OCTAudioEngine to crash as well.
We need to check if there is friend or friend request with given public key
Occasionally an assert fails for the OCTCallTimer for the audio tests. I thought I fixed the issue in this commit ec1fb5b
But turns out that was not the case as it presented it self here again https://travis-ci.org/Antidote-for-Tox/objcTox/builds/69011384
More research is needed as to how this happens
We can store all settings in Realm. No need for OCTSettingsStorageProtocol
Errors are shown when the AVAudioSession is not mocked as shown here https://travis-ci.org/Antidote-for-Tox/objcTox/builds/73986551
2015-08-04 01:06:05.281 xctest[25892:30839] 01:06:05.281 ERROR: 98: Error '!obj' trying to fetch default input device's sample rate
2015-08-04 01:06:05.283 xctest[25892:30839] 01:06:05.283 ERROR: 100: Error getting audio input device sample rate: '!obj'
2015-08-04 01:06:05.288 xctest[25892:30839] 01:06:05.288 WARNING: 230: The input device is 0x0; '(null)'
2015-08-04 01:06:05.288 xctest[25892:30839] 01:06:05.288 WARNING: 234: The output device is 0x0; '(null)'
2015-08-04 01:06:05.289 xctest[25892:30839] 01:06:05.289 ERROR: 400: error '!obj'
2015-08-04 01:06:05.290 xctest[25892:30841] 01:06:05.290 ERROR: 400: error -66680
2015-08-04 01:06:05.290 xctest[25892:30839] 01:06:05.290 ERROR: 400: error -66680
2015-08-04 01:06:05.290 xctest[25892:30841] 01:06:05.290 ERROR: 113: * * * NULL AQIONode object
2015-08-04 01:06:05.295 xctest[25892:30837] 01:06:05.295 ERROR: >aurioc> 806: failed: -10851 (enable 3, outf< 1 ch, 0 Hz, Int16> inf< 1 ch, 0 Hz, Int16>)
2015-08-04 01:06:05.297 xctest[25892:30841] 01:06:05.297 ERROR: 703: Can't make UISound Renderer
2015-08-04 01:06:05.313 xctest[25892:30839] 01:06:05.313 ERROR: 400: error -66680
2015-08-04 01:06:05.314 xctest[25892:30839] 01:06:05.314 ERROR: 400: error -66680
2015-08-04 01:06:05.316 xctest[25892:30837] 01:06:05.316 ERROR: >aurioc> 806: failed: -10851 (enable 3, outf< 1 ch, 0 Hz, Int16> inf< 1 ch, 0 Hz, Int16>)```
Currently when OCTToxAV
starts, we grab the toxav_interation_interval
once and set the timer with that number. This is incorrect, the iteration interval should be updated at every toxav_iterate
or when a at the very least when the call starts/ends, since the iteration interval is changed when going from (call <--> no call)
Currently if we receive an audio packet of 1 channel, our playback stream remains to play it as if it were 2.
The method below needs to be updated to check if the channel is a different format and update appropriately
- (void)provideAudioFrames:(OCTToxAVPCMData *)pcm sampleCount:(OCTToxAVSampleCount)sampleCount channels:(OCTToxAVChannels)channels sampleRate:(OCTToxAVSampleRate)sampleRate
vpx isn't building there
ld: in /Volumes/stal/objcTox/Pods/toxcore/vpx.framework/vpx(vpx_decoder.c.o), building for OSX, but linking in object file built for iOS, for architecture x86_64
Steps to reproduce:
You can also reproduce this when running the mac osx tests while you have sound playing.
This is caused by AUGraphOpen
in the initialization of OCTAudioEngine
. Possible solution is to only open it before making a call? And closing it after a call?
We need this to have an ability to view chat history after "deleting" friend.
In that case friend's nickname should be set back to Tox ID
It would be nice to have them all over library to simplify usage objcTox in Swift
I notice occasionally that when a friend accepts a request, the friend will pick up a nickname of another user on the friends list.
Saw this before in the iOS demo and again in OSX demo
The audio when starting a call is defaulted to the speaker. Sending routeAudioToSpeaker
makes no change.
In OCTSubmanagerFriends
, if a user tries to delete a friend and tox returns "Friend not found", objcTox should remove that friend from realm.
I am not sure how I was able to delete a tox friend without deleting it from realm in the first place. But it's present somehow.
There is a new tag here https://github.com/Antidote-for-Tox/toxcore/tree/0.0.0-63a82-new-av-3
Will need to update objcTox's Podfile to point to the new tag and update anything else that needs to get it to build again. ๐
In (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
of OCTVideoEngine
we are taking in the width and height of the planar data without accounting for the possibility of stride. See CVPixelBufferGetBytesPerRowOfPlane
The video sending looks fine as of right now, however if there is ever stride data, we will not be sending over the correct data.
If user requests a UIView and uses autolayout to stretch the view, the video view should not scale to it. It should rather keep it's proportion and stay in the center.
I have used 0.4.0 on my iPod touch 5th, I saved the .tox file in my Dropbox. When I click on select on the profiles page, it would crash, and crashes every time I open the app.
Probably tox save was outdated, need to investigate.
It seems that OCTTox couldn't create tox
instance, dealloc method was called and app crashed on
void tox_kill(Tox *tox)
{
Messenger *m = tox;
kill_groupchats(m->group_chat_object); <<<<<<<<<<<<<
kill_messenger(m);
logger_kill_global();
}
Sometimes they are deallocated in the wrong order, causing a segfault when setting OCTManager to nil.
Reproduction steps:
Relevant log:
2016-01-01 13:53:17.634 Nao[58565:32508349] <OCTTox: 0x6000000400f0>: stop method called
2016-01-01 13:53:17.635 Nao[58565:32508349] <OCTTox: 0x6000000400f0>: stopped
2016-01-01 13:53:17.635 Nao[58565:32508349] <OCTTox: 0x6000000400f0>: stop method called
2016-01-01 13:53:17.635 Nao[58565:32508349] <OCTTox: 0x6000000400f0>: tox isn't running, nothing to stop
2016-01-01 13:53:17.635 Nao[58565:32508349] <OCTTox: 0x6000000400f0>: dealloc called, tox killed
2016-01-01 13:53:17.635 Nao[58565:32508349] OCTAudioQueue stop
2016-01-01 13:53:17.643 Nao[58565:32508349] Freed buffers
2016-01-01 13:53:17.644 Nao[58565:32508349] OCTAudioQueue stop
2016-01-01 13:53:17.648 Nao[58565:32508349] Freed buffers
2016-01-01 13:53:17.649 Nao[58565:32508349] <OCTToxAV: 0x610000046d20>: stop method called
2016-01-01 13:53:17.649 Nao[58565:32508349] <OCTToxAV: 0x610000046d20>: stopped
Depends on #72
Similar issue to #113 instead with OCTTox.
Currently when OCTTox starts, we grab the tox_iteration_interval once and set the timer with that number. This is incorrect, the iteration interval should be updated at every tox_iterate
Need to investigate this.
Allow user to pick either front or rear camera during video calls. This should be implemented at OCTSubmanagerCalls
and OCTVideoEngine
.
Right now the default is the front facing camera.
Currently in OCTRealmTests
, we are writing to disk to create a realm file for testing. I think it would be better to use an in-memory realm, like so https://realm.io/docs/objc/latest/#testing
Since we are using realm 0.94, we would use +[RLMRealm inMemoryRealmWithIdentifier:]
And show alert with warning when activating UDP
Integration should happen on getting-latest-changes-to-audio branch. I've already merged latest master
there. All errors should be fixed and then getting-latest-changes-to-audio
would be merged to audio
.
List of changes:
toxcore-ios
pod replaced with toxcore
. As audio
branch was using forked version of toxcore-ios
, new fork of toxcore
pointing to mannol's branch should be made.objcToxDemo
target renamed to iOSDemo
. objcToxTests
renamed to iOSDemoTests
. There nothing should be done with that.OSXDemo
target). OSX target should build and tests should work there as well. Making audio/video work there is not part of this issue, see #120It's annoying.
When network quality goes bad, objcTox should be either lower the resolution or ask toxav to lower the video bitrate.
Did
$ xctool -workspace objcTox.xcworkspace -scheme iOSDemo -sdk iphonesimulator CODE_SIGNING_REQUIRED=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES clean test
But got one error:
Unable to read build settings for target 'iOSDemoTests'. It's likely that the scheme references a non-existent target.
xcodebuild: error: The test action requires that the name of a scheme in the project is provided using the "-scheme" option. The "-list" option can be used to find the names of the schemes in the project.
However all tests pass when running them in xcode
It should be the date of the last message sent/received, and if that doesn't exist, the date the chat was created.
To be consistent with other classes it would be nice to
callDuration
to callDurationInterval
- (NSDate *)callDuration;
method.See OCTMessageAbstract as an example.
It is failing with following message
[!] The 'Pods-iOSDemo' target has frameworks with conflicting names: vpx.
Add ability to specify log levels, turn off logs, etc.
See AVCaptureVideoOrientation
this should be available on OCTSubmanagerCalls
Currently we decrease audio bitrate if it is unstable. If network quality increases it would be nice to increase bitrate back.
See OCTSubmanagerCalls
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.