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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>283533</bug_id>
          
          <creation_ts>2024-11-21 16:48:49 -0800</creation_ts>
          <short_desc>[WebM] requestVideoFrameCallback may only works once.</short_desc>
          <delta_ts>2024-11-22 18:53:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jean-Yves Avenard [:jya]">jean-yves.avenard</reporter>
          <assigned_to name="Jean-Yves Avenard [:jya]">jean-yves.avenard</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2076867</commentid>
    <comment_count>0</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2024-11-21 16:48:49 -0800</bug_when>
    <thetext>In the VideoMediaSampleRenderer, when we queue a frame for display, we call and then clear the callback.

So in the situation where we would do something like:

VMSR.enqueueSample();
VMSR.notifyWhenHasAvailableVideoFrame(...); // 1
VMSR.enqueueSample();
VMSR.notifyWhenHasAvailableVideoFrame(...); // 2

Now we decode and render on the work queue, after the 2nd enqueueSample has been called.

We resolve the callback and clear it. So when it comes time to decode the 2nd sample, there&apos;s no callback to call anymore, and the client won&apos;t set it again.


As a consequence, if that callback was to deal with a requestVideoFrameCallback, it won&apos;t happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076868</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-11-21 16:54:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/140384096&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076917</commentid>
    <comment_count>2</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2024-11-21 21:27:20 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/36999</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2077211</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-11-22 18:53:21 -0800</bug_when>
    <thetext>Committed 286994@main (2f99587301dd): &lt;https://commits.webkit.org/286994@main&gt;

Reviewed commits have been landed. Closing PR #36999 and removing active labels.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>