00:11 | <zcorpan_> | http://simon.html5.org/temp/valid-html5.png |
00:12 | <Hixie> | hahahahaha |
00:12 | <Hixie> | i love it |
00:13 | <zcorpan_> | :) |
00:15 | <othermaciej> | Hixie: ok, I'm out of my meeting |
00:15 | <Hixie> | cool |
00:15 | <Hixie> | so |
00:15 | <Hixie> | you started saying something before |
00:15 | <othermaciej> | Hixie: I don't think downloading starting on play() is right, so maybe we should step back and discuss that |
00:15 | <Hixie> | let's work out where to put the urls first |
00:16 | <Hixie> | since i'm half way through a patch to the spec to do that |
00:16 | <Hixie> | and i'd have to undo my changes to change something else first |
00:16 | <othermaciej> | ok |
00:16 | <othermaciej> | well, I think that affects when you want the fallback algorithm to apply |
00:16 | <Hixie> | yes, i agree |
00:17 | <Hixie> | wait, there are two "fallback mechanisms" here |
00:17 | <Hixie> | there's the content-negotiation "pick the right video" case, and the "my UA doesn't support <video>" case |
00:17 | <othermaciej> | which two do you have in mind? |
00:17 | <othermaciej> | ok, agreed |
00:18 | <Hixie> | i would argue that for the former you just want a list of URIs and metadata (MIME type with RFC4281, eg) |
00:18 | <othermaciej> | yes |
00:18 | <Hixie> | and for the second you want arbitrary markup, which is never shown in <video>-supporting UAs |
00:18 | <othermaciej> | even if the last chance media source is unsupported? |
00:19 | <Hixie> | i think if none of the codecs are supported, the better result is for the UA to display UI to the effect of "codec not supported, download more here" |
00:19 | <Hixie> | (maybe automatically doing so) |
00:20 | <othermaciej> | it's possible <object> would support codecs that are not natively supported |
00:20 | <othermaciej> | I can see arguments either way |
00:20 | <othermaciej> | would rather not debate it now |
00:20 | <othermaciej> | I think your proposal is fine |
00:21 | <othermaciej> | list for content negotiation, alternate content only for non-<video> UAs |
00:21 | <Hixie> | so my straw man for how to give the UA the list and alternate content would be <video> (list goes here) (legacy ua content goes here) </video> |
00:21 | <Hixie> | with the list being a series of elements with src/type attributes |
00:22 | <Hixie> | tentatively <param> since it already works and is a void element (no end tag) in all UAs |
00:22 | <othermaciej> | can you also specify src/type on <video> itself? |
00:22 | <othermaciej> | if so, what if you specify both that and <param>s? |
00:23 | <Hixie> | i would only have one |
00:23 | <Hixie> | on the principle of simplicity |
00:23 | <Hixie> | though i agree it's weird |
00:24 | <othermaciej> | if it weren't for the <param> is already void issue, I would suggest having a new element called <alt> |
00:24 | <Hixie> | agreed |
00:24 | <othermaciej> | and allow src/type on <video> and have that be the first one considered |
00:24 | <zcorpan_> | oh, no, that's too confusing with alt tags, er, i mean alt attributes :P |
00:24 | <othermaciej> | so the non-fallback case is still simple |
00:24 | <Hixie> | though i dunno what i'd like, namewise |
00:25 | <Hixie> | well even with <param> we could do that |
00:25 | <Hixie> | but it looks a bit weird |
00:25 | <Hixie> | <video src=a type=a> <param src=b type=b> <param src=c type=c> ... </video> |
00:26 | <othermaciej> | yeah, that's why I suggested <alt>, cause then it's clear that it is an alternate source |
00:27 | <othermaciej> | not sure what would happen in existing UAs if it appeared as an unclosed element |
00:27 | <othermaciej> | or you could be lame and require a close tag even though there can't be content |
00:28 | <zcorpan_> | it wouldn't mess up existing uas, i think. in ie it would be an empty element, and other browsers would close them at </video> |
00:28 | <Hixie> | well it's not really an <alt>, though, right, i mean it's equally important as the first one |
00:28 | <Hixie> | it's just the ua will pick the best one, or something |
00:29 | <zcorpan_> | <negotiate> |
00:29 | <othermaciej> | well, there's an ordering |
00:29 | <othermaciej> | so there is in fact a priority order |
00:29 | <Hixie> | oh, ok |
00:34 | <othermaciej> | or rather, I think the algorithm should pick the first one that it supports |
00:35 | <othermaciej> | I suppose another design would have the UI somehow evaluate quality, not just binary yes/no |
00:35 | <othermaciej> | but I think that is harder to deal with for both UAs and authors |
00:41 | <Hixie> | hang on mtg of my own now |
00:41 | <othermaciej> | ok |
00:48 | <Hixie> | ok back |
00:48 | <Hixie> | i guess we can have src/type on video and on child elements |
00:48 | <Hixie> | but it feels a little weird to me |
00:48 | <Hixie> | kind of assymetric |
00:50 | <othermaciej> | Agreed, but it would be nice not to make the no-fallback case more complex |
00:50 | <Hixie> | yeah.. |
00:50 | <Hixie> | <video><param src=""></video> |
00:50 | <Hixie> | it's not that much more complex i guess |
00:51 | <Hixie> | or maybe we can make it be one or the other |
00:51 | <Hixie> | if there's a src, ignore children |
00:51 | <Hixie> | if there isn't, only use children |
00:51 | <Hixie> | and not have a type="" on the <Video> element itself |
00:53 | <othermaciej> | it's hard for me to have a strong opinion on these particular details |
00:53 | <othermaciej> | I would like both single-source and multi-source cases to be nice syntactically |
00:53 | <Hixie> | ok well i'll just go with that last suggestion then |
00:53 | <Hixie> | what was the argument against using <param>? |
00:54 | <othermaciej> | is using an already-void element really a big advantage here, btw? |
00:54 | <othermaciej> | is there any UA where </video> wouldn't close random open unknown elements? |
00:54 | <Hixie> | well it's not a huge advantage, it's just neat. It also avoids the need to invent yet another element. |
00:54 | <Hixie> | every element we use here is one less name we can use elsewhere when we really need it |
00:55 | <othermaciej> | sure, but one element that you use with completely orthogonal sets of attributes in different situations is not much of a simplification |
00:55 | <othermaciej> | and makes validators either more complicated or less effective |
00:56 | <Hixie> | this is probably a one-line change in a decently architected conformance checker |
00:56 | <Hixie> | it only complicates matters if someone tries to document the element itself, as opposed to <object> and <video> |
00:56 | <Hixie> | hm |
00:56 | <Hixie> | what could we call it if not <param>... |
00:56 | <Hixie> | <source>, maybe |
00:56 | <othermaciej> | <source> is good |
00:56 | <Hixie> | <video> <source src="" type=""> <source src="" type=""> <p>You need Safari 3.</p> </video> |
00:58 | <othermaciej> | <source src> is a bit awkward, but better than alternatives I guess |
00:58 | <othermaciej> | the other prior art would be <source data> or <source href> and both of those seem worse |
00:58 | <Hixie> | yeah |
00:59 | <Hixie> | personally i prefer <param src="" type=""> but <source> is fine too. i'm speccing <source> for now, we can see what people say. |
00:59 | <zcorpan_> | i'd vote for <param> over <source> |
00:59 | <zcorpan_> | fwiw |
01:01 | <othermaciej> | it would seem weird to me if <param value name> and <param src type> were the same element but had completely different semantics, behavior, allowed attributes and contexts where they are valid |
01:03 | <Hixie> | i'd consider them different elements :-) |
01:03 | <Hixie> | just that happen to have the same name :-) |
01:04 | <othermaciej> | would the HTMLParamElement interface also include both sets of attributes? |
01:05 | <Hixie> | sure |
01:05 | <Hixie> | on <source>, should the type="" attribute require a codec="" parameter? |
01:05 | <othermaciej> | Some audio/video types may already imply a codec |
01:06 | <Hixie> | k |
01:06 | <Hixie> | so optional but mentioned |
01:07 | <othermaciej> | <param> already has a type attribute BTW |
01:07 | <Hixie> | not in HTML5 |
01:07 | <Hixie> | but yeah |
01:07 | <Hixie> | in HTML4 it did |
01:07 | <othermaciej> | I guess no one uses that? |
01:08 | <Hixie> | i couldn't work out what it was supposed to do and nobody could tell me |
01:08 | <Hixie> | so i dropped it |
01:08 | <Hixie> | :-) |
01:08 | <Hixie> | much like <meta scheme> |
01:08 | <Hixie> | and many others |
01:10 | <Lachy_> | hmm. I was expecting you to use <param name="src" value=""> |
01:10 | <Lachy_> | embedding flash in IE uses <param name="movie" value="flash.swf"> |
01:10 | <Hixie> | the name="src" would be redundant and UAs would end up ignoring it |
01:11 | <Lachy_> | so this param is only ever going to be used for specifying alternate sources? |
01:11 | <Hixie> | it's <source> right now |
01:11 | <Hixie> | but for now, yes |
01:11 | <Hixie> | extensibility doesn't work when you only have one value, because people end up ignoring it |
01:11 | <Hixie> | look at, e.g., <style>'s type="" attribute |
01:13 | <Lachy_> | I thought it might have been useful for extensibility, so that instead of adding new attributes to <video> for every new feature in the future, we could just use <param name value> |
01:14 | <othermaciej> | better yet, we could do that for all elements, and deprecate attributes entirely |
01:14 | <othermaciej> | </reductio> |
01:14 | <Lachy_> | :-) |
01:15 | <Lachy_> | I'm not particularly thrilled with <source src>. The name seems a little redundant, and could cause confusion for some about which spelling of source/src to use |
01:15 | <Hixie> | that's what xhtml2 has done |
01:15 | <Hixie> | (seriously) |
01:16 | <Lachy_> | really? I thought XHTMl2 <param> was only for object |
01:16 | <Hixie> | well they use <meta> |
01:16 | <Lachy_> | oh, they have done that with <meta> thought |
01:17 | <Hixie> | but <element><meta name="foo">bar</meta></element> is supposedly exactly equivalent to <element foo="bar"/> in XHTML2 |
01:17 | <Lachy_> | where is that specified? ;-) |
01:17 | <Hixie> | hah |
01:17 | <Hixie> | i asked steven that in person once |
01:17 | <Hixie> | he told me it wasn't required |
01:18 | <zcorpan_> | it's undefined, like everything else ;) |
01:18 | <Hixie> | i never got him to explain why the spec says about that <title> example that the two are equivalent, if they're not as he claimed to me in person |
01:18 | <Lachy_> | I never got a response to my questions about the equivalence of <title>/<meta name="title'> |
01:18 | <Hixie> | go figure |
01:21 | <othermaciej> | Lachy_: maybe if you were more aligned you would understand |
01:22 | <Lachy_> | understand what? |
01:22 | <othermaciej> | the equivalent of <title>/<meta name="title"> |
01:23 | <othermaciej> | I'm kind of being facetious here |
01:23 | <Hixie> | i still don't get why we would want to _not_ look at concrete technical issues |
01:24 | <Hixie> | but instead pontificate on "interesting" questions |
01:26 | <othermaciej> | well apparently if you do that, you get XHTML2 |
01:34 | <Hixie> | what should the method that does the conneg without doing the play() be called? open() or load() ? |
01:42 | <Dashiva> | Hixie: buffer? preload? Among the two you suggested, I'd take load |
01:44 | <Dashiva> | Or do you mean only a basic HEAD to get the parameters, no content download involved? |
01:44 | <Hixie> | preload() i guess could work too |
01:44 | <Hixie> | though i prefer load(), i think |
08:25 | <krijnh> | Whoops |
08:59 | <Hixie> | gonna go home |
08:59 | <Hixie> | might work some more from home |
09:00 | <dhyatt> | seeya |
09:11 | Looking | up krijnh user info... |
10:39 | <Hixie> | i wonder whether loop() should automatically seek() to the begin point first |
10:43 | <met_> | for video or audio? |
10:44 | <Hixie> | both |
10:44 | <Hixie> | though if you think they should be different, do say |
10:45 | <met_> | when compare with e.g. mp3 players, there you can switch on/off repeat during listening and it contiues play without switching |
10:45 | <met_> | same tape-recorders |
10:45 | <met_> | do not see seek before loop in any system I know |
10:46 | <met_> | dvd players the same I think |
10:47 | <Hixie> | the problem is if you don't seek() when you call loop(), then it's not clear how to either (a) restart a loop, or (b) do a loop with pre- and post-roll sfx |
10:48 | <Hixie> | (a) would require the author to explicitly seek() to start pos when paused before calling loop(), otherwise nothing would happen when you called loop() |
10:49 | <Hixie> | i'm gonna get some sleep, think about it when i get up. |
10:49 | <Hixie> | ttyl |
10:49 | <met_> | gn |
13:10 | <Hixie> | anyone know what "apply sort field" does on a selection in iTunes? |
13:20 | <billmason> | If you have data in one of the "sort" fields on that selection, you can apply that data to songs that match whatever "same-whatever" you choose. Or something like that. |
13:20 | <billmason> | http://blech.vox.com/library/post/sort-fields-in-itunes-71.html is a better explanation |
13:21 | Hixie | reads, hoping it explains it |
13:22 | <billmason> | It has to be more coherent than my ramblings. :) |
13:22 | <billmason> | I don't use it much. The UI doesn't help to discover it. |
13:28 | <Hixie> | wow, yeah, that explained it |
13:28 | <Hixie> | cool |
13:28 | <Hixie> | thanks |
13:28 | <Hixie> | glad that it was just added and i hadn't missed it for ages |
13:31 | <billmason> | you're welcome |
13:43 | <Hixie> | hm |
13:43 | <Hixie> | i just realised |
13:43 | <Hixie> | that in the html5 spec we haven't defined how <script> actually works in XML |
13:43 | <Hixie> | since it's defined to execute when inserted |
13:43 | <Hixie> | and the html5 parser is careful not to insert until the script has been appended |
13:44 | <Hixie> | but that wouldn't work for an xml parser |
14:10 | <othermaciej> | good evening |
14:13 | zcorpan_ | is skipping all the Codec emails |
14:22 | <Hixie> | so othermaciej, if we say that something happens when you parse the </video> tag in HTML5, that still doesn't solve the XML problem |
14:23 | <othermaciej> | Hixie: I don't think we should say that, on further thought |
14:24 | karlUshi | wonders if the ordering in iTunes follows the hiragana japanese ordering. |
14:25 | <Hixie> | so then the problem is what do we wait for to trigger downloads? the 'load' event on body? |
14:45 | <Lachy_> | I don't understand the XML problem regarding the downloading of <video> content |
14:48 | <Hixie> | same as the <script> problem |
14:51 | <Lachy_> | yeah, I don't understand that one either |
14:51 | <Hixie> | so <script> is defined to execute when it's inserted into the document |
14:51 | <Lachy_> | why is it a problem? Why can't you just specify that the script executes as soon as the script element is finished |
14:51 | sayrer | thanks Hixie for his rude email |
14:52 | <othermaciej> | Hixie: anyway, back to </video> |
14:52 | <othermaciej> | here's my proposed rules for fallback |
14:52 | <othermaciej> | 1) at parse time, you process the <source> elements one at a time, the first successful one becomes the content source |
14:53 | <othermaciej> | 2) if you change the contents of <video> in a way that would change which is the first <source> that's successful, redo the fallback algorithm |
14:53 | <othermaciej> | (either change which is first, or change what URL it points to) |
14:53 | <Hixie> | Lachy_: well, there are two options i see: do it on insertion and have the html parser delay insertion until it's filled the child nodes (the script) -- this doesn't handle xml -- or, have different rules for xml, html, and dynamically created elements |
14:54 | <othermaciej> | the specific changes that would trigger #2 include changing type on the first successful <source> or one before it, removing the first successful <source> or one before it, or inserting a <source> before the first successful one |
14:54 | <othermaciej> | but you don't have to limit it |
14:54 | <othermaciej> | can just say that if the same URL ends up being the final src don't make any changes |
14:54 | <Hixie> | othermaciej: i really don't want to have to rerun the algorithm every time you change the DOM. You'd end up firing dozens of HTTP requests only to cancel them. |
14:54 | <sayrer> | option 3: don't specify it because it doesn't work |
14:54 | <Hixie> | othermaciej: and doing things when the DOM changes is a source of constant bugs |
14:54 | <othermaciej> | I don't think you would fire a lot of HTTP requests |
14:54 | <othermaciej> | in the common parsing case, exactly one |
14:55 | <othermaciej> | or zero if no <source> elements have a good type |
14:55 | <Hixie> | othermaciej: i mean in the DOM manipulation case |
14:55 | <Hixie> | e.g. if i am moving <source>s about |
14:55 | <Hixie> | in a DOM inspector or something |
14:55 | <othermaciej> | yes, well, you don't necessarily have to start the load until the particular script in question is done |
14:55 | <Hixie> | i'd much rather have an explicit "look at the elements and start the load" step. |
14:56 | <Hixie> | we can certainly run that algorithm every time you add a <source> element |
14:56 | <othermaciej> | hmm |
14:56 | <othermaciej> | usually rendering reacts to DOM changes without the need to make an explicit call |
14:56 | <Hixie> | which would work fine for load time |
14:56 | <Hixie> | yeah but this isn't just rendering |
14:56 | <Hixie> | i mean, it would interrupt active playback and everything |
14:56 | <Hixie> | and it's a very rare edge case we're talking about |
14:56 | <Hixie> | so it's extra complexity that isn't worth it |
14:57 | <Hixie> | sayrer: regarding the e-mails, apologies if it sounded rude, it wasn't meant that way. your reply seems to be missing a verb in the first sentence which is preventing me from understanding what you mean. |
14:57 | <othermaciej> | haven't thought that deeply about the dynamic case, but I usually prefer things where the state of the document is reflected in the rendering regardless of how you got there |
14:57 | <sayrer> | Hixie: yeah, I skipped "know" |
14:57 | <othermaciej> | even though that can be complicated to implement |
14:57 | <othermaciej> | you are right that swapping two <source> elements you wouldn't want to interrupt the video |
14:57 | <othermaciej> | if it doesn't change which one applies |
14:58 | <othermaciej> | but I think more commonly you'd update the src and type of all the <source> elements in order |
14:58 | <sayrer> | Hixie: "I hate to be the one to break this to you" is pretty much universally interpreted as condescending and rude |
14:58 | <sayrer> | especially when followed by things that everyone knokws |
14:59 | <sayrer> | I should have been clearer with the patent point, though |
14:59 | <sayrer> | if you have to pay someone, that means someone owns something |
15:00 | <sayrer> | which is a pretty good definition of proprietary |
15:00 | <othermaciej> | sayrer: ordering everyone to take patent discussion to a separate list you just created is pretty rude |
15:00 | <sayrer> | othermaciej: I didn't order anyone. I thought it was pretty obviously a joke. |
15:02 | <othermaciej> | sayrer: wasn't obvious to me, since you objected to patent discussion repeatedly |
15:02 | <sayrer> | I do object to it |
15:02 | <sayrer> | I don't think participating in WHATWG should include getting weird legal email from Apple. Sorry. |
15:02 | <othermaciej> | if you don't want to hear about patents you are free to unsubscribe |
15:03 | <Hixie> | just ignore the mails you don't care about, sheesh |
15:03 | <Hixie> | we have to sort out this codec thing, and that means discussing patents |
15:03 | <Hixie> | deal with it |
15:03 | <othermaciej> | however, they are sadly a relevant issue to web standards |
15:03 | <Hixie> | othermaciej: i think you'd want to update the srcs and then when you're done run the algorithm once. |
15:04 | <Hixie> | othermaciej: i don't think you'd want to have the algorithm run as you're updating, with the UA flashing a "no available streams" message for a few milliseconds or something |
15:04 | <othermaciej> | Hixie: that's probably so |
15:04 | <Hixie> | othermaciej: or have the UA start playing one of the previous set of sources or something |
15:04 | <othermaciej> | Hixie: I wish this could be like CSS style resolution |
15:04 | <othermaciej> | where you can change multiple styles |
15:04 | <othermaciej> | but the style recalc only happens after a delay |
15:04 | <othermaciej> | or if you do something that demands the knowledge immediately |
15:04 | <othermaciej> | (happens at next async opportunity that is) |
15:05 | <Hixie> | i dunno, i think it makes sense to just have it be something you have to invoke. trying to see if i can think of other examples of this though. |
15:06 | <Hixie> | one example would be XMLHttpRequest, it doesn't send off the request just because you've updated the headers |
15:06 | <Hixie> | there's an explicit commit step |
15:06 | <Hixie> | (two of them, even, with that API) |
15:06 | <othermaciej> | yes, but explicit sending of a request is what the API is all about, and how network APIs normally work |
15:06 | <Hixie> | i dunno, we can make it watch mutations... it just seems painful |
15:07 | <othermaciej> | updating the rendering to reflect the markup is how display in browsers normally works |
15:07 | <othermaciej> | even if some loads are involved |
15:07 | <Hixie> | as a general rule i wouldn't put too much stock in precedent of how html works :-P |
15:07 | <othermaciej> | I agree that having to explicitly update sounds easier to implement |
15:07 | <othermaciej> | but it also seems unwebby |
15:08 | <othermaciej> | anyway my opinion on this point isn't that strong, either way it will be better than <object> |
15:09 | <Hixie> | fwiw, for some precedent the other way, <script> doesn't reexecute when you change it. |
15:10 | <Hixie> | does changing <param> elements respawn the <object>'s plugin? |
15:10 | <othermaciej> | no |
15:11 | <othermaciej> | not even changing the data attribute changes the contents, I believe |
15:11 | <Hixie> | hm, html5 says to relaunch plugin when data= or type= change, but ignores changes to <param> |
15:11 | <Hixie> | might need to look into that at some point then |
15:13 | <Hixie> | i'm gonna say changing the <source>s doesn't change the <video>, but we can change that later if we want. no biggie. |
15:13 | <othermaciej> | ultimately I think we want something that works in the dynamic case (after all, it's "Web Apps 1.0") but that seems ok for starters |
15:14 | <Hixie> | oh well don't get me wrong |
15:14 | <Hixie> | there's already a method to manually trigger the algorithm |
15:14 | <Hixie> | you just call video.load() and it redoes it all |
15:14 | <othermaciej> | oh |
15:14 | <othermaciej> | that seems ok |
15:14 | <Hixie> | the question is just whether to implicitly call that for anything |
15:14 | <Hixie> | the problem is what to call it for during parse time |
15:15 | Lachy_ | wonders how these test cases are useful and why they were posted to public-html? http://accessibleinter.net/html/testcases/ |
15:15 | <Hixie> | wait for document load event? hook it into the parser? |
15:16 | <othermaciej> | I think at parse time loading the first successful one you see is fine |
15:16 | <Hixie> | oh, right, we can still do that, yeah |
15:16 | <othermaciej> | explicit load() can be required only if you change things after one has succeeded |
15:17 | <Hixie> | yeah |
15:25 | <billmason> | Lachy_: I don't know either, and because I was asked to. |
15:25 | KevinMarks | reads scrollback |
15:26 | <Lachy_> | I don't recommend blindly doing everything you are asked to do |
15:26 | <KevinMarks> | so alternates for video are now in <source> |
15:26 | <Hixie> | yeah |
15:26 | <Hixie> | i'm speccing it now |
15:26 | <Hixie> | should be done in an hour or so |
15:27 | <Lachy_> | billmason: test cases are useful when trying to determine support for some specific feature in browsers and when they have clear pass/fail conditions. |
15:28 | <KevinMarks> | dang, what a backlog of comments |
15:28 | <Lachy_> | in the case of abbr/acronym, browser support is well known already, and your test cases don't specify any pass/fail conditions |
15:30 | <billmason> | You're not telling me anything I don't know, I'm afraid. |
15:30 | <KevinMarks> | have you looked at hreflang on source as a possible choice driver? |
15:30 | <sayrer> | hehe, it gets better and better |
15:31 | <sayrer> | content negotiation ftw |
15:31 | <KevinMarks> | QT's content alternatives stuff supports that |
15:31 | <Hixie> | KevinMarks: this is purely about getting the right codec, if you want to do language selection, just offer the languages to your users |
15:31 | <Hixie> | or use HTTP Accept-Language |
15:32 | <sayrer> | oh speaking of QT, is ok to do stuff in the <video> that isn't strictly video? |
15:32 | <Hixie> | like what? |
15:32 | <sayrer> | like, can I put Flash movie in it? |
15:32 | <Hixie> | you mean an FLV file? |
15:32 | <sayrer> | or an interactive QT thing? |
15:32 | <Hixie> | sure |
15:32 | <Hixie> | if your browser supports the FLV codecs |
15:32 | <Hixie> | (which truly _are_ proprietary, unlike MPEG4) |
15:32 | <sayrer> | no, I mean full on flash movies |
15:32 | <KevinMarks> | well, the microformat draft did do that: |
15:32 | <KevinMarks> | http://microformats.org/wiki/alternates#Strawman_6_.28lists_.2B_explicit_alternator_.2B_using_existing_HTML_idiom.29 |
15:33 | <Hixie> | you mean flash applications? as in swf files? |
15:33 | <Hixie> | no |
15:33 | <sayrer> | yep |
15:33 | <sayrer> | ok, does the spec say that? |
15:33 | <Hixie> | not sure what it would say |
15:33 | <Hixie> | it won't work, because the UA won't support that codec |
15:33 | <sayrer> | does it also rule out the quicktime stuff, and any other weird interactive technologies? |
15:33 | <Hixie> | because it's not a codec |
15:34 | <sayrer> | well, some mime types imply a codec |
15:34 | <Hixie> | if UAs want to work out what it would mean for that to work, i personally wish them luck |
15:34 | <Hixie> | i don't see any reason to disallow it |
15:34 | <sayrer> | (not trying to be a jerk... this will happen eventually) |
15:34 | <Hixie> | actually, the spec does require one thing |
15:34 | <Hixie> | it requise that the playback position increase monotonically |
15:35 | <Hixie> | requires |
15:35 | <sayrer> | ah, that's good |
15:35 | <Hixie> | which pretty much throws out all that stuff |
15:35 | <sayrer> | not too clear that stuff like DVD menus is out |
15:35 | <KevinMarks> | chapters are useful, but they are hard to make now |
15:35 | <Hixie> | well anyway |
15:36 | <Hixie> | <source> is the current topic at hand |
15:36 | <Hixie> | (as far as editing goes) |
15:36 | <Hixie> | (feel free to discuss other things amongst yourselves!) |
15:36 | <sayrer> | (well that won't work, no one has done it yet) |
15:37 | <KevinMarks> | got ot get my train |
15:38 | <dhyatt> | sayrer: btw not sure why you're ratholing on patents |
15:38 | <dhyatt> | sayrer: maciej raised a technical objection to theora as well |
15:38 | <dhyatt> | sayrer: but you just assumed he was talking about patents again when he wasn't |
15:38 | <sayrer> | dyhatt: I saw one about hardware playback? |
15:38 | <dhyatt> | correct. |
15:38 | <Hixie> | oh god, yeah, theora is doomed on hardware-constrained devices |
15:38 | <dhyatt> | you can't play video using theora in software on low end devices |
15:39 | <Hixie> | without hardware support there's no way |
15:39 | <dhyatt> | and even on those where you could sort of do it, the battery drain would be unacceptable |
15:39 | <sayrer> | dhyatt: I asked if something about theora prevented hardware playback |
15:39 | <Hixie> | yeah really |
15:39 | <dhyatt> | you *need* hardware support right now |
15:39 | <dhyatt> | this is a really serious issue that people are glossing over |
15:39 | <dhyatt> | theora chips aren't going to magically materialize any time soon |
15:39 | <Hixie> | sayrer: nothing prevents it, but it's academic if there are no hardware chips (there aren't any) |
15:39 | <sayrer> | I asked a direct question about it |
15:40 | <sayrer> | I'm not glossing over it |
15:40 | <dhyatt> | anway my point was just that maciej is mainly concerned about that |
15:40 | <dhyatt> | not about patents |
15:40 | <dhyatt> | there are sound technical reasons to object to theora |
15:40 | <dhyatt> | ranging from tools for putting video together not supporting it to hardware playback to etc |
15:41 | <sayrer> | certainly there are sound reasons to refuse it as the /only/ option |
15:41 | <dhyatt> | although maybe the former is not a big deal and i am just ignorant there :) |
15:41 | <dhyatt> | my opinion is that we shouldn't even mandate a baseline codec |
15:41 | <sayrer> | which some have suggested |
15:41 | <dhyatt> | since <img> doesn't do that |
15:42 | <dhyatt> | telling mobile devices that can play mpeg in hardware but nothing else that they just can't support the <video> element because they don't do theora is crazy imo |
15:42 | <sayrer> | well, they wouldn't be compliant |
15:42 | <Hixie> | oh the spec already allows you to not do ogg theora if you can't |
15:42 | <dhyatt> | ah ok |
15:42 | <Hixie> | it's a should-level requirement only at the moment |
15:42 | <dhyatt> | got it |
15:42 | <sayrer> | yes, you changed it |
15:42 | <Hixie> | (it has never been a must) |
15:42 | <sayrer> | the question is whether that's interesting when the spec is four years out |
15:44 | <sayrer> | Hixie: there is a comment in there about it not being a must. I assumed you had changed it from some previous state. |
15:44 | <Hixie> | nope |
15:44 | <sayrer> | there is a comment in there, right? |
15:44 | <sayrer> | "this isn't a must because of legal issues" |
15:46 | <Hixie> | there's a comment, yes |
15:47 | <Hixie> | it's to remind me of why it's a should, should anyone try to convince me to change it to a must :-) |
15:47 | <Hixie> | i used to not leave notes to myself, and then i ended up in loops where i'd respond to feedback from one person, go must->should, a year later i'd go should->must, and back and forth year after year |
15:47 | <Hixie> | until i realised what was going on |
15:48 | <Hixie> | and now i put guards against that in these kinds of situations |
15:49 | <tylerr> | Morning everyone. |
15:55 | <zcorpan_> | morning tylerr |
15:56 | <tylerr> | Hey there zcorpan_, how was the rest of the day yesterday? |
15:56 | <zcorpan_> | fine i guess |
15:57 | <tylerr> | Good good, any plans for the (rest of the) day? |
15:58 | <zcorpan_> | yeah, i'll play duke nukem 3d at "damn i'm good" :D |
15:59 | <zcorpan_> | i'm almost through the second episode |
16:01 | <zcorpan_> | what about you? |
16:03 | <tylerr> | Just got into the office and have to clean up the work of another vendor that our client has building pages. It's rather frustrating seeing a professional vendor produce such garbage pages. |
16:59 | <Hixie> | tada! |
16:59 | <Hixie> | spec updated for <source> |
17:03 | <othermaciej> | woo hoo |
17:05 | <othermaciej> | I see you also split out the media element generic stuff from <video> |
17:08 | <Hixie> | yeah |
17:08 | <Hixie> | gonna collapse <audio> and Audio() |
17:08 | <Hixie> | and make them inherit from HTMLAudioElement like in your propasl |
17:14 | <othermaciej> | cool |
17:16 | <othermaciej> | I guess I will wait til you are done adding stuff to compare the result to our proposal w/ my Apple cohorts and to raise any issues |
17:17 | <othermaciej> | and after that I will raise for discussion features we did not even propose a spec for, like metadata access, track info, timed text support, etc |
17:17 | <othermaciej> | although I am not sure it is worth raising such things on the whatwg list w/o a spec proposal |
17:17 | <othermaciej> | since there don't seem to be a lot of media experts there, either that or they don't want to chime in |
17:17 | <othermaciej> | hello KevinMarks |
17:18 | <Hixie> | feel free to raise use cases and feature requests |
17:18 | <KevinMarks> | hi |
17:18 | <KevinMarks> | sorry, I should review it, I have had a hectic couple of days |
17:18 | <Hixie> | i'll talk to the various experts i have access to (including apple people if they'll talk to me), look at existing apis, and see what we can come up with |
17:18 | <Hixie> | don't review it today |
17:19 | <Hixie> | tomorrow it should be in better state |
17:19 | <KevinMarks> | OK |
17:19 | <Hixie> | i'm slowly merging a bunch of the apple proposals |
17:19 | <othermaciej> | did you mean the stuff in the whatwg spec or apple's proposals? |
17:19 | <othermaciej> | apple's proposals aren't going to change, so you can read them, but Hixie is changing some stuff as he merges it in |
17:19 | <Hixie> | oh sorry i assumed he meant the whatwg spec |
17:19 | <KevinMarks> | I read the main apple one |
17:20 | <KevinMarks> | but I haven't read the whatwg spec recently, though I did plough through some of ian's mmaoth collations |
17:20 | <KevinMarks> | *mammoth |
17:20 | <Hixie> | hehe |
17:20 | <othermaciej> | one important but minor point is that time should really be floating point (and so probably seconds) instead of integer milliseconds |
17:20 | <Hixie> | ew, really? |
17:20 | <othermaciej> | I can write an email explaining why if you want |
17:20 | <othermaciej> | well, it wasn't an accident that our spec had it that way |
17:20 | <Hixie> | i'll change it, but, i'd love to see the reasoning, yes |
17:21 | <Hixie> | when i looked at it it seemed like a really bad idea |
17:21 | <othermaciej> | 1) milliseconds are not precise enough for audio |
17:21 | <Hixie> | precise enough to do what with audio? |
17:21 | <KevinMarks> | get the right sample |
17:21 | <othermaciej> | 2) using integer milliseconds you start getting roundoff error accumulation |
17:21 | <KevinMarks> | really, you want to use fractions like QT does |
17:21 | <othermaciej> | audio has very high sample rates |
17:22 | <othermaciej> | yeah, rational numbers of some kind would work best |
17:22 | <othermaciej> | we are still discussing a proposal for that |
17:22 | <othermaciej> | it's hard to come up w/ something sane |
17:22 | <Hixie> | floats in general seem like a really bad idea due to the loss in precision as you go higher |
17:22 | <KevinMarks> | yes |
17:22 | <othermaciej> | well, JS numbers are all floats anyway |
17:22 | <Hixie> | (not to mention the general disaster that floats give you) |
17:22 | <Hixie> | but ok |
17:22 | <KevinMarks> | and video frames are actually 30000/1001 per second in the US |
17:23 | <othermaciej> | television video signals, yes |
17:23 | <othermaciej> | thus the wonder that is smpte drop frames |
17:23 | <Hixie> | to be honest i wasn't seeing seeking to precise frames and audio samples as a feature with demand |
17:23 | <Hixie> | all the seeking i've seen happen seems to just be for scrub bars |
17:23 | <KevinMarks> | and chapters |
17:23 | <othermaciej> | we'd like something that can at least be extended to pro-type applications in the future |
17:24 | <KevinMarks> | I need to write up something on chapters |
17:24 | <othermaciej> | even if it doesn't handle them in the HTML5 version |
17:24 | <KevinMarks> | HTML EDLs? |
17:24 | <othermaciej> | we had a vague comment on chapters in our open issues list |
17:24 | <Hixie> | lord, i hope y'all don't want to reimplement Final Cut Express in HTML |
17:24 | <KevinMarks> | chapters are a common case for podcasts |
17:25 | <KevinMarks> | little running order posts with time offsets |
17:25 | <othermaciej> | I doubt FCE is coming but a simple video editor web app might not be out of the question |
17:25 | <KevinMarks> | maybe that's a microformat rather than an html 5 feature |
17:25 | <othermaciej> | or something to review HD video dailies |
17:25 | <Hixie> | how high can JS Numbers go before they lose too much precision for accurate seeking? |
17:26 | <othermaciej> | they are IEEE floating point doubles, they can go pretty high |
17:26 | <Hixie> | k |
17:26 | <KevinMarks> | they are 64 bit? |
17:26 | <othermaciej> | 52 bit mantissa, 11 bit exponent, 1 bit sign |
17:27 | <othermaciej> | not sure if that is sufficient even for streaming applications where you leave the stream running for days |
17:27 | <othermaciej> | but there you don't generally support seeking anyway |
17:27 | <KevinMarks> | and you have to futz with the samples to stay in sync cos of the 2 clocks problem |
17:28 | KevinMarks | is getting fashbacks |
17:28 | <othermaciej> | I don't think our proposal is totally ready for the streaming case |
17:28 | <KevinMarks> | it's marginal anyway... |
17:28 | <othermaciej> | web video chat? |
17:28 | <othermaciej> | live broadcasts? |
17:29 | <KevinMarks> | hm, maybe |
17:29 | <othermaciej> | internet radio? |
17:29 | <KevinMarks> | that got killed |
17:30 | <KevinMarks> | they have indefinite duration |
17:30 | <KevinMarks> | I think you covered that |
17:30 | <othermaciej> | if you want 10 digits after the decimal, IEEE double is enough for a 139,461 year long stream |
17:30 | <othermaciej> | so probably more than enough |
17:31 | <othermaciej> | we did cover indefinite duration |
17:31 | <othermaciej> | did not really cover inability to seek or some of the other grungy details |
17:34 | <KevinMarks> | Hixie, did I show you my example fo a qt movie with chapters? |
17:34 | <Hixie> | no? |
17:35 | <othermaciej> | KevinMarks: do you have in mind chapters that exist as metadata in the media file, or external chapters that just link a name to some point in time? |
17:35 | <Hixie> | othermaciej: btw did you have a list of names i should add to the acknowledgements of people who wrote your proposal? |
17:35 | <othermaciej> | Hixie: I'm not sure they all want to be credited but I'll ask |
17:35 | <KevinMarks> | http://epeus.blogspot.com/2007/01/iphones-great-step-back-from-ichat.html |
17:35 | <Hixie> | othermaciej: k |
17:36 | <Hixie> | othermaciej: (i generally add anyone who says anything that results in the spec changing, whether the change is what they wanted or not, and whether they want to be associated with the spec or not) |
17:36 | <Hixie> | right, converted to floats/seconds |
17:37 | <KevinMarks> | not in the media file. I think specifying them in the html, so that your soft controller can do the chapterlist thing |
17:37 | <KevinMarks> | maybe they're just a <select> |
17:39 | <othermaciej> | KevinMarks: but in your example I assume the chapters are in the media file? |
17:39 | <KevinMarks> | they aren't in apple's media file |
17:40 | <othermaciej> | for chapters purely in html, you don't really need special support |
17:40 | <KevinMarks> | I authored them in apple's not-quite xml format, and rendered them into a movie |
17:40 | <othermaciej> | unless you somehow want to feed them into native controller UI |
17:40 | <othermaciej> | for chapters in the media file, you want a metadata API to get the names, and to seek to chapter by name |
17:41 | <KevinMarks> | http://docs.info.apple.com/article.html?path=QuickTime%20Player/7.0/en/c3qt20.html |
17:42 | <KevinMarks> | hm, I think that used to have screenchots in |
17:47 | <KevinMarks> | here's the timestamp format |
17:47 | <KevinMarks> | http://developer.apple.com/documentation/QuickTime/RM/ImportExport/DataExchange/F-Chapter/chapter_6_section_7.html |
17:51 | <othermaciej> | we wanted to put a way to use that timestamp format in the API to specify times |
17:51 | <othermaciej> | and in the CSS stuff |
17:51 | <othermaciej> | didn't have time to spec it out before publishing though |
17:52 | <othermaciej> | (not necessarily the brackets, but the genral idea of a clock time with fractional seconds) |
17:52 | <Hixie> | yeah maybe we need a helper function like atob() |
17:52 | <Hixie> | ctos() (clock to seconds) |
17:52 | <othermaciej> | we thought conversion functions back and forth might cut it, yeah |
17:52 | <Hixie> | ctos('22h33m21s.02') |
17:53 | <Hixie> | though some people have said they need to be able te specify exact frames in video |
17:53 | <othermaciej> | I think 22:33:21:0.02 is more legible |
17:53 | <Hixie> | for which that wouldn't work |
17:53 | <Hixie> | either's fine |
17:53 | <othermaciej> | for exact frames you basically need a frame number, since some formats have variable-duration frames |
17:53 | <Hixie> | (the h/m/s/. format has the advantage of allowing you to omit seconds) |
17:54 | <KevinMarks> | dear god, what is that xml format it exports? |
17:54 | <Hixie> | yeah |
17:55 | <KevinMarks> | http://homepage.mac.com/kevinmarks/macworld2007.txt is the text version |
17:55 | <KevinMarks> | which could map to HTML cleanly IMO |
17:55 | <KevinMarks> | http://homepage.mac.com/kevinmarks/macworld2007.xml is a total rats nest |
17:57 | <othermaciej> | yeah, with colons you can only omit from the larger unit |
17:57 | <KevinMarks> | timeScale="30" s the key |
17:57 | <othermaciej> | but that is generally ok |
17:57 | <othermaciej> | it is also more likely to be what you want to display to the user |
17:57 | <othermaciej> | though I guess Date already has format capabilities |
17:58 | <Hixie> | in this locale, at least |
17:58 | <Hixie> | in french locale, 7h20m10s is quite common |
17:58 | <Hixie> | at least for wallclock |
17:58 | <KevinMarks> | is the interval version of Date in javascript? |
17:58 | <othermaciej> | JavaScript Dates are absolute times, not time intervals |
17:59 | <othermaciej> | I don't think there is a way to represent a time interval, other than a number |
18:01 | <KevinMarks> | there is in 8601 iirc |
18:01 | hsivonen | tries not be too snide when replying to a message motivated by failure to comprehend Apple's lawyer talk |
18:01 | <hsivonen> | seriously, software and Web design people should learn to parse lawyer speak |
18:02 | <Hixie> | 8601 isn't a standard |
18:02 | <hsivonen> | this working around of patent ghosts where there's no reason to work around is silly |
18:02 | <KevinMarks> | http://www.faqs.org/rfcs/rfc3339.html |
18:02 | <KevinMarks> | then |
18:02 | <Hixie> | it's the result of a brainstorming session |
18:02 | <KevinMarks> | though that is only decimal seconds |
18:03 | <Hixie> | (i'm being facetious, but seriously, who the hell did 8601, it's ridiculous) |
18:03 | <KevinMarks> | yes, it is a bit overbroad |
18:04 | <KevinMarks> | rfc3339 is a more sensible subset |
18:13 | <Hixie> | ok, behold <audio>. |
18:13 | <hasather> | hehe: http://my.opera.com/hallvors/blog/2007/03/23/hp-com-no-clue-noscript |
18:14 | <hsivonen> | wow |
18:15 | <Hixie> | need to add looping then we can retire Audio() |
18:15 | <Hixie> | (with new Audio() creating an HTMLAudioElement instead) |
18:18 | <Hixie> | othermaciej? |
18:18 | <Hixie> | othermaciej: do you know the use case for loopStartTime/loopEndTime? |
18:19 | <Hixie> | i guess if your audio samples are from one file |
18:20 | <othermaciej> | Hixie: yeah, if you want multiple samples from one file; we also have the possibility of intro and outro besides the looping section but that might be excessive |
18:21 | <othermaciej> | but at least the lead-in can be useful for some background sound-effects |
18:21 | <othermaciej> | intro then loop |
18:21 | <Hixie> | true |
18:21 | <othermaciej> | loopEndTime is mainly for symmetry |
18:21 | <Hixie> | so should we have start/end, start/loopStart/end, or start/end/loopStart/loopEnd? |
18:22 | <Hixie> | or should we do looping simply by providing a cue point api |
18:22 | <Hixie> | and requiring people to do it themeselves? |
18:23 | <othermaciej> | programmatic looping is more likely to glitch |
18:23 | <Hixie> | audio.addCuePoint(93.3, function () { audio.seek(12.0); }); |
18:23 | <Hixie> | yeah |
18:23 | <Hixie> | true |
18:23 | <othermaciej> | especially if you are discarding buffers, or for audio |
18:23 | <othermaciej> | for audio especially even dropping one sample (at a very high sample rate) can audibly glitch |
18:23 | <Hixie> | yeah |
18:24 | <othermaciej> | CuePoint sounds like a better name than TimeTrigger (which is what we had) |
18:24 | <Hixie> | cool, i'll use CuePoint then (i think i have CueMark in the comments right now) |
18:24 | <Hixie> | how about semi-declarative cue points, as in audio.addAutoSeekCuePoint(99.3, 12.0) |
18:24 | <Hixie> | i guess that wouldn't do finite looping |
18:24 | <Hixie> | ok so we need something |
18:25 | <Hixie> | start/end/loopStart/loopEnd, i guess |
19:07 | <tylerr> | hsivonen: We need a <legal> tag that auto-parses. ;) |
19:09 | <hendry> | "Leading the Forefront - with IRC ! ?" lol |
19:10 | <tylerr> | :-) |
20:05 | <othermaciej> | good morning |
20:25 | <zcorpan_> | othermaciej: morning |
20:45 | <othermaciej> | hello zcorpan_ |
21:08 | <zcorpan_> | Hixie: there are three IDs "video" in the spec |
21:09 | <krijnh> | Still? |
21:10 | <zcorpan_> | yes |
21:17 | <zcorpan_> | "Perhaps not, but this will: applet { display: none !important; }" LOL |
21:31 | zcorpan_ | updated html5-elements |