Release 3.01 error, using huge amounts of memory

Ralph Corderoy ralph at inputplus.co.uk
Sun May 7 13:53:02 PDT 2017


Hi Jimmy,

> WARNING: Invalid attributes in HLS playlist:
> BANDWIDTH=979000,CODECS="mp4a.40.5
> (http://vod-hls-uk-live.bbcfmt.hs.llnwd.net/usp/auth/vod/piff_abr_full_sd_ad/ab83dd-b08pq8jz/vf_b08pq8jz_c46b7e01-c3af-44fe-ad32-d4
> 870b8505fd.ism/mobile_wifi_main_sd_abr_v2_hls_master.m3u8?s=1494129167&e=1494172367&h=7c0807ea016ea43f49302dd5004b9e1f)

It's an endless-loop bug in

    # from https://github.com/osklil/hls-fetch
    sub parse_m3u_attribs {
	my ($url, $attr_str) = @_;
	my %attr;
	for (my $as = $attr_str; $as ne ''; ) {
	    $as =~ s/^?([^=]*)=([^,"]*|"[^"]*")\s*(,\s*|$)// or
		main::logger "WARNING: Invalid attributes in HLS playlist: $attr_str ($url)\n";   
	    my ($key, $val) = ($1, $2);
	    $val =~ s/^"(.*)"$/$1/;
	    $attr{$key} = $val;
	}
	return %attr;
    }

The code is assuming it will be able to strip off either `foo=bar' or
`foo="xyzzy"' from the front of a comma-separated list.  When it can't, it
prints the warning, and then tries again.  It has no better luck on any future
attempt.  The warning shows what it was toiling over.

    BANDWIDTH=979000,CODECS="mp4a.40.5

I expect this happily consumed `BANDWIDTH=979000', but then disliked the lack
of double-quote termination to `CODECS="mp4a.40.5'.

It needs to be raised with get_iplayer's authors.

-- 
Cheers, Ralph.
https://plus.google.com/+RalphCorderoy



More information about the get_iplayer mailing list