Video Export Project
I am working on a project that will process videos taken with the camera or pulled from the Photo Library and export them to MP4 format, reducing the dimensions and bit rate.
As part of this process I am using the code for SDAVAssetExportSession that is a AVAssetExportSession drop-in replacement with customizable audio and video settings.
I make use of an instance of AVAssetReaderVideoCompositionOutput that is added to AVAssetReader in SDAVAssetExportSession.m. I set the videoComposition property of the former instance to a composition that allows me to set the render size and some appropriate transforms for scaling, etc. (CGAffineTransform).
Posted in iOS
Tagged CGAffineTransform, copyNextSampleBuffer, debugging, error, export, mp4, objective c, SDAVAssetExportSession, video, video composition, video settings, videoComposition, Xcode
I ran across a nice intro article to using assertions in iOS Working with Assertions to Debug your Apps. It describes the macros NSAssert, NSAssert1, NSAssert2, etc. and how to use them. One item mentioned in that article is different in XCode now – the macro NS_BLOCK_ASSERTIONS is defined by default for Release builds.
The article started me thinking about how one might report crashes and user-generated assertions in a production app. I came across the article Handling crashes and NSAssert gracefully in a Production App. Not only does it talk about how to continue using assertions in a Release build by subclassing NSAssertionHandler, but it also makes reference to using a service such as Flurry or Google Analytics to log them as well.
Web searches showed that Flurry and Google Analytics are both nice choices for getting app metrics and logging errors/exceptions. I spent some time looking through the Flurry web site and documentation and was impressed with what I saw. I found a nice article that talks about Flurry and includes a video on how to get started with it – Find errors in your iOS app before your users do!