@KSV
Hi KSV, first thank you for your work.
I was testing your patches and I think I found a bug:
Steps to reproduce:
- Try to dump one of the streams of Icasthd. Take into account that Icasthd works per sessions so you will need to get a valid one.
icasthd.tv/?p=channeldetails&id=skysports1
For Example:
http://pastebin.com/qEi703wk
When dumping this kind of streams, from time to time I get a segfault.
One of the times I was running with gdb and I got a backtrace:
Code:
DEBUG: Parsed protocol: 0
DEBUG: Parsed host : edge.icasthd.com
DEBUG: Parsed app : live?f=skysports1&t=1366736989&/
INFO: rtmp server sent redirect
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6cff3c8 in _int_free () from /usr/lib/libc.so.6
(gdb) backtrace
#0 0x00007ffff6cff3c8 in _int_free () from /usr/lib/libc.so.6
#1 0x00007ffff7bcff2c in AMF_Reset () from /usr/lib/librtmp.so.0
#2 0x00007ffff7bcff81 in AMFProp_Reset () from /usr/lib/librtmp.so.0
#3 0x00007ffff7bcff1c in AMF_Reset () from /usr/lib/librtmp.so.0
#4 0x00007ffff7bcff81 in AMFProp_Reset () from /usr/lib/librtmp.so.0
#5 0x00007ffff7bcff1c in AMF_Reset () from /usr/lib/librtmp.so.0
#6 0x00007ffff7bc9e6a in ?? () from /usr/lib/librtmp.so.0
#7 0x00007ffff7bcd38c in RTMP_ClientPacket () from /usr/lib/librtmp.so.0
#8 0x00007ffff7bcd9bd in RTMP_ConnectStream () from /usr/lib/librtmp.so.0
#9 0x0000000000402554 in ?? ()
#10 0x00007ffff6ca7a15 in __libc_start_main () from /usr/lib/libc.so.6
#11 0x0000000000402ab5 in ?? ()
Also happened with a compiled version in android with ffmpeg based player, backtrace in android shows:
Code:
#00 pc 00018630 /system/lib/libc.so (memcpy+48)
#01 pc 00035d7b /data/app-lib/com.android-1/librtmp.so (AMF_EncodeString+70)
#02 pc 00035fb1 /data/app-lib/com.android-1/librtmp.so (AMF_EncodeNamedString+48)
#03 pc 00031255 /data/app-lib/com.android-1/librtmp.so (RTMP_Connect1+2236)
#04 pc 00031593 /data/app-lib/com.android-1/librtmp.so (RTMP_Connect+98)
#05 pc 000330cf /data/app-lib/com.android-1/librtmp.so
#06 pc 00033cbb /data/app-lib/com.android-1/librtmp.so (RTMP_ClientPacket+818)
#07 pc 000345f5 /data/app-lib/com.android-1/librtmp.so (RTMP_ConnectStream+96)
#08 pc 002c514c /data/app-lib/com.android-1/libffmpeg-neon.so
The same crash in x86_64:
http://pastebin.com/EKxJvh23
It seems it's some problem handling redirects as sometimes ffmpeg outputs:
Code:
04-23 18:55:33.949: A/ffmpeg(7739): Problem accessing the DNS. (addr: @4.102.63.22)
04-23 18:55:33.949: E/player.c(7739): player_set_data_source Could not open video file: rtmp://edge.icasthd.com:1935/redirect3 swfUrl=http://www.icasthd.tv://player/player.swf swfVfy=1 pageUrl=http://www.icasthd.tv playpath=skysports2 app=redirect3?f=skysports2&t=1366736137& live=1 (-1313558101: Unknown error occurred)
What do you think?
Regards