<?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>29999</bug_id>
          
          <creation_ts>2009-10-02 01:28:41 -0700</creation_ts>
          <short_desc>[GStreamer] Should handle unknown duration better</short_desc>
          <delta_ts>2009-10-19 04:58:52 -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>PC</rep_platform>
          <op_sys>Linux</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>0</everconfirmed>
          <reporter name="Sebastian Dröge (slomo)">slomo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jmalonzo</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>151788</commentid>
    <comment_count>0</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2009-10-02 01:28:41 -0700</bug_when>
    <thetext>Hi,
currently there&apos;s only a check for -1 duration if GStreamer before 0.10.23 is used.

This is wrong, you should always check if

a) returned duration is != -1 (&lt;= 0 is wrong, it could be &lt;-1 because in TIME format it really is an unsigned integer with -1 as special value)
b) fmt is still GST_FORMAT_TIME

in case a) and b) are not true the duration is simply unknown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151793</commentid>
    <comment_count>1</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2009-10-02 01:42:41 -0700</bug_when>
    <thetext>Sames goes for the query_duration() calls in BYTE format btw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152624</commentid>
    <comment_count>2</comment_count>
      <attachid>40703</attachid>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-10-06 02:17:23 -0700</bug_when>
    <thetext>Created attachment 40703
patch for duration query

Here&apos;s a patch for the time duration query. I&apos;m not flagging it for review yet even though I&apos;m pretty sure it&apos;s correct, but I&apos;d like Sebastian to look it over just to be sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152633</commentid>
    <comment_count>3</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2009-10-06 03:01:06 -0700</bug_when>
    <thetext>Almost correct, yes. Just remove the complete GStreamer version check and only check for time!=GST_CLOCK_TIME_NONE. &quot;negative&quot; times are always ok because the time really is a unsigned integer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153030</commentid>
    <comment_count>4</comment_count>
      <attachid>40785</attachid>
    <who name="Benjamin Otte">otte</who>
    <bug_when>2009-10-07 07:06:44 -0700</bug_when>
    <thetext>Created attachment 40785
patch for duration query, try 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154018</commentid>
    <comment_count>5</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2009-10-12 03:36:20 -0700</bug_when>
    <thetext>Looks good to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154307</commentid>
    <comment_count>6</comment_count>
      <attachid>40785</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-10-13 03:10:49 -0700</bug_when>
    <thetext>Comment on attachment 40785
patch for duration query, try 2


&gt; +    if (!gst_element_query_duration(m_playBin, &amp;timeFormat, &amp;timeLength) ||
&gt; +        timeFormat != GST_FORMAT_TIME ||
&gt; +        timeLength == GST_CLOCK_TIME_NONE) {

We don&apos;t normally break the expression into multiple lines. I&apos;ll fix it up when landing.

Is it possible to test this or is this covered by our existing tests already?

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155662</commentid>
    <comment_count>7</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-10-19 04:58:52 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 40785 [details])
&gt; 
&gt; &gt; +    if (!gst_element_query_duration(m_playBin, &amp;timeFormat, &amp;timeLength) ||
&gt; &gt; +        timeFormat != GST_FORMAT_TIME ||
&gt; &gt; +        timeLength == GST_CLOCK_TIME_NONE) {
&gt; 
&gt; We don&apos;t normally break the expression into multiple lines. I&apos;ll fix it up when
&gt; landing.
&gt; 
&gt; Is it possible to test this or is this covered by our existing tests already?
&gt; 
&gt; r=me.

Landed as http://trac.webkit.org/changeset/49774</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40703</attachid>
            <date>2009-10-06 02:17:23 -0700</date>
            <delta_ts>2009-10-07 07:06:44 -0700</delta_ts>
            <desc>patch for duration query</desc>
            <filename>diff</filename>
            <type>text/plain</type>
            <size>2732</size>
            <attacher name="Benjamin Otte">otte</attacher>
            
              <data encoding="base64">Y29tbWl0IDg3MWFlOGEyNTM0N2E0ZTQ2MTcwY2Y0MjUyNTM1ODQ2OTYyM2U1MmMKQXV0aG9yOiBC
ZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KRGF0ZTogICBUdWUgT2N0IDYgMTE6MDk6NDkg
MjAwOSArMDIwMAoKICAgIEhhbmRsZSBkdXJhdGlvbiBxdWVyaWVzIHByb3Blcmx5CiAgICAKICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTk5OQogICAgCiAgICBQ
cmV2aW91c2x5IGR1cmF0aW9uIHF1ZXJpZXMgZmFpbGVkIHRvIGhhbmRsZSB1bmtub3duIGR1cmF0
aW9uCiAgICBhbmQgZGlkbid0IHRyZWF0IHRoZSByZXR1cm5lZCBkdXJhdGlvbiBhcyBhbiB1bnNp
Z25lZC4KCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDExYWNmOTUuLmY0MDNmOWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTAtMDYgIEJlbmph
bWluIE90dGUgIDxvdHRlQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBIYW5kbGUgZHVyYXRpb24gcXVlcmllcyBwcm9wZXJseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk5OTkKKworICAg
ICAgICBQcmV2aW91c2x5IGR1cmF0aW9uIHF1ZXJpZXMgZmFpbGVkIHRvIGhhbmRsZSB1bmtub3du
IGR1cmF0aW9uCisgICAgICAgIGFuZCBkaWRuJ3QgdHJlYXQgdGhlIHJldHVybmVkIGR1cmF0aW9u
IGFzIGFuIHVuc2lnbmVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6OmR1cmF0aW9uKToKKwogMjAwOS0xMC0wMSAgTWFyayBSb3dlICA8bXJvd2VAYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgVGlnZXIgYnVpbGQuICBEb24ndCB1bmNvbmRpdGlv
bmFsbHkgZW5hYmxlIDNEIGNhbnZhcyBhcyBpdCBpcyBub3Qgc3VwcG9ydGVkIG9uIFRpZ2VyLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNTUyNWU2OC4uYjE3NzYxZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yMjYsNiArMjI2LDggQEAgZmxvYXQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjpkdXJhdGlvbigpIGNvbnN0CiAgICAgR3N0Rm9ybWF0IHRpbWVGb3JtYXQgPSBHU1Rf
Rk9STUFUX1RJTUU7CiAgICAgZ2ludDY0IHRpbWVMZW5ndGggPSAwOwogCisgICAgaWYgKCFnc3Rf
ZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3BsYXlCaW4sICZ0aW1lRm9ybWF0LCAmdGltZUxlbmd0
aCkgfHwKKyAgICAgICAgdGltZUZvcm1hdCAhPSBHU1RfRk9STUFUX1RJTUUgfHwKICNpZiAhR1NU
X0NIRUNLX1ZFUlNJT04oMCwgMTAsIDIzKQogICAgIC8vIFdlIHRyeSB0byBnZXQgdGhlIGR1cmF0
aW9uLCBidXQgd2UgZG8gbm90IHRydXN0IHRoZQogICAgIC8vIHJldHVybiB2YWx1ZSBvZiB0aGUg
cXVlcnkgZnVuY3Rpb24gb25seTsgdGhlIHByb2JsZW0gd2UgYXJlCkBAIC0yMzMsOSArMjM1LDkg
QEAgZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkdXJhdGlvbigpIGNvbnN0CiAgICAgLy8gbm90
IGJlIGFibGUgdG8gZmlndXJlIG91dCB0aGUgZHVyYXRpb24sIGJ1dCBzdGlsbCByZXR1cm4gdHJ1
ZSEKICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
NjM5IHdoaWNoIGhhcyBiZWVuCiAgICAgLy8gZml4ZWQgaW4gZ3N0LXBsdWdpbnMtYmFzZSAwLjEw
LjIzCi0gICAgaWYgKCFnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3BsYXlCaW4sICZ0aW1l
Rm9ybWF0LCAmdGltZUxlbmd0aCkgfHwgdGltZUxlbmd0aCA8PSAwKSB7CisgICAgICAgIHRpbWVM
ZW5ndGggPD0gMCkgewogI2Vsc2UKLSAgICBpZiAoIWdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9u
KG1fcGxheUJpbiwgJnRpbWVGb3JtYXQsICZ0aW1lTGVuZ3RoKSkgeworICAgICAgICB0aW1lTGVu
Z3RoID09IEdTVF9DTE9DS19USU1FX05PTkUpIHsKICNlbmRpZgogICAgICAgICBMT0dfVkVSQk9T
RShNZWRpYSwgIlRpbWUgZHVyYXRpb24gcXVlcnkgZmFpbGVkLiIpOwogICAgICAgICByZXR1cm4g
bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpOwpAQCAtMjQzLDcgKzI0NSw3IEBAIGZs
b2F0IE1lZGlhUGxheWVyUHJpdmF0ZTo6ZHVyYXRpb24oKSBjb25zdAogCiAgICAgTE9HX1ZFUkJP
U0UoTWVkaWEsICJEdXJhdGlvbjogJSIgR1NUX1RJTUVfRk9STUFULCBHU1RfVElNRV9BUkdTKHRp
bWVMZW5ndGgpKTsKIAotICAgIHJldHVybiAoZmxvYXQpICh0aW1lTGVuZ3RoIC8gMTAwMDAwMDAw
MC4wKTsKKyAgICByZXR1cm4gKGZsb2F0KSAoKGd1aW50NjQpIHRpbWVMZW5ndGggLyAxMDAwMDAw
MDAwLjApOwogICAgIC8vIEZJWE1FOiBoYW5kbGUgMy4xNC45LjUgcHJvcGVybHkKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40785</attachid>
            <date>2009-10-07 07:06:44 -0700</date>
            <delta_ts>2009-10-13 03:10:49 -0700</delta_ts>
            <desc>patch for duration query, try 2</desc>
            <filename>diff</filename>
            <type>text/plain</type>
            <size>2659</size>
            <attacher name="Benjamin Otte">otte</attacher>
            
              <data encoding="base64">Y29tbWl0IDFhNTIxZTU5ZDc1NTdkODZjNWVkOWYzZjM3OWM4YjVkNTQwNzQ2OTgKQXV0aG9yOiBC
ZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KRGF0ZTogICBUdWUgT2N0IDYgMTE6MDk6NDkg
MjAwOSArMDIwMAoKICAgIEhhbmRsZSBkdXJhdGlvbiBxdWVyaWVzIHByb3Blcmx5CiAgICAKICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTk5OQogICAgCiAgICBQ
cmV2aW91c2x5IGR1cmF0aW9uIHF1ZXJpZXMgZmFpbGVkIHRvIGhhbmRsZSB1bmtub3duIGR1cmF0
aW9uCiAgICBhbmQgZGlkbid0IHRyZWF0IHRoZSByZXR1cm5lZCBkdXJhdGlvbiBhcyBhbiB1bnNp
Z25lZC4KCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDExYWNmOTUuLmY0MDNmOWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTAtMDYgIEJlbmph
bWluIE90dGUgIDxvdHRlQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBIYW5kbGUgZHVyYXRpb24gcXVlcmllcyBwcm9wZXJseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk5OTkKKworICAg
ICAgICBQcmV2aW91c2x5IGR1cmF0aW9uIHF1ZXJpZXMgZmFpbGVkIHRvIGhhbmRsZSB1bmtub3du
IGR1cmF0aW9uCisgICAgICAgIGFuZCBkaWRuJ3QgdHJlYXQgdGhlIHJldHVybmVkIGR1cmF0aW9u
IGFzIGFuIHVuc2lnbmVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6OmR1cmF0aW9uKToKKwogMjAwOS0xMC0wMSAgTWFyayBSb3dlICA8bXJvd2VAYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgVGlnZXIgYnVpbGQuICBEb24ndCB1bmNvbmRpdGlv
bmFsbHkgZW5hYmxlIDNEIGNhbnZhcyBhcyBpdCBpcyBub3Qgc3VwcG9ydGVkIG9uIFRpZ2VyLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNTUyNWU2OC4uZDI5YjMwZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yMjYsMjQgKzIyNiwxNiBAQCBmbG9hdCBNZWRpYVBsYXll
clByaXZhdGU6OmR1cmF0aW9uKCkgY29uc3QKICAgICBHc3RGb3JtYXQgdGltZUZvcm1hdCA9IEdT
VF9GT1JNQVRfVElNRTsKICAgICBnaW50NjQgdGltZUxlbmd0aCA9IDA7CiAKLSNpZiAhR1NUX0NI
RUNLX1ZFUlNJT04oMCwgMTAsIDIzKQotICAgIC8vIFdlIHRyeSB0byBnZXQgdGhlIGR1cmF0aW9u
LCBidXQgd2UgZG8gbm90IHRydXN0IHRoZQotICAgIC8vIHJldHVybiB2YWx1ZSBvZiB0aGUgcXVl
cnkgZnVuY3Rpb24gb25seTsgdGhlIHByb2JsZW0gd2UgYXJlCi0gICAgLy8gdHJ5aW5nIHRvIHdv
cmstYXJvdW5kIGhlcmUgaXMgdGhhdCBwaXBlbGluZXMgaW4gc3RyZWFtIG1vZGUgbWF5Ci0gICAg
Ly8gbm90IGJlIGFibGUgdG8gZmlndXJlIG91dCB0aGUgZHVyYXRpb24sIGJ1dCBzdGlsbCByZXR1
cm4gdHJ1ZSEKLSAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI0NjM5IHdoaWNoIGhhcyBiZWVuCi0gICAgLy8gZml4ZWQgaW4gZ3N0LXBsdWdpbnMtYmFz
ZSAwLjEwLjIzCi0gICAgaWYgKCFnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3BsYXlCaW4s
ICZ0aW1lRm9ybWF0LCAmdGltZUxlbmd0aCkgfHwgdGltZUxlbmd0aCA8PSAwKSB7Ci0jZWxzZQot
ICAgIGlmICghZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCAmdGltZUZvcm1h
dCwgJnRpbWVMZW5ndGgpKSB7Ci0jZW5kaWYKKyAgICBpZiAoIWdzdF9lbGVtZW50X3F1ZXJ5X2R1
cmF0aW9uKG1fcGxheUJpbiwgJnRpbWVGb3JtYXQsICZ0aW1lTGVuZ3RoKSB8fAorICAgICAgICB0
aW1lRm9ybWF0ICE9IEdTVF9GT1JNQVRfVElNRSB8fAorICAgICAgICB0aW1lTGVuZ3RoID09IEdT
VF9DTE9DS19USU1FX05PTkUpIHsKICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJUaW1lIGR1
cmF0aW9uIHF1ZXJ5IGZhaWxlZC4iKTsKICAgICAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGZs
b2F0Pjo6aW5maW5pdHkoKTsKICAgICB9CiAKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkR1cmF0
aW9uOiAlIiBHU1RfVElNRV9GT1JNQVQsIEdTVF9USU1FX0FSR1ModGltZUxlbmd0aCkpOwogCi0g
ICAgcmV0dXJuIChmbG9hdCkgKHRpbWVMZW5ndGggLyAxMDAwMDAwMDAwLjApOworICAgIHJldHVy
biAoZmxvYXQpICgoZ3VpbnQ2NCkgdGltZUxlbmd0aCAvIDEwMDAwMDAwMDAuMCk7CiAgICAgLy8g
RklYTUU6IGhhbmRsZSAzLjE0LjkuNSBwcm9wZXJseQogfQogCg==
</data>
<flag name="review"
          id="22067"
          type_id="1"
          status="+"
          setter="jmalonzo"
    />
    <flag name="commit-queue"
          id="22415"
          type_id="3"
          status="-"
          setter="jmalonzo"
    />
          </attachment>
      

    </bug>

</bugzilla>