/// <summary>
        /// Gets a default context.
        /// </summary>
        /// <returns></returns>
        public static EncodingContext GetDefaultsContext()
        {
            EncodingContext context = new EncodingContext();

            aften_set_defaults(ref context);

            return(context);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="FrameEncoderInt32"/> class.
 /// </summary>
 /// <param name="context">The context.</param>
 public FrameEncoderInt32(ref EncodingContext context)
     : base(ref context, aften_encode_frame, BitConverter.ToInt32, A52SampleFormat.Int32)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="FrameEncoderInt32"/> class.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="remap">The remapping function.</param>
 public FrameEncoderInt32(ref EncodingContext context, RemappingDelegate remap)
     : base(ref context, remap, aften_encode_frame, BitConverter.ToInt32, A52SampleFormat.Int32)
 {
 }
 private static extern int aften_encode_frame(
     ref EncodingContext context, byte[] frameBuffer, int[] samples, int count);
 /// <summary>
 /// Initializes a new instance of the <see cref="FrameEncoderInt8"/> class.
 /// </summary>
 /// <param name="context">The context.</param>
 public FrameEncoderInt8(ref EncodingContext context)
     : base(ref context, aften_encode_frame, ToInt8, A52SampleFormat.Int8)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="FrameEncoderInt8"/> class.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="remap">The remapping function.</param>
 public FrameEncoderInt8(ref EncodingContext context, RemappingDelegate remap)
     : base(ref context, remap, aften_encode_frame, ToInt8, A52SampleFormat.Int8)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="FrameEncoderFloat"/> class.
 /// </summary>
 /// <param name="context">The context.</param>
 public FrameEncoderFloat(ref EncodingContext context)
     : base(ref context, aften_encode_frame, BitConverter.ToSingle, A52SampleFormat.Float)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="FrameEncoderFloat"/> class.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="remap">The remapping function.</param>
 public FrameEncoderFloat(ref EncodingContext context, RemappingDelegate remap)
     : base(ref context, remap, aften_encode_frame, BitConverter.ToSingle, A52SampleFormat.Float)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="FrameEncoderDouble"/> class.
 /// </summary>
 /// <param name="context">The context.</param>
 public FrameEncoderDouble(ref EncodingContext context)
     : base(ref context, aften_encode_frame, BitConverter.ToDouble, A52SampleFormat.Double)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="FrameEncoderDouble"/> class.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="remap">The remapping function.</param>
 public FrameEncoderDouble(ref EncodingContext context, RemappingDelegate remap)
     : base(ref context, remap, aften_encode_frame, BitConverter.ToDouble, A52SampleFormat.Double)
 {
 }
 protected static extern void aften_encode_close(ref EncodingContext context);
 protected static extern int aften_encode_init(ref EncodingContext context);
 private static extern void aften_set_defaults(ref EncodingContext context);