View Single Post
  #23   Report Post  
Old September 20th 11, 07:04 AM posted to rec.radio.amateur.antenna
Ben / SM0KBW Ben / SM0KBW is offline
external usenet poster
 
First recorded activity by RadioBanter: Aug 2011
Posts: 11
Default streaming audio ap Internet Shortwave Reciever ProfessionalSoftware Ver. 1.5

Jim Lux skrev 2011-09-19 23:00:

I'm not sure what you mean with data format, but I assume you are
talking about the audio stream. IHU is just a simple interface to
Speex, http://www.speex.org/, and that is a free audio compressing
codec, at least free in the sense of BSD License.



The documentation for Speex is rather comprehensive, and it covers the
RTP format and the API.


Hmm.. Appendix C of the Speex doc does provide a RTP example. However,
IHU doesn't say anywhere that this is what it does (it does say it uses
speex for compression). It's also not clear that IHU is actually using
RTP frames. It seems that IHU has its own homegrown packet format:
(in packet.cpp)

ARCHITECTURE OF THE PACKET
*
* A IHU packet consists of 2 parts:
* 1) Header
* 2) Data
*
* THE HEADER
*
* THe header is made up of 3 parts:
*
* a) SYNC Pattern (3 bytes)
* The pattern consists of the fixed ASCII string: "IHU"
*
* b) Packet SIZE (1 byte): unsigned char that contains
* the size of the packet (min size 5, max size 256)
*
* c) INFO data (1 byte)
* It contains those informations (in order):
* - OBSOLETE: still used for bakward compatibility (versions 0.6.x)
* Speex mode (3 bits). It can be:
* IHU_INFO_MODE_ULTRAWIDE
* IHU_INFO_MODE_WIDE
* IHU_INFO_MODE_NARROW
* - Packet type (5 bits). It can be:
* IHU_INFO_RESET 0x0
* IHU_INFO_INIT 0x1
* IHU_INFO_AUDIO 0x2
* IHU_INFO_CRYPTED_AUDIO 0x3
* IHU_INFO_KEY_REQUEST 0x4
* IHU_INFO_NEW_KEY 0x5
* IHU_INFO_ANSWER 0x6
* IHU_INFO_CLOSE 0x7
* IHU_INFO_REFUSE 0x8
* IHU_INFO_RING 0x3f
* IHU_INFO_RING_REPLY 0x3e
*
* d) Data LENGTH (1 byte): unsigned char that contains
* the size of the following DATA part (min 0, max 250)
*
* THE DATA
*
* This part of the packet is of variable size (min 0, max 250 bytes)
* and it contains the data to be trasmitted.
* It can be absent (if the packet doesn't need to transmit any data)
* or, can be audio data or keys for encpryption.
* The type of data transmitted is specified in the INFO header
*
*/


anyway.. the point is that while IHU probably works just fine, it's like
a lot of other undocumented utilities out the it works for what it's
original author intended, and if you want to use it as a basis for
software that you'd write, it's great.


However, my whole question was really to see if some simple
off-the-shelf multiplatform already existed. (i.e. I'd rather spend my
time doing things OTHER than writing audio transport code)


You are probably right. I've used IHU to see if Speex was good enough to
use as an audiolink. I didn't scrutinize the source code. I am planning
to establish a link between my noisy home (Stockholm) and my
summerhouse. Anyhow that good suitable audiolink software has yet to be
written


73
Bengt / SM0KBW