#320: preiodical faad failure when polling aac stream with input.http
----------------------------+-----------------------------------------------
  Reporter:  romeodeepmind  |       Owner:  admin      
      Type:  Bugs           |      Status:  new        
  Priority:  1              |   Milestone:  NEAR FUTURE
 Component:  Liquidsoap     |     Version:  0.9.1+svn  
Resolution:                 |    Keywords:             
       Mac:  1              |       Linux:  1          
    Netbsd:  1              |       Other:  1          
   Freebsd:  1              |  
----------------------------+-----------------------------------------------

Comment(by romeodeepmind):

 i have occasionally discovered that faad decodes aac+ streams and started
 to test it.

 now i'm checking such setup

 this is the main script. it recieves aac+ stream from sam broadcaster and
 steams it to icecast and harbor input of the other script
 {{{
 %include "/home/vko/conf/settings.liq"

 set("server.telnet",true)
 set("server.telnet.port",8091)

 set("harbor.bind_addr","0.0.0.0")
 set("harbor.port",8090)
 set("harbor.password", playlistPasswd)

 system(liveScript)

 ################### [Callbacks] ###################

 def liveStart(headers)
     log("[LIVE-START]: live source goes up! Switching from playlist...")
     system(liveScript ^ " " ^
             quote(headers["ice-name"]) ^ " " ^
             quote(headers["ice-description"]) ^ " " ^
             quote(headers["ice-genre"]) ^ " " ^
             quote(headers["ice-url"]) ^ " " ^
             quote(headers["ice-bitrate"]) ^ " " ^
             quote(headers["ice-audio-info"]) ^ " " ^
             quote(headers["content-type"]) ^ " " ^
             quote(headers["user-agent"]))

     title = headers["ice-name"] ^ " | " ^
             headers["ice-description"] ^ " | " ^
             headers["ice-genre"]

     log("Live-meta: " ^ title)

     ignore(server.execute("liveMeta.insert title=\"#{title}\""))
 end

 def liveEnd()
     log("[LIVE-END]: live source goes down! Switching to playlist...")
     system(liveScript)
 end

 def playlistStart(headers)
     log("[PLAYLIST-START]: playlist source goes up! Switching from
 noise...")
 end

 def playlistEnd()
     log("[PLAYLIST-END]: playlist source goes down! Switching to
 noise...")
 end

 ################### [Live Sources] ###################

 #Live Sources
 liveInput = input.harbor(
                 id="live",
                                 liveMount,
                                 buffer=harborBufferSize,
                                 password=livePasswd,
                                 on_connect=liveStart,
                                 on_disconnect=liveEnd
             )

 #make source active
 output.dummy(mksafe(liveInput))

 liveInput = insert_metadata(id="liveMeta", liveInput)

 ################### [Playlists] ###################

 playlistInput = input.harbor(
                 id="playlist",
                                 playlistMount,
                                 buffer=harborBufferSize,
                                 password=playlistPasswd,
                                 on_connect=playlistStart,
                                 on_disconnect=playlistEnd)

 #make source active
 output.dummy(mksafe(playlistInput))

 ################### [Noise] ###################

 noiseInput = noise(id="noise")
 noiseInput = amplify(id="noiseAmp", 0.05, noiseInput)
 noiseInput = rewrite_metadata([("title","no signal")], noiseInput)

 ################### [Master Input] ###################

 #Master Input
 input=fallback(
                 id="mainFallback",
                                 track_sensitive=false,
                                 [liveInput, playlistInput, noiseInput]
               )

 ################### [Mount Points] ###################

 out_aacplus(
     masterHost,
     masterPort,
     masterMount,
     masterPasswd,
     masterBitrate,
     input
 )

 out_aacplus(
     "localhost",
     8092,
     masterMount,
     masterPasswd,
     masterBitrate,
     input
 )
 }}}

 second script polls icecast stream via input.http (now with disabled
 metadata)

 {{{
 %include "/home/vko/conf/settings.liq"

 ################### [Input] ###################

 input = input.http(
     masterUrl,
     new_track_on_metadata = false
 );

 input = mksafe(input)

 ################### [Output] ###################

 out_aacplus(
     masterHost,
     masterPort,
     "rvk32a",
     masterPasswd,
     32,
     input
 )
 }}}

 third script recives stream from the master script via harbor


 {{{
 %include "/home/vko/conf/settings.liq"

 set("harbor.bind_addr","0.0.0.0")
 set("harbor.port",8092)
 set("harbor.password", masterPasswd)

 ################### [Input] ###################

 input = input.harbor(
                 id="live",
                                 masterMount,
                                 buffer=harborBufferSize,
             )

 #make source active
 input = mksafe(input)
 output.dummy(input)

 ################### [Output] ###################

 out_aacplus(
     masterHost,
     masterPort,
     "rvk64a",
     masterPasswd,
     64,
     input
 )
 }}}

 i hope to find out in what situation faad fails.

 but if you say it supports only aac streams - that could be a reason of
 segfaults

-- 
Ticket URL: <http://savonet.rastageeks.org/ticket/320#comment:16>
Savonet <http://savonet.rastageeks.org/>
Let's program our stream !
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Savonet-trac mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-trac

Reply via email to