ADTS AACPlus V2 streaming problem with VLC 0.9.6

For questions and discussion that is NOT (I repeat NOT) specific to a certain Operating System.
olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 19 Nov 2008 16:49

Hi,

At my company http://www.streamtheworld.com, we have ADTS AAC Plus V2 streams and for some strange reasons, VLC is not able to playback the streams.

Here is an URL of such stream:

http://208.80.52.90/CITFFMAACCMP3

I say strange because if I dump the stream into a .aac file with wget, vlc will play fine the file. If this can help, the mime type returned by our servers is audio/aacp

and winamp is able to play our ADTS AAC streams.

The problem has been observed with 0.9.6 and 0.8.6

Greetings,

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37519
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby Jean-Baptiste Kempf » 19 Nov 2008 17:36

Please
To help you, we need messages, to completely understand what your problems is.
To fix this, please be sure before you start the playback to:
  1. Open: Tools -> Messages.
  2. Set Verbosity to 2
  3. Start playback to reproduce your issue
  4. Save text in a file or copy into clipboard
  5. Then paste the full resulting log here between [​code]and[​/code] (or use Pastebin.com if it's too long)
Also don't forget to name your Operating System and provide the VLC media player version.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 19 Nov 2008 17:56

Ok,

I think that the message in my previous post was clear but I'll try one more time...

I think that the operating system is irrelevant but if you insist to know I am using Windows XP. I said that the mime-type returned by the server was "audio/aacp" but to make the message clearer to you, here is the full server reply:

HTTP/1.0 200 OK
Expires: Thu, 01 Dec 2003 16:00:00 GMT
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
Content-Type: audio/aacp
icy-url: http://www.rockdetente.com/principal.asp?station=citf
Server: MediaGateway 1.88.9-r2

I think this is an important detail because if I connect to another ADTS stream served by a Shoutcast server replying this (http://steady.somafm.com:9002):

ICY 200 OK
icy-notice1:<BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
icy-notice2:SHOUTcast Distributed Network Audio Server/Linux v1.9.5<BR>
icy-name:Groove Salad from SomaFM [aacPlus] [SomaFM]
icy-genre:Downtempo Ambient Groove
icy-url:http://SomaFM.com
content-type:audio/aacp
icy-pub:1
icy-br:64

VCL works fine.

It is not a codec problem because if you do:

wget http://208.80.52.90/CITFFMAACCMP3 -O CITFFMAACCMP3.aac (for few seconds)

and open CITFFMAACCMP3.aac with VCL, it plays the file fine.

How to reproduce:

In winamp:
open URL: http://208.80.52.90/CITFFMAACCMP3

It works

In VCL 0.9.6:
open URL http://208.80.52.90/CITFFMAACCMP3

It does not work.

Very easy to reproduce.

Here is your messages output set to verbose:

main info: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
qt4 debug: New item: http://208.80.52.90/CITFFMAACCMP3
main debug: adding item `http://208.80.52.90/CITFFMAACCMP3' ( http://208.80.52.90/CITFFMAACCMP3 )
main debug: rebuilding array of current - root Playlist
main debug: rebuild done - 1 items, index -1
main debug: starting new item
main debug: processing request item http://208.80.52.90/CITFFMAACCMP3 node null skip 0
main debug: resyncing on http://208.80.52.90/CITFFMAACCMP3
main debug: http://208.80.52.90/CITFFMAACCMP3 is at 0
main debug: creating new input thread
main debug: Creating an input for 'http://208.80.52.90/CITFFMAACCMP3'
main debug: waiting for thread initialization
main debug: thread started
main debug: thread 5568 (input) created at priority 1 (input/input.c:370)
main debug: `http://208.80.52.90/CITFFMAACCMP3' gives access `http' demux `' path `208.80.52.90/CITFFMAACCMP3'
qt4 debug: Updating the stream status: 3
main debug: creating demux: access='http' demux='' path='208.80.52.90/CITFFMAACCMP3'
main debug: looking for access_demux module: 0 candidates
main warning: no access_demux module matched "http"
main debug: TIMER module_Need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms)
main debug: creating access 'http' path='208.80.52.90/CITFFMAACCMP3'
main debug: looking for access module: 2 candidates
access_http debug: http: server='208.80.52.90' port=80 file='/CITFFMAACCMP3
main debug: net: connecting to 208.80.52.90 port 80
main debug: connection: Resource temporarily unavailable
main debug: connection succeeded (socket = 5600)
access_http debug: protocol 'HTTP' answer code 200
access_http debug: Pragma: no-cache
access_http debug: Content-Type: audio/aacp
access_http debug: Meta-Info: icy-url: http://www.rockdetente.com/principal.asp?station=citf
access_http debug: Server: MediaGateway 1.88.9-r2
access_http debug: Icy-MetaInt: 16000
access_http warning: ICY metaint=16000
main debug: using access module "access_http"
main debug: TIMER module_Need() : 126.000 ms - Total 126.000 ms / 1 intvls (Avg 126.000 ms)
qt4 debug: New Event: type 1103
qt4 debug: Updating the stream status: 2
main debug: Using AStream*Stream
main debug: pre-buffering...
main debug: received first data for our buffer
access_http debug: New Title=
main debug: pre-buffering done 58121 bytes in 0s - 297 kbytes/s
main debug: creating demux: access='http' demux='' path='208.80.52.90/CITFFMAACCMP3'
main debug: looking for demux module: 51 candidates
ts warning: TS module discarded (lost sync)
avformat debug: couldn't guess format
lua debug: Trying Lua scripts in C:\Documents and Settings\olanglois\Application Data\vlc\lua\playlist
lua debug: Trying Lua scripts in C:\Program Files\VideoLAN\VLC\\lua\playlist
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\appletrailers.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\break.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\canalplus.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\dailymotion.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\france2.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\googlevideo.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\joox.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\lelombrik.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\megavideo.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\metacafe.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\youtube.lua
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\\lua\playlist\youtube_homepage.lua
lua debug: Trying Lua scripts in C:\Program Files\VideoLAN\VLC\\share\lua\playlist
ps warning: this does not look like an MPEG PS stream, continuing anyway
main debug: using demux module "ps"
main debug: TIMER module_Need() : 1826.000 ms - Total 1826.000 ms / 1 intvls (Avg 1826.000 ms)
main debug: looking for a subtitle file in C:\Program Files\VideoLAN\VLC\
main debug: `http://208.80.52.90/CITFFMAACCMP3' successfully opened
ps warning: garbage at input, trying to resync...
main debug: control type=1
qt4 debug: New Event: type 1103
qt4 debug: Updating the stream status: 3
ps warning: found sync code

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37519
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby Jean-Baptiste Kempf » 19 Nov 2008 18:21

Thank you, this is very useful, because it seems that the VLC is not able to find a correct demuxer when taken from http.
What demuxer is used when dumped on file ?
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 19 Nov 2008 19:03

Hi,

when I open the .aac file, the demux module used is "m4a":

ps warning: found sync code
main debug: adding item `CITFFMAACCMP3.aac' ( C:\workspace\libstwstreaming\STW\CITFFMAACCMP3.aac )
main debug: waitpipe: object killed
main debug: socket 5600 polling interrupted
main debug: rebuilding array of current - root Playlist
main debug: rebuild done - 2 items, index 0
main debug: dying input
main debug: control type=0
main debug: control: stopping input
qt4 debug: Updating the stream status: 8
main debug: removing module "mpeg_audio"
main debug: thread ended
main debug: thread times: real 73m23.993566s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 5912 joined (input/decoder.c:248)
main debug: killing decoder fourcc `mpga', 0 PES in FIFO
main debug: removing module "libmpeg2"
main debug: thread ended
main debug: thread times: real 6m57.538858s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 5932 joined (input/decoder.c:248)
main debug: killing decoder fourcc `mpgv', 0 PES in FIFO
main debug: removing module "libmpeg2"
main debug: thread ended
main debug: thread times: real 62m34.146669s, kernel 0m0.015625s, user 0m0.000000s
main debug: thread 5520 joined (input/decoder.c:248)
main debug: killing decoder fourcc `mpgv', 0 PES in FIFO
main debug: removing module "libmpeg2"
main debug: thread ended
main debug: thread times: real 58m33.276293s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 5064 joined (input/decoder.c:248)
main debug: killing decoder fourcc `mpgv', 0 PES in FIFO
main debug: removing module "libmpeg2"
main debug: thread ended
main debug: thread times: real 49m40.020907s, kernel 0m0.000000s, user 0m0.015625s
main debug: thread 12 joined (input/decoder.c:248)
main debug: killing decoder fourcc `mpgv', 0 PES in FIFO
main debug: Program doesn't contain anymore ES
main debug: removing module "ps"
main debug: removing module "access_http"
main debug: thread ended
main debug: dead input
main debug: thread times: real 74m10.055182s, kernel 0m0.421875s, user 0m0.437500s
main debug: thread 5568 joined (playlist/engine.c:244)
main debug: TIMER input launching for 'http://208.80.52.90/CITFFMAACCMP3' : 2166.000 ms - Total 2166.000 ms / 1 intvls (Avg 2166.000 ms)
main debug: starting new item
main debug: processing request item CITFFMAACCMP3.aac node null skip 0
main debug: resyncing on CITFFMAACCMP3.aac
main debug: CITFFMAACCMP3.aac is at 1
main debug: creating new input thread
main debug: Creating an input for 'CITFFMAACCMP3.aac'
main debug: waiting for thread initialization
main debug: thread started
main debug: thread 5584 (input) created at priority 1 (input/input.c:370)
main debug: `C:\workspace\libstwstreaming\STW\CITFFMAACCMP3.aac' gives access `' demux `' path `C:\workspace\libstwstreaming\STW\CITFFMAACCMP3.aac'
qt4 debug: Updating the stream status: 3
main debug: creating demux: access='' demux='' path='C:\workspace\libstwstreaming\STW\CITFFMAACCMP3.aac'
main debug: looking for access_demux module: 1 candidate
main debug: TIMER module_Need() : 204.000 ms - Total 204.000 ms / 1 intvls (Avg 204.000 ms)
main debug: creating access '' path='C:\workspace\libstwstreaming\STW\CITFFMAACCMP3.aac'
main debug: looking for access module: 5 candidates
qt4 debug: New Event: type 1103
qt4 debug: Updating the stream status: 1
vcd debug: trying .cue file: C:\workspace\libstwstreaming\STW\CITFFMAACCMP3.cue
vcd debug: could not find .cue file
access_file debug: opening file `C:\workspace\libstwstreaming\STW\CITFFMAACCMP3.aac'
main debug: using access module "access_file"
main debug: TIMER module_Need() : 152.000 ms - Total 152.000 ms / 1 intvls (Avg 152.000 ms)
qt4 debug: New Event: type 1103
main debug: Using AStream*Stream
main debug: pre-buffering...
main debug: received first data for our buffer
qt4 debug: Updating the stream status: 2
main debug: creating demux: access='' demux='' path='C:\workspace\libstwstreaming\STW\CITFFMAACCMP3.aac'
main debug: looking for demux module: 59 candidates
main debug: looking for packetizer module: 18 candidates
packetizer_mpeg4audio debug: running MPEG4 audio packetizer
packetizer_mpeg4audio debug: no decoder specific info, must be an ADTS or LOAS stream
main debug: using packetizer module "packetizer_mpeg4audio"
main debug: TIMER module_Need() : 1141.000 ms - Total 1141.000 ms / 1 intvls (Avg 1141.000 ms)
main debug: using demux module "m4a"
main debug: TIMER module_Need() : 1141.000 ms - Total 1141.000 ms / 1 intvls (Avg 1141.000 ms)
main debug: looking for a subtitle file in C:\workspace\libstwstreaming\STW\
main debug: looking for meta reader module: 2 candidates
id3tag debug: checking for ID3v1/2 and APEv1/2 tags
main debug: TIMER module_Need() : 56.000 ms - Total 56.000 ms / 1 intvls (Avg 56.000 ms)
main debug: `C:\workspace\libstwstreaming\STW\CITFFMAACCMP3.aac' successfully opened
packetizer_mpeg4audio debug: detected ADTS format
packetizer_mpeg4audio info: AAC channels: 1 samplerate: 22050
qt4 debug: New Event: type 1103
main debug: selecting program id=0
qt4 debug: Updating the stream status: 3
main debug: looking for decoder module: 33 candidates
main debug: using decoder module "faad"
main debug: TIMER module_Need() : 1.000 ms - Total 1.000 ms / 1 intvls (Avg 1.000 ms)
main debug: thread 5880 (decoder) created at priority 2 (input/decoder.c:217)
main debug: thread started
qt4 debug: New Event: type 1108
faad warning: decoded zero sample
faad debug: AAC SBR (channels: 2, samplerate: 44100)
main debug: no aout present, spawning one
main debug: looking for audio output module: 3 candidates
aout_directx debug: OpenAudio
aout_directx debug: found device: Primary Sound Driver
aout_directx debug: found device: SoundMAX HD Audio
aout_directx debug: device supports 2 channels (DEFAULT!)
aout_directx debug: device supports 2 channels
aout_directx debug: device supports 1 channel
aout_directx debug: Windows says your SpeakerConfig is stereo
aout_directx debug: creating DirectSoundThread
main debug: thread 6464 (DirectSound Notification Thread) created at priority 15 (directx.c:392)
main debug: using audio output module "aout_directx"
main debug: TIMER module_Need() : 73.000 ms - Total 73.000 ms / 1 intvls (Avg 73.000 ms)
main debug: thread started
aout_directx debug: DirectSoundThread ready
main debug: output 's16l' 44100 Hz Stereo frame=1 samples/4 bytes
main debug: mixer 'fl32' 44100 Hz Stereo frame=1 samples/8 bytes
main debug: filter(s) 'fl32'->'s16l' 44100 Hz->44100 Hz Stereo->Stereo
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "converter_float"
main debug: TIMER module_Need() : 47.000 ms - Total 47.000 ms / 1 intvls (Avg 47.000 ms)
main debug: found a filter for the whole conversion
main debug: looking for audio mixer module: 3 candidates
main debug: using audio mixer module "float32_mixer"
main debug: TIMER module_Need() : 37.000 ms - Total 37.000 ms / 1 intvls (Avg 37.000 ms)
main debug: input 'fl32' 44100 Hz Stereo frame=1 samples/8 bytes
main debug: filter(s) 'fl32'->'fl32' 48510 Hz->44100 Hz Stereo->Stereo
main debug: looking for audio filter module: 24 candidates
main debug: using audio filter module "bandlimited_resampler"
main debug: TIMER module_Need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms)
main debug: found a filter for the whole conversion
faad debug: AAC SBR+PS (channels: 2, samplerate: 44100)
main debug: control type=1
main debug: incoming request - stopping current input
main debug: dying input
main debug: removing module "faad"
main debug: thread ended
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: dying input
main debug: control type=0
main debug: control: stopping input
main debug: removing module "packetizer_mpeg4audio"
main debug: removing module "m4a"
main debug: removing module "access_file"
main debug: thread times: real 0m3.171814s, kernel 0m0.046875s, user 0m0.109375s
main debug: thread 5880 joined (input/decoder.c:248)
main debug: killing decoder fourcc `mp4a', 19 PES in FIFO
qt4 debug: Updating the stream status: 8
main debug: removing module "bandlimited_resampler"
aout_directx debug: closing audio device
aout_directx debug: DirectSoundThread exiting
main debug: thread ended
main debug: thread times: real 0m3.890550s, kernel 0m0.000000s, user 0m0.000000s
main debug: thread 6464 joined (directx.c:664)
main debug: removing module "aout_directx"
main debug: removing module "converter_float"
main debug: removing module "float32_mixer"
main debug: thread ended
main debug: dead input
main debug: thread times: real 0m5.624892s, kernel 0m0.015625s, user 0m0.031250s
main debug: thread 5584 joined (playlist/engine.c:244)
main debug: TIMER input launching for 'CITFFMAACCMP3.aac' : 1619.000 ms - Total 1619.000 ms / 1 intvls (Avg 1619.000 ms)

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37519
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby Jean-Baptiste Kempf » 19 Nov 2008 19:11

This is indeed a bug, since when I do vlc -vvv HTTP:/.... --demux m4a, I have audio for just a couple of seconds...

You have to fill a bug then.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 19 Nov 2008 19:17

Hi J-B,

Ok, I can fill in a bug and include a reference to this thread in the forum. Can you just tell me where and how I can fill in a bug?

Thank you,

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37519
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby Jean-Baptiste Kempf » 19 Nov 2008 19:23

http://trac.videolan.org/vlc

The bug seems to be that VLC cannot demux m4a straight over http... Is it even a spec ? :D
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 19 Nov 2008 19:33

Ok thanks. I will log a bug.

This is just an opinion but I think that if a multimedia format has an official mime-type than it should be possible to transport it over HTTP.

I'm just the messenger and ultimately, it is the VLC developers that will need to decide. All I can say is that at my workplace VLC has the reputation to be the most liberal player. Usually, you throw something at it and if it is playable, it will play it.

Greetings,

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37519
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby Jean-Baptiste Kempf » 19 Nov 2008 19:34

Ok thanks. I will log a bug.

This is just an opinion but I think that if a multimedia format has an official mime-type than it should be possible to transport it over HTTP.

I'm just the messenger and ultimately, it is the VLC developers that will need to decide. All I can say is that at my workplace VLC has the reputation to be the most liberal player. Usually, you throw something at it and if it is playable, it will play it.

Greetings,
:) THanks for the bug :D
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 19 Nov 2008 19:43

J-B,

I went to your trac page, created an account but I do not have the permission to create new bugs because new trac accounts need to be validated by someone from VideoLan.

Is this something that you can do or send an e-mail to someone who can grant me this right?

Otherwise, I'm afraid that someone will need to fill in the bug on my behalf...

My trac username is olanglois.

Greetings,

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37519
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby Jean-Baptiste Kempf » 19 Nov 2008 20:09

Done.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 19 Nov 2008 20:25

thanks.

Ticket #2299 has been opened.

Hopefully this bug report will help VLC team make a better player.

Greetings,

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37519
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby Jean-Baptiste Kempf » 19 Nov 2008 20:26

This is fixed in 1.0 development.

The issue is that those streams are not answering exactly like normal Icecast streams.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 19 Nov 2008 20:55

J-B,

I have checked the code change that you refer in the ticket:2299 and I think that the change is unrelated to the problem that I have reported. The code change is related to shoutcast metadata interval. BUT... I have looked a little bit in the same file and I have seen this:

1381 else if( !strcasecmp( psz, "Server" ) )
1382 {
1383 msg_Dbg( p_access, "Server: %s", p );
1384 if( !strncasecmp( p, "Icecast", 7 ) ||
1385 !strncasecmp( p, "Nanocaster", 10 ) )
1386 {
1387 /* Remember if this is Icecast
1388 * we need to force demux in this case without breaking
1389 * autodetection */
1390
1391 /* Let live 365 streams (nanocaster) piggyback on the icecast
1392 * routine. They look very similar */
1393
1394 p_sys->b_reconnect = true;
1395 p_sys->b_pace_control = false;
1396 p_sys->b_icecast = true;
1397 }
1398 }

The comment about forcing demux for Icecast seems to be related. With the server reply that I have provided, the server name is MediaGateway hence the player will not execute the conditionnal block of code.

As a side note, it looks that this:

1204 /* ICY meta data request */
1205 net_Printf( VLC_OBJECT(p_access), p_sys->fd, pvs, "Icy-MetaData: 1\r\n" );

is a new addition since VLC 0.9.6 does not seem to ask for meta data. The MediaGateway server support meta data like this.

Do you want me to reopen the bug or you will take care of it?

olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 19 Nov 2008 20:58

ok I get it!

If the server accept the metadata request then VLC consider the server as an Icecast server and from there, the demux forcing code kicks in.

If that is the case then everything is good.

Greetings,

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37519
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby Jean-Baptiste Kempf » 19 Nov 2008 21:49

Well, no, the thing is that VLC didn't understood it was an icecast server, so either VLC is not following the spec, or the server is. So this 2-lines patches is MORE laxist, and makes it work with that server...

So when 1.0 is released, this will be fixed.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 20 Nov 2008 16:05

J-B,

I have though about the issue overnight and I still think that the player could be improved further.

First the Icecast detection conditions are somewhat brittle. From what I have understood the conditions are:

If server name is Icecast or nanosomething.

The condition value is not much because since Icecast version 2.3.2, the server name is configurable by editing the Icecast XML config file. So in theory, you could have as much different server names than there are Icecast servers on the Internet.

secondly the server is Icecast if it returns an HTTP reply and accept the client shoutcast metadata request. This might not be always true in the future and depending on the multimedia format used by the stream.

I can give you an example. My server is not Icecast. In some aspects, it will behave like Icecast but it does more than Icecast. For instance, my server streams FLV streams. Something that you cannot do with Icecast and since Flash players do not support shoutcast metadata the server will ignore the metadata request. So based VLC would not consider my server as Icecast and demux detection would likely failed.

What I do not understand about VLC logic is why it insist on detecting Icecast to consider the Content-Type reply field. I mean the content could be served by a regular HTTP server and VLC player would not work properly because it is not Icecast. Unless someone explain me, it does not make much sense!

My suggestion is that the player should consider the Content-Type no matter what type of server is replying. In my opinion, the Content-Type is as valuable as filename extension. That would make your player much more robust.

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37519
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby Jean-Baptiste Kempf » 20 Nov 2008 20:18

Patches are welcome :D
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

fenrir
Blank Cone
Blank Cone
Posts: 45
Joined: 09 Mar 2004 21:45

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby fenrir » 20 Nov 2008 23:56

It is simple: Content-Type is not reliable for a lot of servers (file servers).
In the general case, our internal demuxer detection code works better.

On the other end, with icecast/streaming server, the first frame sent is often broken (start in the middle), while Content-Type is always right.

So we use Content-Type only when we can detect that its value is reliable.

Do you know a better way than checking on icy-meta to detect icecast-like server when it does not use ICY protocol ?

olanglois
Blank Cone
Blank Cone
Posts: 14
Joined: 19 Nov 2008 16:39
VLC version: 0.9.6
Operating System: WinXP/Linux
Location: Montreal, Canada
Contact:

Re: ADTS AACPlus V2 streaming problem with VLC 0.9.6

Postby olanglois » 21 Nov 2008 20:00

Cool,

thank you for the explanation. I didn't know that HTTP server content-type was not reliable. Probably that very often the generic "application/octet-stream" mime-type is returned. I guess that there is no ideal solution then.

One way that you could improve the detection is if you look for any reply header field starting with "icy-". This might not catch all cases but certainly it would be more general than just checking specifically for "icy-metaint".

Keep up the good work!

I'm not saying no for some code contribution eventually but I do not want to take commitments now on something that I am not sure to have time to deliver as I am very busy on plenty of other things...


Return to “General VLC media player Troubleshooting”

Who is online

Users browsing this forum: Google [Bot] and 6 guests