Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Twin Engine Labs (Lynxus) Contributions #48

Open
wants to merge 49 commits into
base: master
Choose a base branch
from

Conversation

nicholas
Copy link

@nicholas nicholas commented Dec 1, 2015

I used this for a client app and made quite a few changes (and more to come) along the way. I've been meaning to circle back around and contribute this back upstream, but kept getting occupied by other tasks, holidays, and a newborn. =P Anyhow, here I am, and now I realize it's enough change to be a daunting task to split apart. So, if you can work with me, I'd prefer to lump it all into one PR and will work with you on making changes to anything you see as problematic. Open to suggestions on alternatives ways to handle this as well.

I will, however, attempt to give an overview of what's changed and what, if any, issues this changeset addresses.

For now, I've made our repo an alternative source (bumped to 1.4) by hijacking the podspec. If we merge this in we'll need to change that back.

Let me know if there's anything I can do to help make this a viable merge.

nicholas and others added 30 commits May 18, 2015 10:07
… This limits HLS manifest syncing to the end of a recording.
…efer the final manifest sync into the segment upload callback.
…Writers manually from an application. This fixes the 'writer error This operation could not be completed' error.
…e live streaming manifest updates and fix the missing ts chunk issue by being 100% sure that the manifest snapshot has content.
…race conditions by allowing late sequences the chance to be added.
…a time. Increase the adaptive bitrate to 80% of the current upload rate.
…ly instead of waiting on each segment to be uploaded.
… recording stop and/or recorder deallocation.
…k to changing bitrate after file is fully uploaded - not 100% confident in its speed calculation.
5 second chunks were indeed unreliable.
Track frames as they come in, and, if there's a back-to-back keyframe, shove the second keyframe in as regular data instead of IDR data. Chrome didn't do well with that second keyframe without pts/dts information.
…gment upload bug - when a segment upload failed, it didn't get requeued and hung.
removes AVCaptureSession's control of AVAudioSession
pourhadi and others added 19 commits November 9, 2015 01:35
adjust to handle 6s sample rate
When you set overrideOutputAudioPort on the shared AVAudioSession to AVAudioSessionPortOverrideNone, the sample rate is set to the expected 44100. Since that's the case, there's no need to tinker with the buffer duration settings.

The camera roll writing has been failing (since iOS 9 I guess) with -11800 and -12902 error. Removing the unnecessary compression settings for its asset writer seems to have fixed that bug.
…into videotoolbox

Conflicts:
	Kickflip/Codecs/Video/H264/AVEncoder.mm
While the project is in between being merged back into the base repo, use 1.4 alongside a custom pod source. eg:

source 'https://github.com/twinenginelabs/kickflip-ios-sdk.git'
pod 'Kickflip', '~> 1.4'
@chrisballinger
Copy link
Member

@nicholas Wow, thank you for the awesome pull request! I am just now going back and putting some more love into the code, and just saw this PR. You definitely put a smile on my face. 😄

@chrisballinger
Copy link
Member

@nicholas Hey I merged your code into the 1.4-beta branch but I seem to be having issues with the video preview while recording. It stays frozen with either a black screen or a single frame until I hit stop, and no frames seem to get recorded.

When I reverted to the master branch everything worked fine, so I'm guessing this is a problem with the VideoToolbox code. I was planning on switching to the VT API so I'd love to get your code working!

@nicholas
Copy link
Author

Alright, good to know. I'll do some testing this week and make sure it works with the Kickflip example project .. our testing was done with a probably-more-custom approach. Will have to investigate and see.

For reference, what device and OS version did you test with?

@trimi
Copy link

trimi commented Dec 31, 2015

Hi @nicholas , did you manage to solve the freezing issue or black screen ? Thanks

@trimi
Copy link

trimi commented Jan 5, 2016

@nicholas I there something I can do, to change the stream orientation while I'm streaming, because with solution it seems that I can only change it before I start the stream, not while I'm streaming ? Or did I do something wrong ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants