Ticket #2617 reports playback issues involving HLS - running this command:
> ffplay 
> http://amd.cdn.turner.com/adultswim/big/streams/playlists/toonami.m3u8[http://amd.cdn.turner.com/adultswim/big/streams/playlists/toonami.m3u8]
>  -loglevel debug

results in this final line being printed:
> http://amd.cdn.turner.com/adultswim/big/streams/playlists/toonami.m3u8[http://amd.cdn.turner.com/adultswim/big/streams/playlists/toonami.m3u8]:
>  Server returned 403 Forbidden (access denied)
 
This is caused by libavformat terminating on faulty HTTP headers and, 
subsequently,
upon finding #EXTM3U lines.
 
The attached patch solves this by employing two new compilation flags:
 - FORBID_EXTM3U_LINES - causes termination when '#EXTM3U' is found;
 - FORBID_FAULTY_HTTP_HEADERS - causes termination upon faulty HTTP headers.
 
The rationale is that - while parsing HTTP headers and M3U playlists - errors
shouldn't abort the program execution; instead any usable data should be 
recovered as mush as possible, much like a HTML parser would do; also these 
flags operate upon compilation since users shouldn't normally be burdened with 
this kind of details - browsers don't prompt for loose HTML parsing either.
 
One immediate advantage of this is that the user will be able to play any 
M3U playlist without being burdened with minor parsing errors; and there's
no visible disadvantage.
 
Verification is done simply by recompiling ffplay upon applying the patch - 
those flags will just be undefined and so these parsing errors will be ignored
at runtime.

Attachment: 0001-make-libavformat-more-tolerant-fixes-2617.patch
Description: Binary data

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to