IEE1394 火线接口驱动 for linux

源代码在线查看: amdtp.h

软件大小: 266 K
上传用户: simoncxl
关键词: linux 1394 IEE for
下载地址: 免注册下载 普通下载 VIP

相关代码

				/* -*- c-basic-offset: 8 -*- */								#ifndef __AMDTP_H				#define __AMDTP_H								#include 				#include "ieee1394-ioctl.h"								/* The userspace interface for the Audio & Music Data Transmission				 * Protocol driver is really simple. First, open /dev/amdtp, use the				 * ioctl to configure format, rate, dimension and either plug or				 * channel, then start writing samples.				 *				 * The formats supported by the driver are listed below.				 * AMDTP_FORMAT_RAW corresponds to the AM824 raw format, which can				 * carry any number of channels, so use this if you're streaming				 * multichannel audio.  The AMDTP_FORMAT_IEC958_PCM corresponds to the				 * AM824 IEC958 encapsulation without the IEC958 data bit set, using				 * AMDTP_FORMAT_IEC958_AC3 will transmit the samples with the data bit				 * set, suitable for transmitting compressed AC-3 audio.				 *				 * The rate field specifies the transmission rate; supported values				 * are 32000, 44100, 48000, 88200, 96000, 176400 and 192000.				 *				 * The dimension field specifies the dimension of the signal, that is,				 * the number of audio channels.  Only AMDTP_FORMAT_RAW supports				 * settings greater than 2.  				 *				 * The mode field specifies which transmission mode to use. The AMDTP				 * specifies two different transmission modes: blocking and				 * non-blocking.  The blocking transmission mode always send a fixed				 * number of samples, typically 8, 16 or 32.  To exactly match the				 * transmission rate, the driver alternates between sending empty and				 * non-empty packets.  In non-blocking mode, the driver transmits as				 * small packets as possible.  For example, for a transmission rate of				 * 44100Hz, the driver should send 5 41/80 samples in every cycle, but				 * this is not possible so instead the driver alternates between				 * sending 5 and 6 samples.				 *				 * The last thing to specify is either the isochronous channel to use				 * or the output plug to connect to.  If you know what channel the				 * destination device will listen on, you can specify the channel				 * directly and use the AMDTP_IOC_CHANNEL ioctl.  However, if the				 * destination device chooses the channel and uses the IEC61883-1 plug				 * mechanism, you can specify an output plug to connect to.  The				 * driver will pick up the channel number from the plug once the				 * destination device locks the output plug control register.  In this				 * case set the plug field and use the AMDTP_IOC_PLUG ioctl.				 *				 * Having configured the interface, the driver now accepts writes of				 * regular 16 bit signed little endian samples, with the channels				 * interleaved.  For example, 4 channels would look like:				 *				 *   | sample 0                                      | sample 1    ...				 *   | ch. 0     | ch. 1     | ch. 2     | ch. 3     | ch. 0     | ...				 *   | lsb | msb | lsb | msb | lsb | msb | lsb | msb | lsb | msb | ...				 *				 */								enum {					AMDTP_FORMAT_RAW,					AMDTP_FORMAT_IEC958_PCM,					AMDTP_FORMAT_IEC958_AC3				};								enum {					AMDTP_MODE_BLOCKING,					AMDTP_MODE_NON_BLOCKING,				};								enum {					AMDTP_INPUT_LE16,					AMDTP_INPUT_BE16,				};								struct amdtp_ioctl {					__u32 format;					__u32 rate;					__u32 dimension;					__u32 mode;					union { __u32 channel; __u32 plug; } u;				};								#endif /* __AMDTP_H */							

相关资源