// --------------------------------------------------------------------------------------------------------------------
//
// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
//
//
// Defines the hb_audio_s type.
//
// Disable Stylecop Warnings for this file
// --------------------------------------------------------------------------------------------------------------------
namespace HandBrake.Interop.HbLib
{
using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct hb_audio_s
{
/// int
public int id;
/// hb_audio_config_t->hb_audio_config_s
public hb_audio_config_s config;
// Padding for the part of the struct we don't care about marshaling.
[MarshalAs(UnmanagedType.ByValArray, SizeConst = MarshalingConstants.AudioPaddingBytes, ArraySubType = UnmanagedType.U1)]
public byte[] padding;
/// Anonymous_e6c7b779_b5a3_4e80_9fa8_13619d14f545
//public Anonymous_e6c7b779_b5a3_4e80_9fa8_13619d14f545 priv;
}
[StructLayout(LayoutKind.Sequential)]
public struct hb_audio_config_s
{
public hb_audio_config_output_s output;
public hb_audio_config_input_s input;
public hb_audio_config_lang_s lang;
}
[StructLayout(LayoutKind.Sequential)]
public struct hb_audio_config_output_s
{
public int mixdown;
/// int
public int track;
/// uint32_t->unsigned int
public uint codec;
/// int
public int samplerate;
public int samples_per_frame;
/// int
public int bitrate;
public float quality;
public float compression_level;
/// double
public double dynamic_range_compression;
public double gain;
public int normalize_mix_level;
public int dither_method;
public IntPtr name;
public int delay;
}
[StructLayout(LayoutKind.Sequential)]
public struct hb_audio_config_input_s
{
/// int
public int track;
/* Input audio codec */
public uint codec;
/* Per-codec config info */
public uint codec_param;
/* Registration descriptor of source */
public uint reg_desc;
/* Stream type from source stream */
public uint stream_type;
/* Substream type for multiplexed streams */
public uint substream_type;
/* Bitsream version */
public uint version;
/* Bitstream flags, codec-specific */
public uint flags;
/* Bitstream mode, codec-specific */
public uint mode;
/* Input sample rate (Hz) */
public int samplerate;
/* Number of samples per frame */
public int samples_per_frame;
/* Input bitrate (bps) */
public int bitrate;
/* Source channel layout, set by the audio decoder */
public ulong channel_layout;
/* Source channel map, set by the audio decoder */
// hb_chan_map_t
public IntPtr channel_map;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct hb_audio_config_lang_s
{
/// char[1024]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
public string description;
/// char[1024]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
public string simple;
/// char[4]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 4)]
public string iso639_2;
/// uint8_t->unsigned char
public byte type;
}
}