<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>10837</bug_id>
          
          <creation_ts>2010-09-29 21:44:29 +0000</creation_ts>
          <short_desc>playbackrate: undefined behavior when the user agent can&apos;t play back at the requested rate</short_desc>
          <delta_ts>2011-04-27 22:11:11 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>HTML WG</product>
          <component>pre-LC1 HTML5 spec (editor: Ian Hickson)</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>a11y, media, TrackerIssue, WGDecision</keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Frank Olivier">franko</reporter>
          <assigned_to name="Ian &apos;Hixie&apos; Hickson">ian</assigned_to>
          <cc>ian</cc>
    
    <cc>jfoliot</cc>
    
    <cc>laura.lee.carlson</cc>
    
    <cc>mike</cc>
    
    <cc>mjs</cc>
    
    <cc>philipj</cc>
    
    <cc>public-html-a11y</cc>
    
    <cc>public-html-admin</cc>
    
    <cc>public-html-wg-issue-tracking</cc>
    
    <cc>rubys</cc>
    
    <cc>w3c</cc>
          
          <qa_contact name="HTML WG Bugzilla archive list">public-html-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>40019</commentid>
    <comment_count>0</comment_count>
    <who name="Frank Olivier">franko</who>
    <bug_when>2010-09-29 21:44:29 +0000</bug_when>
    <thetext>In section 4.8.9.8:
The spec does not define correct behavior when the user agent is not able to play back media at a requeted rate. (For example, the author sets playbackrate to a negative value, and the user agent does not support negative playback rates)
Currenty, all browsers seem to handle this differently.

SUGGESTED CHANGE:
(Addition to spec)
If the user agent is unable to play back media at the requested rate, ignore the requested rate; playbackrate must not change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40153</commentid>
    <comment_count>1</comment_count>
    <who name="Philip Jägenstedt">philipj</who>
    <bug_when>2010-09-30 13:28:37 +0000</bug_when>
    <thetext>Indeed, Opera sets the playbackRate attribute but simply ignores it. The intention is of course to actually support it eventually, once compelling use cases come up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40240</commentid>
    <comment_count>2</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2010-09-30 18:38:31 +0000</bug_when>
    <thetext>How can you not be able to support it? At the worst, you&apos;ll just have to keep seeking backwards and show a frame here and a frame there; it&apos;s just a quality of implementation issue. If you simply can&apos;t seek to that point the spec also defines how to handle that (same as if you can&apos;t seek forward, in fact). You just stall.

I don&apos;t understand what the problem is here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40564</commentid>
    <comment_count>3</comment_count>
    <who name="Frank Olivier">franko</who>
    <bug_when>2010-10-04 17:03:25 +0000</bug_when>
    <thetext>there are cases where the user agent will be unable to change the playbackrate - for example, the user agent may be playing a live stream; the user agent may be unable to play media backwards (due to limitation of the media format - no keyframes) / at a high rate (limitation in hardware) - and &apos;faking&apos; a playback rate with seeking behavior is not a viable alternative.

The author should be able to determine that the user agent is not doing the &apos;true&apos; requested playback rate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40987</commentid>
    <comment_count>4</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2010-10-12 07:13:44 +0000</bug_when>
    <thetext>(In reply to comment #3)
&gt; there are cases where the user agent will be unable to change the playbackrate
&gt; - for example, the user agent may be playing a live stream

When playing a live stream, either the browser has a local buffer or it does not. If it does, then playing backwards is fine (at the worst case, just seek back frame by frame). If it does not, then the &quot;earliest possible position&quot; will equal the current playback position and a playback rate that is less than the live rate will simply result in the browser continuously seeking forward to keep up with the live stream. In either case, this is already well-defined in the spec.


&gt; the user agent may be unable to play media backwards (due to limitation of the media format - no
&gt; keyframes) / at a high rate (limitation in hardware) - and &apos;faking&apos; a playback
&gt; rate with seeking behavior is not a viable alternative.

It&apos;s always viable -- in the worst case, you show the current frame then keep going backwards without showing anything (just moving the playback head on the seek bar) and then finally show the first frame. This is entirely a quality of implementation issue. Browsers that can decode such a stream and buffer it in a way that enables arbitrary seeking will be more usable and more competitive than browsers that can&apos;t.


&gt; The author should be able to determine that the user agent is not doing the
&gt; &apos;true&apos; requested playback rate.

If the problem is that the media doesn&apos;t support going backwards due to a lack of keyframes and due to a lack of implementations that can work around this limitation, then it&apos;s highly unlikely that the author will attempt to play the media data backwards in the first place.

However, if the browser is faking it by seeking then it&apos;ll be quite clear: the browser will have fired a &quot;seeking&quot; event and then will not fire a &quot;seeked&quot; event, and the playback position will not be moving.


EDITOR&apos;S RESPONSE: This is an Editor&apos;s Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Rejected
Change Description: no spec change
Rationale: The spec already handles all the described cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41554</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Kliehm">w3c</who>
    <bug_when>2010-10-19 15:19:31 +0000</bug_when>
    <thetext>The HTML Accessibility Bug Triage sub-team doesn&apos;t think this is an accessibility issue or TF priority.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42862</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Ruby">rubys</who>
    <bug_when>2010-11-29 19:42:08 +0000</bug_when>
    <thetext>http://www.w3.org/html/wg/tracker/issues/147</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47279</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Ruby">rubys</who>
    <bug_when>2011-04-08 18:37:28 +0000</bug_when>
    <thetext>Working Group Decision: http://lists.w3.org/Archives/Public/public-html/2011Apr/0213.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47746</commentid>
    <comment_count>8</comment_count>
    <who name="">contributor</who>
    <bug_when>2011-04-27 22:11:11 +0000</bug_when>
    <thetext>Checked in as WHATWG revision r6033.
Check-in comment: mention the problem with UAs that don&apos;t support playbackRate reliably.
http://html5.org/tools/web-apps-tracker?from=6032&amp;to=6033</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>