<?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>142594</bug_id>
          
          <creation_ts>2015-03-11 14:14:30 -0700</creation_ts>
          <short_desc>[MediaFoundation] Implement seek</short_desc>
          <delta_ts>2015-03-23 13:33:01 -0700</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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>peavo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1076431</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-03-11 14:14:30 -0700</bug_when>
    <thetext>I found some old code from my experimenting with Media Foundation.  This should probably be upstreamed, but I don&apos;t have a machine to test this on right now, and the media controls are covered up by our child window.  Peavo, could you look at this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076443</commentid>
    <comment_count>1</comment_count>
      <attachid>248450</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-03-11 14:33:38 -0700</bug_when>
    <thetext>Created attachment 248450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076479</commentid>
    <comment_count>2</comment_count>
      <attachid>248450</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-11 15:56:55 -0700</bug_when>
    <thetext>Comment on attachment 248450
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=248450&amp;action=review

&gt; Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:173
&gt; +    const __int64 tenMegaHertz = 10000000;

Not sure this type should be __int64; given how the calculation is done, seems it should just be a double.

Also, megahertz is one word, not two, so there should not be an interact.

&gt; Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:182
&gt; +    if (!SUCCEEDED(m_mediaSession-&gt;Start(&amp;GUID_NULL, &amp;propVariant))) {
&gt; +        PropVariantClear(&amp;propVariant);
&gt; +        return;
&gt; +    }
&gt; +    PropVariantClear(&amp;propVariant);

Why the if statement? We call PropVariantClear unconditionally.

&gt; Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:187
&gt; +    const __int64 tenMegaHertz = 10000000;

Again, given how it’s used it looks like this constant should be a  double, not an __int64.

&gt; Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:198
&gt; +        descriptor-&gt;Release();
&gt; +        return 0;

Could just set duration to 0 here and fall through rather than repeating the descriptor-&gt;Release() code twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076480</commentid>
    <comment_count>3</comment_count>
      <attachid>248450</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-11 15:57:29 -0700</bug_when>
    <thetext>Comment on attachment 248450
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=248450&amp;action=review

&gt;&gt; Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:173
&gt;&gt; +    const __int64 tenMegaHertz = 10000000;
&gt; 
&gt; Not sure this type should be __int64; given how the calculation is done, seems it should just be a double.
&gt; 
&gt; Also, megahertz is one word, not two, so there should not be an interact.

An “intercap”, not an “interact”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077441</commentid>
    <comment_count>4</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-03-16 10:24:20 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; I found some old code from my experimenting with Media Foundation.  This
&gt; should probably be upstreamed, but I don&apos;t have a machine to test this on
&gt; right now, and the media controls are covered up by our child window. 
&gt; Peavo, could you look at this?

This looks good to me :)

+double MediaPlayerPrivateMediaFoundation::durationDouble() const
+{
+    const __int64 tenMegaHertz = 10000000;
+    if (!m_mediaSource)
+        return 0;
+	
+    IMFPresentationDescriptor* descriptor;

Maybe use a smart pointer here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077445</commentid>
    <comment_count>5</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-03-16 10:28:06 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; I found some old code from my experimenting with Media Foundation.  This
&gt; should probably be upstreamed, but I don&apos;t have a machine to test this on
&gt; right now, and the media controls are covered up by our child window. 
&gt; Peavo, could you look at this?

I hope to get some time to look at how to draw directly to the WebView window soon ... :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079368</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-03-23 13:33:01 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/181863</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248450</attachid>
            <date>2015-03-11 14:33:38 -0700</date>
            <delta_ts>2015-03-11 15:56:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142594-20150311143313.patch</filename>
            <type>text/plain</type>
            <size>3071</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MTQwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE1LTAzLTExICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01lZGlhRm91
bmRhdGlvbl0gSW1wbGVtZW50IHNlZWsuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDI1OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uOjpzZWVraW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6c2Vla0RvdWJsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmR1cmF0aW9uRG91YmxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uLmg6CisKIDIwMTUtMDMtMTEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIEJPTCBhbmQgRU9MIGFzc2Vy
dGlvbnMgdG8gdGhlIFVSTCBGaWx0ZXIgcGFyc2VyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAkocmV2aXNpb24gMTgxNDA2KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSwxMCArMTY1LDQzIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjoKIAogYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb246OnNlZWtpbmcoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbjo6c2Vla0RvdWJsZShkb3VibGUgdGltZSkKK3sKKyAgICBjb25zdCBfX2lu
dDY0IHRlbk1lZ2FIZXJ0eiA9IDEwMDAwMDAwOworICAgIFBST1BWQVJJQU5UIHByb3BWYXJpYW50
OworICAgIFByb3BWYXJpYW50SW5pdCgmcHJvcFZhcmlhbnQpOworICAgIHByb3BWYXJpYW50LnZ0
ID0gVlRfSTg7CisgICAgcHJvcFZhcmlhbnQuaFZhbC5RdWFkUGFydCA9IHN0YXRpY19jYXN0PF9f
aW50NjQ+KHRpbWUgKiB0ZW5NZWdhSGVydHopOworICAgIGlmICghU1VDQ0VFREVEKG1fbWVkaWFT
ZXNzaW9uLT5TdGFydCgmR1VJRF9OVUxMLCAmcHJvcFZhcmlhbnQpKSkgeworICAgICAgICBQcm9w
VmFyaWFudENsZWFyKCZwcm9wVmFyaWFudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
UHJvcFZhcmlhbnRDbGVhcigmcHJvcFZhcmlhbnQpOworfQorCitkb3VibGUgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFGb3VuZGF0aW9uOjpkdXJhdGlvbkRvdWJsZSgpIGNvbnN0Cit7CisgICAgY29u
c3QgX19pbnQ2NCB0ZW5NZWdhSGVydHogPSAxMDAwMDAwMDsKKyAgICBpZiAoIW1fbWVkaWFTb3Vy
Y2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgSU1GUHJlc2VudGF0aW9uRGVzY3JpcHRvciog
ZGVzY3JpcHRvcjsKKyAgICBpZiAoIVNVQ0NFRURFRChtX21lZGlhU291cmNlLT5DcmVhdGVQcmVz
ZW50YXRpb25EZXNjcmlwdG9yKCZkZXNjcmlwdG9yKSkpCisgICAgICAgIHJldHVybiAwOworICAg
IAorICAgIFVJTlQ2NCBkdXJhdGlvbjsKKyAgICBpZiAoIVNVQ0NFRURFRChkZXNjcmlwdG9yLT5H
ZXRVSU5UNjQoTUZfUERfRFVSQVRJT04sICZkdXJhdGlvbikpKSB7CisgICAgICAgIGRlc2NyaXB0
b3ItPlJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGRlc2NyaXB0b3It
PlJlbGVhc2UoKTsKKyAgICAKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihkdXJhdGlv
bikgLyB0ZW5NZWdhSGVydHo7Cit9CisKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uOjpwYXVzZWQoKSBjb25zdAogewogICAgIHJldHVybiBtX3BhdXNlZDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgJKHJldmlzaW9uIDE4
MTQwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGUoYm9vbCk7CiAKICAgICB2aXJ0
dWFsIGJvb2wgc2Vla2luZygpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZWVrRG91YmxlKGRv
dWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgZHVyYXRpb25Eb3VibGUoKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBwYXVzZWQoKSBjb25zdDsKIAo=
</data>
<flag name="review"
          id="273338"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>