Re: [whatwg] Why does CanvasRenderingContext2D.drawImage not draw a video's poster?

2012-07-25 Thread Charles Pritchard
On Jul 21, 2012, at 1:20 PM, Silvia Pfeiffer silviapfeiff...@gmail.com wrote:

 
 I'm not opposed to the idea, but I'm failing to see the benefit.
 
 The advantage clearly is that if you have a canvas that is copying
 data out of the video, it includes the poster without having to write
 custom code for it. The poster is an integral part of the video (it's
 not distinguishable by the user whether it is a separate picture or a
 frame from the video), so I don't see why it should need custom
 handling.



Canvas is a lot of low level custom code. As a polyfill, it seems that Canvas 
coders ought to consider checking for a poster attribute in their code path 
regardless of how this goes.


 
 Still, if
 there's going to be one, we're going to need an onposterloaded event.
 
 Why? onmetadataloaded provides a sufficiently stable stuation: either
 the poster img or video frame is then loaded (if @preload is not
 none) or it's black (if @poster is not set and @preload is none).


Seems like a good place to spec this. +1.

I'm not up to speed on the video spec, but if this behavior for poster is not 
in there, consider proposing it to the editor(s).

-Charles

Re: [whatwg] Why does CanvasRenderingContext2D.drawImage not draw a video's poster?

2012-07-21 Thread Silvia Pfeiffer
On Thu, Jul 19, 2012 at 2:46 AM, Charles Pritchard ch...@jumis.com wrote:
 On 7/17/2012 11:06 PM, Silvia Pfeiffer wrote:

 On Wed, Jul 18, 2012 at 6:57 AM, Charles Pritchard ch...@jumis.com
 wrote:

 On Jul 17, 2012, at 9:04 PM, Mark Callow callow_m...@hicorp.co.jp
 wrote:

 On 18/07/2012 00:17, Silvia Pfeiffer wrote:

 I think this is simply an idea that hasn't been raised before. I like
 it. Though even then sometimes there may be nothing when there is no
 explicit poster and preload is set to none.

 The language gives me the impression that drawing nothing was a
 deliberate choice, in particular because later on it says:


 We don't have events based on poster, so we don't know whether or not
 it's been loaded. Poster is meant for the video implementation. We use other
 events to know if video is playing.

 So as a coder, I can just do an attribute check to see if poster exists,
 then load it into an image tag. It's a normal part of working with Canvas.
 We always follow onload events.

 IIUC, that still excludes the case where there is no @poster attribute
 set on video, @autoplay is set to none, and the browsers load the
 first frame as the poster. It would make sense in this case to hand
 that poster to the canvas. And it would make it easier if the
 explicitly set @poster attribute would be used, too, so you don't have
 to do that by hand.


 We need more data if we're going to try that, and I'm still rather timid on
 the idea though it would be nice if img would load the first frame of
 video (and .gif for that matter).

 We really don't know what the browser is going to show if it's not showing a
 poster. It could show an arbitrary frame, it could show some kind of frame
 with a blur or opacity change, it could add on various controls.

This is all theoretical. In practice, all browsers show a black frame,
since no other frame is actually available.


 I'm not opposed to the idea, but I'm failing to see the benefit.

The advantage clearly is that if you have a canvas that is copying
data out of the video, it includes the poster without having to write
custom code for it. The poster is an integral part of the video (it's
not distinguishable by the user whether it is a separate picture or a
frame from the video), so I don't see why it should need custom
handling.

 Still, if
 there's going to be one, we're going to need an onposterloaded event.

Why? onmetadataloaded provides a sufficiently stable stuation: either
the poster img or video frame is then loaded (if @preload is not
none) or it's black (if @poster is not set and @preload is none).

I don't follow the objections.

Cheers,
Silvia.


Re: [whatwg] Why does CanvasRenderingContext2D.drawImage not draw a video's poster?

2012-07-18 Thread Silvia Pfeiffer
On Wed, Jul 18, 2012 at 6:57 AM, Charles Pritchard ch...@jumis.com wrote:
 On Jul 17, 2012, at 9:04 PM, Mark Callow callow_m...@hicorp.co.jp wrote:

 On 18/07/2012 00:17, Silvia Pfeiffer wrote:
 I think this is simply an idea that hasn't been raised before. I like
 it. Though even then sometimes there may be nothing when there is no
 explicit poster and preload is set to none.
 The language gives me the impression that drawing nothing was a
 deliberate choice, in particular because later on it says:


 We don't have events based on poster, so we don't know whether or not it's 
 been loaded. Poster is meant for the video implementation. We use other 
 events to know if video is playing.

 So as a coder, I can just do an attribute check to see if poster exists, then 
 load it into an image tag. It's a normal part of working with Canvas. We 
 always follow onload events.

IIUC, that still excludes the case where there is no @poster attribute
set on video, @autoplay is set to none, and the browsers load the
first frame as the poster. It would make sense in this case to hand
that poster to the canvas. And it would make it easier if the
explicitly set @poster attribute would be used, too, so you don't have
to do that by hand.

Silvia.


Re: [whatwg] Why does CanvasRenderingContext2D.drawImage not draw a video's poster?

2012-07-18 Thread Charles Pritchard

On 7/17/2012 11:06 PM, Silvia Pfeiffer wrote:

On Wed, Jul 18, 2012 at 6:57 AM, Charles Pritchard ch...@jumis.com wrote:

On Jul 17, 2012, at 9:04 PM, Mark Callow callow_m...@hicorp.co.jp wrote:


On 18/07/2012 00:17, Silvia Pfeiffer wrote:

I think this is simply an idea that hasn't been raised before. I like
it. Though even then sometimes there may be nothing when there is no
explicit poster and preload is set to none.

The language gives me the impression that drawing nothing was a
deliberate choice, in particular because later on it says:


We don't have events based on poster, so we don't know whether or not it's been 
loaded. Poster is meant for the video implementation. We use other events to 
know if video is playing.

So as a coder, I can just do an attribute check to see if poster exists, then 
load it into an image tag. It's a normal part of working with Canvas. We always 
follow onload events.

IIUC, that still excludes the case where there is no @poster attribute
set on video, @autoplay is set to none, and the browsers load the
first frame as the poster. It would make sense in this case to hand
that poster to the canvas. And it would make it easier if the
explicitly set @poster attribute would be used, too, so you don't have
to do that by hand.


We need more data if we're going to try that, and I'm still rather timid 
on the idea though it would be nice if img would load the first frame 
of video (and .gif for that matter).


We really don't know what the browser is going to show if it's not 
showing a poster. It could show an arbitrary frame, it could show some 
kind of frame with a blur or opacity change, it could add on various 
controls.


I'm not opposed to the idea, but I'm failing to see the benefit. Still, 
if there's going to be one, we're going to need an onposterloaded event.




Re: [whatwg] Why does CanvasRenderingContext2D.drawImage not draw a video's poster?

2012-07-18 Thread Mark Callow
On 18/07/2012 13:57, Charles Pritchard wrote:

 We don't have events based on poster, so we don't know whether or not it's 
 been loaded.

On 19/07/2012 09:46, Charles Pritchard wrote:
 I'm not opposed to the idea, but I'm failing to see the benefit.
 Still, if there's going to be one, we're going to need an
 onposterloaded event.

I don't understand these concerns. Step 4 of the algorithm to be run
when the video element is created or the @poster attribute is set,
changed or removed says:

Fetch

http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch
the resulting absolute URL

http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#absolute-url,
from the element's |Document

http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#document|'s
origin

http://www.whatwg.org/specs/web-apps/current-work/multipage/origin-0.html#origin.
This must delay the load event

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#delay-the-load-event
of the element's document.

So once the documented is loaded, the poster, if there is one, will be
available.

Regards

-Mark

-- 
注意:この電子メールには、株式会社エイチアイの機密情報が含まれている場合
が有ります。正式なメール受信者では無い場合はメール複製、 再配信または情
報の使用を固く禁じております。エラー、手違いでこのメールを受け取られまし
たら削除を行い配信者にご連絡をお願いいたし ます。

NOTE: This electronic mail message may contain confidential and
privileged information from HI Corporation. If you are not the intended
recipient, any disclosure, photocopying, distribution or use of the
contents of the received information is prohibited. If you have received
this e-mail in error, please notify the sender immediately and
permanently delete this message and all related copies.





Re: [whatwg] Why does CanvasRenderingContext2D.drawImage not draw a video's poster?

2012-07-18 Thread Charles Pritchard
What do we do when the document has already loaded and we've added a new video 
element? Also, the concern was about elements that do not have a poster 
attribute defined: the section you mentioned would not be relevant.

I'm all for inclusiveness: I need to meet obligations of programmatic 
availability.

-Charles



On Jul 18, 2012, at 9:14 PM, Mark Callow callow_m...@hicorp.co.jp wrote:

 On 18/07/2012 13:57, Charles Pritchard wrote:
 
 We don't have events based on poster, so we don't know whether or not it's 
 been loaded.
 
 On 19/07/2012 09:46, Charles Pritchard wrote:
 I'm not opposed to the idea, but I'm failing to see the benefit.
 Still, if there's going to be one, we're going to need an
 onposterloaded event.
 
 I don't understand these concerns. Step 4 of the algorithm to be run
 when the video element is created or the @poster attribute is set,
 changed or removed says:
 
Fetch

 http://www.whatwg.org/specs/web-apps/current-work/multipage/fetching-resources.html#fetch
the resulting absolute URL

 http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#absolute-url,
from the element's |Document

 http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#document|'s
origin

 http://www.whatwg.org/specs/web-apps/current-work/multipage/origin-0.html#origin.
This must delay the load event

 http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#delay-the-load-event
of the element's document.
 
 So once the documented is loaded, the poster, if there is one, will be
 available.
 
 Regards
 
-Mark
 
 -- 
 注意:この電子メールには、株式会社エイチアイの機密情報が含まれている場合
 が有ります。正式なメール受信者では無い場合はメール複製、 再配信または情
 報の使用を固く禁じております。エラー、手違いでこのメールを受け取られまし
 たら削除を行い配信者にご連絡をお願いいたし ます。
 
 NOTE: This electronic mail message may contain confidential and
 privileged information from HI Corporation. If you are not the intended
 recipient, any disclosure, photocopying, distribution or use of the
 contents of the received information is prohibited. If you have received
 this e-mail in error, please notify the sender immediately and
 permanently delete this message and all related copies.
 
 
 


[whatwg] Why does CanvasRenderingContext2D.drawImage not draw a video's poster?

2012-07-17 Thread Mark Callow
The spec. for CanvasRenderingContext2D.drawImage says draw nothing when
a video element's readyState is  HAVE_NOTHING or HAVE_METADATA. I was
wondering why this was chosen vs. drawing the poster. A search in the
list archive didn't turn up any discussion or explanation.

Regards

-Mark

-- 
注意:この電子メールには、株式会社エイチアイの機密情報が含まれている場合
が有ります。正式なメール受信者では無い場合はメール複製、 再配信または情
報の使用を固く禁じております。エラー、手違いでこのメールを受け取られまし
たら削除を行い配信者にご連絡をお願いいたし ます。

NOTE: This electronic mail message may contain confidential and
privileged information from HI Corporation. If you are not the intended
recipient, any disclosure, photocopying, distribution or use of the
contents of the received information is prohibited. If you have received
this e-mail in error, please notify the sender immediately and
permanently delete this message and all related copies.



Re: [whatwg] Why does CanvasRenderingContext2D.drawImage not draw a video's poster?

2012-07-17 Thread Silvia Pfeiffer
I think this is simply an idea that hasn't been raised before. I like
it. Though even then sometimes there may be nothing when there is no
explicit poster and preload is set to none.

Regards,
Silvia.

On Tue, Jul 17, 2012 at 9:58 AM, Mark Callow callow_m...@hicorp.co.jp wrote:
 The spec. for CanvasRenderingContext2D.drawImage says draw nothing when
 a video element's readyState is  HAVE_NOTHING or HAVE_METADATA. I was
 wondering why this was chosen vs. drawing the poster. A search in the
 list archive didn't turn up any discussion or explanation.

 Regards

 -Mark

 --
 注意:この電子メールには、株式会社エイチアイの機密情報が含まれている場合
 が有ります。正式なメール受信者では無い場合はメール複製、 再配信または情
 報の使用を固く禁じております。エラー、手違いでこのメールを受け取られまし
 たら削除を行い配信者にご連絡をお願いいたし ます。

 NOTE: This electronic mail message may contain confidential and
 privileged information from HI Corporation. If you are not the intended
 recipient, any disclosure, photocopying, distribution or use of the
 contents of the received information is prohibited. If you have received
 this e-mail in error, please notify the sender immediately and
 permanently delete this message and all related copies.



Re: [whatwg] Why does CanvasRenderingContext2D.drawImage not draw a video's poster?

2012-07-17 Thread Charles Pritchard
On Jul 17, 2012, at 9:04 PM, Mark Callow callow_m...@hicorp.co.jp wrote:

 On 18/07/2012 00:17, Silvia Pfeiffer wrote:
 I think this is simply an idea that hasn't been raised before. I like
 it. Though even then sometimes there may be nothing when there is no
 explicit poster and preload is set to none.
 The language gives me the impression that drawing nothing was a
 deliberate choice, in particular because later on it says:


We don't have events based on poster, so we don't know whether or not it's been 
loaded. Poster is meant for the video implementation. We use other events to 
know if video is playing.

So as a coder, I can just do an attribute check to see if poster exists, then 
load it into an image tag. It's a normal part of working with Canvas. We always 
follow onload events.


-Charles