title: decoding h264 in ios
body: <p>I am a newbie in AVFoundation and decoding process.I need to decode a h264 video file and play it in iphone...can anyone give me guideline to do it.</p>
  
  <p>I dont want to use ffmpeg or any third party library to do that. As far as I know using Avfoundation encoding is possible...here is the code which I thought is used for encoding but not sure at all...</p>
  
  <pre><code>float bitsPerPixel;
  CMVideoDimensions dimensions = CMVideoFormatDescriptionGetDimensions(currentFormatDescription);
  int numPixels = dimensions.width * dimensions.height;
  int bitsPerSecond;
  
  // Assume that lower-than-SD resolutions are intended for streaming, and use a lower bitrate
  if ( numPixels &lt; (640 * 480) )
      bitsPerPixel = 4.05; // This bitrate matches the quality produced by AVCaptureSessionPresetMedium or Low.
  else
      bitsPerPixel = 11.4; // This bitrate matches the quality produced by AVCaptureSessionPresetHigh.
  
  bitsPerSecond = numPixels * bitsPerPixel;
  
  NSDictionary *videoCompressionSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                            AVVideoCodecH264, AVVideoCodecKey,
                                            [NSNumber numberWithInteger:dimensions.width], AVVideoWidthKey,
                                            [NSNumber numberWithInteger:dimensions.height], AVVideoHeightKey,
                                            [NSDictionary dictionaryWithObjectsAndKeys:
                                             [NSNumber numberWithInteger:bitsPerSecond], AVVideoAverageBitRateKey,
                                             [NSNumber numberWithInteger:30], AVVideoMaxKeyFrameIntervalKey,
                                             nil], AVVideoCompressionPropertiesKey,
                                            nil];
  if ([assetWriter canApplyOutputSettings:videoCompressionSettings forMediaType:AVMediaTypeVideo]) {
      assetWriterVideoIn = [[AVAssetWriterInput alloc] initWithMediaType:AVMediaTypeVideo outputSettings:videoCompressionSettings];
      assetWriterVideoIn.expectsMediaDataInRealTime = YES;
      assetWriterVideoIn.transform = [self transformFromCurrentVideoOrientationToOrientation:self.referenceOrientation];
      if ([assetWriter canAddInput:assetWriterVideoIn])
          [assetWriter addInput:assetWriterVideoIn];
      else {
          NSLog(@"Couldn't add asset writer video input.");
          return NO;
      }
  }
  else {
      NSLog(@"Couldn't apply video output settings.");
      return NO;
  }
  
  return YES;
  </code></pre>
  
  <p>I am completely naive about this, please help...from where to start///</p>
  
  <p>thanks</p>