SOURCEDG

From ICE Enterprises
Jump to navigation Jump to search

Datagram reader for streaming RTP/RAW/SDP (UDP) into pipes.

<OUT>     - Pipe for raw output
<CONVOUT> - Pipe for linear output

Optional Keyword only parameters:
[HOSTPORT] - "host:port", listen on this stream [DEF="127.0.0.1:18800"]
             if /sap then [DEF="224.2.127.254:9875"]

Datagram reader for streaming RTP/RAW/SDP into NeXtMidas pipes.
NOTE: Requires JDK1.40+

Messages:
  Received:
    CLOSENET - Set state OFF
    EXITNET  - Set state OFF and EXIT (close) primitive
    OPENNET  - Set state OFF, open stream on "host:port" specified in data,
               and set state ON.
  Sent: NONE

Real-Time Controls:
  See the JavaDocs API for various sets and gets for this primitive.

Examples:
  1. Get RTP packets, specify transfer length by result, get raw and linear
     output.
    nM> sourcedg/id=multl/intl=^audiotl_g _mul _mll
    nM> set reg.multl.host "^threads.^{curThread_sa}.multicase" ! set host
    nM> set reg.multl.port "^threads.^{curThread_sa}.mport"     ! set port
    nM> set reg.multl.dgstate "ON"   ! Turn on the flow of packets
    nM> set reg.multl.dgstate "OFF"  ! Turn OFF the flow of packets

  2. Get SAP packets into a raw pipe, with info on each packet received with a
     2000 ms timeout.
    nM> sourcedg/verbose/packets/nortp/sap/timeout=2000/id=sapout _mul

  3. Get raw UDP packets with info on each packet received with a 2000 ms
     timeout.
    nM> sourcedg/verbose/packets/nortp/timeout=2000 _mul _junk "^hostport_g"

  4. Get multicast RTP stream with payload type 0 (PCMU) for u-law encoded audio
     on 224.1.1.1/18800 to NeXtMidas pipes (raw 8-bit u-law and decoded 16-bit
     linear PCM), plot decoded audio pipe as a line plot, and play it on sound
     card using sinkaudio (AUDIO option tree should be in path). This assumes
     that the audio data sample rate (sr) is 8000 Hz (so xdelta is 1/sr).
     ...
     set sr 8000
     set xd 1/sr
     pipe on
       sourcedg/ulaw/on/xdelta=xd _raw _linearpcm{size=1k} "224.1.1.2:18800"
       plot/all  _linearpcm type=line
       sinkaudio _linearpcm
       ...
     pipe off
     ...

  5. Get multicast RTP stream with payload type 10 (L16) for 16-bit signed audio
     sampled at 44100 Hz on 224.1.1.1/18800 to NeXtMidas pipe, plot raw linear
     audio data (_rawout) as a line plot (showing 1K of data at a time), FFT the
     linear audio data, and plot a PSD of the transformed data (_fftaudio).
     ...
     set xd 1/44100
     pipe on
       sourcedg/on/xdelta=xd _rawout{form="SI"} ,, "224.1.1.1:18800"
       plot/id=lineplot _rawout{FrameSize=1k} type=line
       fft/psd/log      _rawout _fftaudio nfft=1k navg=1 over=0
       plot/id=psdplot          _fftaudio
       ...
     pipe off
     ...

Switches:
  /ALLHOSTS     - Turns multicast off and gets data on a port from all hosts,
                  the socketconstructor is "new DatagramSocket(port)"
  /FILL         - Fill in missing packets? [DEF=NO]
  /FRAMESIZE    - Data frame size, /FTYPE=2000 only
  /FTYPE        - Output file type [1000,2000,...] [DEF=1000]
  /ICEHDRINPIPE - Is there an ICE header in the pipe? [DEF=NO]
  /INITIALTIME  - Set output ystart, -1=based on input [DEF=-1]
  /INTL         - Set transfer length for pipes
  /LOG=<file>   - Logs start and stop only to <file>
  /MIDASSI      - Sets the output data type to SI
  /MSGID=       - Registry name of command to handle messages [DEF=null]
                  Requires /MSGONLY.
  /MSGNAME=     - The name for XML message (only with /MSGID switch)
                  [DEF=XMLMSGS]
  /MSGONLY=     - Send messages only, not pipes to value of /MSGID [DEF=null]
  /NORMAL3000   - Scott - TBD
  /NORTP        - No RTP protocol on packets [DEF=RTP]
  /NOXSXD       - Used with /TIMECODE to disable updates to XS and XD. (Since
                  NeXtMidas 2.1.1)
  /OFFSET=      - Data offset for each read [DEF=0]
  /ON           - Turns on listener at startup
  /PACKETS      - Debug - show all packets received if present
  /RTPFILTER=   - Used to get only specific RTP packets in a multiplexed stream
                  [DEF=-1 (disabled)]
  /SAP          - Use SAP protocol to decode packets [DEF=OFF]
  /STRUCT=table - Sets the structure of the type 3000 file
  /TIMEOUT=<ms> - Sets socket timeout value in milliseconds.
                  Wait time to receive packet [DEF=50]
  /TIMECODE     - Indicates that a the output pipe will receive TimeCode data
                  via a call-back from DatagramData. This will set the X units
                  to frequency and Y units to time if /NOXSXD is NOT set.
                  (Since NeXtMidas 1.9.3)
  /ULAW         - Treat the input data as U-Law, FALSE for LINEAR [DEF=FALSE]
                  If TRUE and CONVOUT= pipe is specified, then decode the 8-bit
                  U-law data stream to a PCM 16-bit signed integer (SI format)
                  onto the CONVOUT= pipe.
  /VERBOSE      - Turn on some information output
  /XSTART       - Set xstart on pipe
  /XDELTA       - Set xdelta on pipe
  /XUNITS       - Set xunit on pipe

See Also: sinkdg, nxm.sys.net.DatagramData