summaryrefslogtreecommitdiff
path: root/lib/avtp_pipeline/platform/Linux/intf_alsa/aaf_listener.ini
blob: c7c799de8f1f8276339ecc67a28fd62dff5ad27f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#####################################################################
# Configuration for ALSA and the uncompressed audio mapping module
#####################################################################

#####################################################################
# General Listener configuration
#####################################################################
# role: Sets the process as a talker or listener. Valid values are
# talker or listener
role = listener

# initial_state: Specify whether the talker or listener should be
# running or stopped on startup.  Valid values are running or stopped.
# If not specified, the default will depend on how the talker or
# listener is launched.
#initial_state = stopped

# stream_addr: Used on the listener and should be set to the 
# mac address of the talker.
stream_addr = 84:7e:40:2b:63:f4

# stream_uid: The unique stream ID. The talker and listener must
# both have this set the same.
stream_uid = 2

# dest_addr: When SRP is being used the destination address only needs to
# be set in the talker.  If SRP is not being used the destination address
# needs to be set in both side the talker and listener.
# The destination is a multicast address, not a real MAC address, so it
# does not match the talker or listener's interface MAC.  There are 
# several pools of those addresses for use by AVTP defined in 1722.
# At this time they need to be locally administered and must be in the range
# of 91:E0:F0:00:FE:00 - 91:E0:F0:00:FE:FF.
# Typically :00 for the first stream, :01 for the second, etc.
#dest_addr = 91:e0:f0:00:fe:00

# max_transit_usec: Allows manually specifying a maximum transit time. 
# On the talker this value is added to the PTP walltime to create the AVTP Timestamp.
# On the listener this value is used to validate an expected valid timestamp range.
# Note: For the listener the map_nv_item_count value must be set large enough to 
# allow buffering at least as many AVTP packets that can be transmitted  during this 
# max transit time.
max_transit_usec = 50000

# max_stale: The number of microseconds beyond the presentation time that media queue items will be purged 
# because they are too old (past the presentation time). This is only used on listener end stations.
# Note: needing to purge old media queue items is often a sign of some other problem. For example: a delay at 
# stream startup before incoming packets are ready to be processed by the media sink. If this deficit 
# in processing or purging the old (stale) packets is not handled, syncing multiple listeners will be problematic.
#max_stale = 1000

# raw_rx_buffers: The number of raw socket receive buffers. Typically 50 - 100 are good values.
# This is only used by the listener. If not set internal defaults are used.
#raw_rx_buffers = 100

# report_seconds: How often to output stats. Defaults to 10 seconds. 0 turns off the stats. 
#report_seconds = 0

# Ethernet Interface Name. Only needed on some platforms when stack is built with no endpoint functionality
# ifname = eth0

current_sampling_rate = 48000

sampling_rates = 44100,48000,96000

#####################################################################
# Mapping module configuration
#####################################################################
# map_lib: The name of the library file (commonly a .so file) that 
#  implements the Initialize function.  Comment out the map_lib name
#  and link in the .c file to the openavb_tl executable to embed the mapper
#  directly into the executable unit. There is no need to change anything
#  else. The Initialize function will still be dynamically linked in.
map_lib = ./libopenavb_map_aaf_audio.so

# map_fn: The name of the initialize function in the mapper.
map_fn = openavbMapAVTPAudioInitialize

# map_nv_item_count: The number of media queue elements to hold.
map_nv_item_count = 32

# map_nv_tx_rate: Transmit rate.
# This must be set for the AAF audio mapping module.
map_nv_tx_rate = 4000

# map_nv_packing_factor: Multiple of how many packets of audio frames to place in a media queue item.
# If sparse timestamping mode is enabled the listener should set here one of the possible
# packing factors values to be sure that proper presentation time is put into media queue item.
# Possible values are: 1, 2, 4, 8, 16, 24, 32, 40, 48, (+ 8)...
map_nv_packing_factor = 32

# map_nv_sparse_mode: if set to 0 presentation time should be
# valid in each packet. Set to 1 to use sparse mode - presentation
# time should be valid in every 8th packet.
map_nv_sparse_mode = 0

#####################################################################
# Interface module configuration
#####################################################################
# intf_lib: The name of the library file (commonly a .so file) that 
#  implements the Initialize function.  Comment out the intf_lib name
#  and link in the .c file to the openavb_tl executable to embed the interface
#  directly into the executable unit. There is no need to change anything
#  else. The Initialize function will still be dynamically linked in.
# intf_fn: The name of the initialize function in the interface.
intf_lib = ./libopenavb_intf_alsa.so

# intf_fn: The name of the initialize function in the interface.
intf_fn = openavbIntfAlsaInitialize

# intf_nv_ignore_timestamp: If set the listener will ignore the timestamp on media queue items.
# intf_nv_ignore_timestamp = 1

# intf_nv_device_name: ALSA device name. Commonly "default" or "plug:dmix"
intf_nv_device_name = default

# intf_nv_audio_rate: Valid values that are supported by AAF are:
#  8000, 16000, 24000, 32000, 44100, 48000, 88200, 96000, 176400 and 192000
intf_nv_audio_rate = 48000

# intf_nv_audio_bit_depth: Valid values that are supported by AAF are:
#  16, 24, 32
intf_nv_audio_bit_depth = 32

# intf_nv_audio_channels
intf_nv_audio_channels = 2

# intf_nv_allow_resampling: 0 = disable software resampling. 1 = allow software resampling. Default is disable.
intf_nv_allow_resampling = 1

# intf_nv_start_threshold_periods: The number of period to wait before starting playback. The larger the value to great
# the latency. The small the number the great chance for a buffer underrun. A good range is 1 - 5.
intf_nv_start_threshold_periods = 3

# intf_nv_period_time: the number of microseconds which should be set to unify latency between different platforms.
# This influence ALSA's period_time and period_size parameters and the result value should be the nearest possible.
# Initial playback latency is equal intf_nv_start_threshold_periods * intf_nv_period_time. If not set internal defaults are used.
# intf_nv_period_time = 31250

# AAF is defined to be big-endian.
intf_nv_audio_endian = big