[MPlayer-users] mpeg2ts/aac problem

Nico nsabbi at tiscali.it
Wed Nov 26 11:03:54 CET 2003


now the stream is recognized as AACcident and passed to FAAD, as far as 
I can guess from your gdb.log, but
Faad dies (which doesn't surprise anymore: it dies very easily).

I'll give it a look tonight.

Nico

gabor wrote:

>[Automatic answer: RTFM (read DOCS, FAQ), also read DOCS/bugreports.html]
>  
>
>------------------------------------------------------------------------
>
>On Tue, 2003-11-25 at 10:17, Nico wrote:
>  
>
>>[Automatic answer: RTFM (read DOCS, FAQ), also read DOCS/bugreports.html]
>>
>>I checked that file.
>>The problem is that the descriptor assigned to AAC in TS in the standard 
>>(0xf) in your case is correctly assigned
>>only to the audio pid, but in all the samples I have it's assigned to 
>>all pids (even to video and sub pids),
>>so I commented the code to tag  it as AAC. What happens is that the 
>>demuxer sees that pid as MP2,
>>which obviously isn't.
>>
>>You can do two things:
>>1) in parse_descriptors decomment the code regarding case 0xf and in 
>>parse_pmt change this block:
>>
>>//if((type_from_pmt == 0x0f) || (l == 4)) //see in parse_pmt()
>>if(l==4)
>>       es->type    = AUDIO_AAC;
>>
>>to
>>if((type_from_pmt == 0x0f))
>>     es->type    = AUDIO_AAC;
>>
>>that should work as expected
>>    
>>
>
>crashes (gdb log attached) :(
>
>
>  
>
>>2) try to discover what's the meaning of the descriptors used by those
>>japanese broadcasters. If it weren't for the mess they make in the PMT the
>>code would be already working correctly.
>>    
>>
>:(
>  
>
>>BTW I'm planning to add an option to permit users to force a decoder.
>>    
>>
>would be great
>
>
>thanks,
>gabor
>  
>
>------------------------------------------------------------------------
>
>(gdb) bt
>#0  fill_element (hDecoder=0x8460630, ld=0x854fc68, drc=0x8460e28, sbr_ele=255 '#') at syntax.c:1029
>#1  0x0829dda7 in raw_data_block (hDecoder=0x8460630, hInfo=0x8396320, ld=0x854fc68, elements=0xbfffe1b0, spec_coef=0xbfffe0b0, pce=0x8460bbd, drc=0x8460e28) at syntax.c:415
>#2  0x0828fd60 in faacDecDecode (hDecoder=0x8460630, hInfo=0x8396320, buffer=0x8460630 "", buffer_size=4608) at decoder.c:812
>#3  0x080bb6ad in decode_audio (sh=0x845f308, buf=0x8489bd0 "", minlen=32766, maxlen=77824) at ad_faad.c:179
>#4  0x080b75be in decode_audio (sh_audio=0x845f308, buf=0x85388e8 "", minlen=138976208, maxlen=65536) at dec_audio.c:411
>#5  0x08075558 in main (argc=6, argv=0xbffff6f4) at mplayer.c:1993
>(gdb) disass $pc-32 $pc+32
>Dump of assembler code from 0x829f8db to 0x829f91b:
>0x0829f8db <fill_element+139>:  test   %esi,%esi
>0x0829f8dd <fill_element+141>:  je     0x829f91a <fill_element+202>
>0x0829f8df <fill_element+143>:  push   %eax
>0x0829f8e0 <fill_element+144>:  push   %eax
>0x0829f8e1 <fill_element+145>:  mov    %ebx,%eax
>0x0829f8e3 <fill_element+147>:  and    $0xffff,%eax
>0x0829f8e8 <fill_element+152>:  shl    $0x3,%eax
>0x0829f8eb <fill_element+155>:  push   %eax
>0x0829f8ec <fill_element+156>:  push   %edi
>0x0829f8ed <fill_element+157>:  call   0x82a32f0 <faad_getbitbuffer>
>0x0829f8f2 <fill_element+162>:  add    $0x10,%esp
>0x0829f8f5 <fill_element+165>:  mov    0xffffffe8(%ebp),%ecx
>0x0829f8f8 <fill_element+168>:  mov    0x8(%ebp),%edx
>0x0829f8fb <fill_element+171>:  mov    %eax,0x2c88(%esi)
>0x0829f901 <fill_element+177>:  mov    0x308(%edx,%ecx,4),%eax
>0x0829f908 <fill_element+184>:  mov    %bx,0x2c8c(%eax)
>0x0829f90f <fill_element+191>:  nop    
>0x0829f910 <fill_element+192>:  lea    0xfffffff4(%ebp),%esp
>0x0829f913 <fill_element+195>:  xor    %eax,%eax
>0x0829f915 <fill_element+197>:  pop    %ebx
>0x0829f916 <fill_element+198>:  pop    %esi
>0x0829f917 <fill_element+199>:  pop    %edi
>0x0829f918 <fill_element+200>:  pop    %ebp
>0x0829f919 <fill_element+201>:  ret    
>0x0829f91a <fill_element+202>:  mov    0x8(%edx),%ax
>End of assembler dump.
>(gdb) info all-registers
>eax            0x84638f0        138819824
>ecx            0xff     255
>edx            0x8460630        138806832
>ebx            0x8      8
>esp            0xbfffdfe0       0xbfffdfe0
>ebp            0xbfffdff8       0xbfffdff8
>esi            0x110a524c       285889100
>edi            0x854fc68        139787368
>eip            0x829f8fb        0x829f8fb
>eflags         0x210282 2163330
>cs             0x73     115
>ss             0x7b     123
>ds             0x7b     123
>es             0x7b     123
>fs             0x0      0
>gs             0x33     51
>st0            876.9923095703125        (raw 0x4008db3f820000000000)
>st1            -1023.5062255859375      (raw 0xc008ffe0660000000000)
>st2            1919.88262939453125      (raw 0x4009effc3e8000000000)
>st3            -2736.83892822265625     (raw 0xc00aab0d6c4000000000)
>st4            3445.7750244140625       (raw 0x400ad75c668000000000)
>st5            -833.02435302734375      (raw 0xc008d0418f0000000000)
>st6            -3.9205240348254619675572030246257782    (raw 0xc000fae9dda430780000)
>st7            nan(0xc000000000000000)  (raw 0x7fffc000000000000000)
>fctrl          0x37f    895
>fstat          0x4029   16425
>ftag           0xffff   65535
>fiseg          0x73     115
>fioff          0x8293d03        136920323
>foseg          0x7b     123
>fooff          0xbfffdedc       -1073750308
>fop            0x19d    413
>xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
>  v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
>xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
>    v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
>xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
>      v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
>xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
>        v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
>xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
>          v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
>xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
>            v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
>xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
>              v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
>xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
>                v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
>mxcsr          0x1f80   8064
>mm0            {uint64 = 0xdb3f820000000000, v2_int32 = {0x0, 0xdb3f8200}, v4_int16 = {0x0, 0x0, 0x8200, 0xdb3f}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x82, 0x3f, 0xdb}}
>mm1            {uint64 = 0xffe0660000000000, v2_int32 = {0x0, 0xffe06600}, v4_int16 = {0x0, 0x0, 0x6600, 0xffe0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x66, 0xe0, 0xff}}
>mm2            {uint64 = 0xeffc3e8000000000, v2_int32 = {0x0, 0xeffc3e80}, v4_int16 = {0x0, 0x0, 0x3e80, 0xeffc}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x80, 0x3e, 0xfc, 0xef}}
>mm3            {uint64 = 0xab0d6c4000000000, v2_int32 = {0x0, 0xab0d6c40}, v4_int16 = {0x0, 0x0, 0x6c40, 0xab0d}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x40, 0x6c, 0xd, 0xab}}
>mm4            {uint64 = 0xd75c668000000000, v2_int32 = {0x0, 0xd75c6680}, v4_int16 = {0x0, 0x0, 0x6680, 0xd75c}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x80, 0x66, 0x5c, 0xd7}}
>mm5            {uint64 = 0xd0418f0000000000, v2_int32 = {0x0, 0xd0418f00}, v4_int16 = {0x0, 0x0, 0x8f00, 0xd041}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x41, 0xd0}}
>mm6            {uint64 = 0xfae9dda430780000, v2_int32 = {0x30780000, 0xfae9dda4}, v4_int16 = {0x0, 0x3078, 0xdda4, 0xfae9}, v8_int8 = {0x0, 0x0, 0x78, 0x30, 0xa4, 0xdd, 0xe9, 0xfa}}
>mm7            {uint64 = 0xc000000000000000, v2_int32 = {0x0, 0xc0000000}, v4_int16 = {0x0, 0x0, 0x0, 0xc000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0}}
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>RTFM!!!  http://www.MPlayerHQ.hu/DOCS
>Search:  http://www.MPlayerHQ.hu/cgi-bin/htsearch
>http://mplayerhq.hu/mailman/listinfo/mplayer-users
>  
>




More information about the MPlayer-users mailing list