Bug 15377 - need to handle more strings
Summary: need to handle more strings
Status: ASSIGNED
Alias: None
Product: swfdec
Classification: Unclassified
Component: library (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: swfdec ml
QA Contact: swfdec ml
URL: http://www.bbc.co.uk/doctorwho/s4/epi...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-06 12:33 UTC by Anand Kumria
Modified: 2008-10-07 02:28 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
iPlayer SWF (80.91 KB, application/octet-stream)
2008-04-06 12:33 UTC, Anand Kumria
Details
iPlayer configuration (3.63 KB, application/xml)
2008-04-06 12:34 UTC, Anand Kumria
Details
crossdomain file (252 bytes, application/xml)
2008-04-06 12:34 UTC, Anand Kumria
Details
iPlayer episode configuration (3.34 KB, application/xml)
2008-04-06 12:35 UTC, Anand Kumria
Details
Episode cover image (39.71 KB, image/jpeg)
2008-04-06 12:36 UTC, Anand Kumria
Details

Description Anand Kumria 2008-04-06 12:33:10 UTC
Created attachment 15719 [details]
iPlayer SWF

Unable to watch DoctorWho using the BBC's iPlayer.


<http://www.bbc.co.uk/doctorwho/s4/episodes/?episode=S4_01&action=iplayer&pid=b009w049&title=Partners%20In%20Crime&summary=Donna%20is%20determined%20to%20find%20the%20Doctor%20again%20-%20even%20if%20it%20means%20braving%20the%20villainous%20Miss%20Foster%20and%20her%20hordes%20of%20sinister%20Adipose>

The above URL contains the following Javascript fragment:

	<script type="text/javascript">
		var so = new SWFObject("http://www.bbc.co.uk/iplayer/emp/flash/iplayer-external.swf", "bbc_emp_embed", "512", "323", "8", "#000000");
		so.addParam("allowFullScreen", "true");
		so.addParam("wmode", "opaque");
		
		so.addVariable("config", "http://www.bbc.co.uk/iplayer/emp/xml/config.xml");
		so.addVariable("metafile", "http://www.bbc.co.uk/iplayer/metafiles/episode/b009w049.xml");
		so.useExpressInstall('http://www.bbc.co.uk/iplayer/emp/flash/expressinstall.swf');
		var div = document.getElementById("bbc_emp"); 
		if (so.installedVer.major == 0) { 
			div.innerHTML = '<p style="padding:40px 60px 0;font-size:1.2em;font-weight:bold">You need to install Flash to play this programme</p><p style="padding:40px 60px 0"><a style="color:#ED007F" href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Download the Flash player now</a></p><p style="padding:40px 60px 0">(This link will take you to a site outside bbc.co.uk. The BBC is not responsible for the content of software downloaded from external sites)</p>'; 
		}
		else if (so.installedVer.major < 7) { 
		div.innerHTML = '<p style="padding:40px 60px 0;font-size:1.2em;font-weight:bold">A newer version of Flash is needed to play this programme</p><p style="padding:40px 60px 0"><a style="color:#ED007F" href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Download the Flash player now</a></p><p style="padding:40px 60px 0">(This link will take you to a site outside bbc.co.uk. The BBC is not responsible for the content of software downloaded from external sites)</p>'; 
		} 
		else so.write("bbc_emp"); 
	</script>

I have the iPlayer SWF file to this bug report and will include the other referenced files shortly.

Thanks,
Anand
Comment 1 Anand Kumria 2008-04-06 12:34:27 UTC
Created attachment 15720 [details]
iPlayer configuration
Comment 2 Anand Kumria 2008-04-06 12:34:56 UTC
Created attachment 15721 [details]
crossdomain file
Comment 3 Anand Kumria 2008-04-06 12:35:37 UTC
Created attachment 15722 [details]
iPlayer episode configuration
Comment 4 Anand Kumria 2008-04-06 12:36:09 UTC
Created attachment 15723 [details]
Episode cover image
Comment 5 Anand Kumria 2008-04-08 15:43:42 UTC
Actually it isn't just DoctorWho that is affected.

We are unable to watch wacky Germans too!

<http://news.bbc.co.uk/1/hi/world/europe/7335351.stm>

Comment 6 Benjamin Otte 2008-04-09 00:34:49 UTC
So after investigating this more it turns out that the unicode consortium and Flash have a different idea of what unicode is.
Or to be more techy: There is a set of unicode "code points" (read: values) that are considered invalid and must not appear in any string of text. Every other library we use (read: Pango or glib) will reject these values. Some might even crash. Flash will not, it seems to treat these as valid.

This seems to need a somewhat larger refactoring + code audit so that we can allow all these "invalid" strings. I'm not yet sure how to best do that though.

I'll however try a quick fix to work around the problem. I'll let you know about it when I've done it.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.