<?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>113880</bug_id>
          
          <creation_ts>2013-04-03 08:58:05 -0700</creation_ts>
          <short_desc>[Gstreamer] Use gst_buffer_extract() in copyGstreamerBuffersToAudioChannel()</short_desc>
          <delta_ts>2013-04-03 11:11:11 -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>WebCore Misc.</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>jer.noble</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>868747</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-04-03 08:58:05 -0700</bug_when>
    <thetext>copyGstreamerBuffersToAudioChannel() currently maps the GstBuffer content to memcpy it the the AudioChannel buffer. We could leverage gst_buffer_extract() API function to simplify the code and avoid issues with error handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868751</commentid>
    <comment_count>1</comment_count>
      <attachid>196362</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-04-03 09:08:38 -0700</bug_when>
    <thetext>Created attachment 196362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868760</commentid>
    <comment_count>2</comment_count>
      <attachid>196362</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-04-03 09:33:33 -0700</bug_when>
    <thetext>Comment on attachment 196362
Patch

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

Looks cool indeed!

&gt; Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:105
&gt; +    guint bufferCount = gst_buffer_list_length(buffers);
&gt; +    for (guint i = 0; i &lt; bufferCount; ++i) {

bufferCount is not needed I think. Also please use unsigned instead of guint if possible, we try to give preference to non-glib types when possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868787</commentid>
    <comment_count>3</comment_count>
      <attachid>196362</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-04-03 10:29:59 -0700</bug_when>
    <thetext>Comment on attachment 196362
Patch

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

&gt;&gt; Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:105
&gt;&gt; +    for (guint i = 0; i &lt; bufferCount; ++i) {
&gt; 
&gt; bufferCount is not needed I think. Also please use unsigned instead of guint if possible, we try to give preference to non-glib types when possible.

Caching the container size before the loop is commonly done in WebKit and it avoids calling gst_buffer_list_length() for each iteration. It&apos;s not a big deal here because gst_buffer_list_length() is inexpensive but I still think it is good practice.

I&apos;ll replace guint by unsigned, I wasn&apos;t sure what the policy was about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868789</commentid>
    <comment_count>4</comment_count>
      <attachid>196374</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-04-03 10:34:14 -0700</bug_when>
    <thetext>Created attachment 196374
Patch

Using unsigned instead of guint. I kept the container size caching for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868802</commentid>
    <comment_count>5</comment_count>
      <attachid>196374</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-03 11:11:07 -0700</bug_when>
    <thetext>Comment on attachment 196374
Patch

Clearing flags on attachment: 196374

Committed r147567: &lt;http://trac.webkit.org/changeset/147567&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868803</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-03 11:11:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196362</attachid>
            <date>2013-04-03 09:08:38 -0700</date>
            <delta_ts>2013-04-03 10:34:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>113880_gst_buffer_extract.patch</filename>
            <type>text/plain</type>
            <size>2720</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YzZlOGZhLi5hNWMwZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTMtMDQtMDMgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtHc3RyZWFtZXJdIFVzZSBnc3RfYnVmZmVyX2V4dHJhY3QoKSBpbiBj
b3B5R3N0cmVhbWVyQnVmZmVyc1RvQXVkaW9DaGFubmVsKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzg4MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvcHlHc3RyZWFtZXJCdWZmZXJzVG9BdWRpb0No
YW5uZWwoKSB3YXMgbWFwcGluZyB0aGUgR3N0QnVmZmVyIGNvbnRlbnQgdG8gbWVtY3B5CisgICAg
ICAgIGl0IHRvIHRoZSBBdWRpb0NoYW5uZWwgYnVmZmVyLiBUaGlzIHBhdGNoIGxldmVyYWdlcyBn
c3RfYnVmZmVyX2V4dHJhY3QoKSB0bworICAgICAgICBzaW1wbGlmeSB0aGUgY29kZSBhcyBpdCBk
b2VzIGV4YWN0bHkgd2hhdCB3ZSBuZWVkOiBnc3RfYnVmZmVyX21hcCwgbWVtY3B5LAorICAgICAg
ICBnc3RfYnVmZmVyX3VubWFwIGFuZCBlcnJvciBoYW5kbGluZy4KKworICAgICAgICBBbHNvIHJl
cGxhY2UgR3N0QnVmZmVyIE5VTEwgY2hlY2sgYnkgYW4gYXNzZXJ0aW9uIGFzIHdlIGFscmVhZHkg
bWFrZSBzdXJlIHRoZXkKKyAgICAgICAgYXJlIG5vdCBOVUxMIGJlZm9yZSBhZGRpbmcgdGhlbSB0
byB0aGUgbGlzdC4gQWRkaXRpb25hbGx5LCB3ZSBub3cgY2FsbAorICAgICAgICBhdWRpb0NoYW5u
ZWwtPm11dGFibGVEYXRhKCkgb25seSBvbmNlIGluc3RlYWQgb2Ygb25jZSBwZXIgaXRlcmF0aW9u
LiBJdCBpcworICAgICAgICBhIGJpdCBiZXR0ZXIgYXMgdGhlIGdldHRlciBkb2VzIHNvbWUgd29y
ayBpbnRlcm5hbGx5LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdT
dHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5R3N0cmVhbWVyQnVmZmVyc1RvQXVk
aW9DaGFubmVsKToKKwogMjAxMy0wNC0wMyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgMzJiaXQgYnVpbGRmaXggYWZ0ZXIgcjE0NzU0
Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKaW5kZXggOGVmYjZmYy4u
ZTkwNDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKQEAgLTEw
MCwxNiArMTAwLDE0IEBAIHByaXZhdGU6CiBzdGF0aWMgdm9pZCBjb3B5R3N0cmVhbWVyQnVmZmVy
c1RvQXVkaW9DaGFubmVsKEdzdEJ1ZmZlckxpc3QqIGJ1ZmZlcnMsIEF1ZGlvQ2hhbm5lbCogYXVk
aW9DaGFubmVsKQogewogI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCi0gICAgZ3NpemUgb2Zmc2V0
ID0gMDsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZ3N0X2J1ZmZlcl9saXN0X2xlbmd0
aChidWZmZXJzKTsgaSsrKSB7CisgICAgZmxvYXQqIGRlc3RpbmF0aW9uID0gYXVkaW9DaGFubmVs
LT5tdXRhYmxlRGF0YSgpOworICAgIGd1aW50IGJ1ZmZlckNvdW50ID0gZ3N0X2J1ZmZlcl9saXN0
X2xlbmd0aChidWZmZXJzKTsKKyAgICBmb3IgKGd1aW50IGkgPSAwOyBpIDwgYnVmZmVyQ291bnQ7
ICsraSkgewogICAgICAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9idWZmZXJfbGlzdF9nZXQo
YnVmZmVycywgaSk7Ci0gICAgICAgIGlmICghYnVmZmVyKQotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIEdzdE1hcEluZm8gaW5mbzsKLSAgICAgICAgZ3N0X2J1ZmZlcl9tYXAoYnVmZmVy
LCAmaW5mbywgR1NUX01BUF9SRUFEKTsKLSAgICAgICAgbWVtY3B5KGF1ZGlvQ2hhbm5lbC0+bXV0
YWJsZURhdGEoKSArIG9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDxmbG9hdCo+KGluZm8uZGF0YSks
IGluZm8uc2l6ZSk7Ci0gICAgICAgIG9mZnNldCArPSBpbmZvLnNpemUgLyBzaXplb2YoZmxvYXQp
OwotICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGJ1ZmZlciwgJmluZm8pOworICAgICAgICBBU1NF
UlQoYnVmZmVyKTsKKyAgICAgICAgZ3NpemUgYnVmZmVyU2l6ZSA9IGdzdF9idWZmZXJfZ2V0X3Np
emUoYnVmZmVyKTsKKyAgICAgICAgZ3N0X2J1ZmZlcl9leHRyYWN0KGJ1ZmZlciwgMCwgZGVzdGlu
YXRpb24sIGJ1ZmZlclNpemUpOworICAgICAgICBkZXN0aW5hdGlvbiArPSBidWZmZXJTaXplIC8g
c2l6ZW9mKGZsb2F0KTsKICAgICB9CiAjZWxzZQogICAgIEdzdEJ1ZmZlckxpc3RJdGVyYXRvciog
aXRlciA9IGdzdF9idWZmZXJfbGlzdF9pdGVyYXRlKGJ1ZmZlcnMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196374</attachid>
            <date>2013-04-03 10:34:14 -0700</date>
            <delta_ts>2013-04-03 11:11:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>113880_gst_buffer_extract.patch</filename>
            <type>text/plain</type>
            <size>2726</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YzZlOGZhLi5hNWMwZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTMtMDQtMDMgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtHc3RyZWFtZXJdIFVzZSBnc3RfYnVmZmVyX2V4dHJhY3QoKSBpbiBj
b3B5R3N0cmVhbWVyQnVmZmVyc1RvQXVkaW9DaGFubmVsKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzg4MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvcHlHc3RyZWFtZXJCdWZmZXJzVG9BdWRpb0No
YW5uZWwoKSB3YXMgbWFwcGluZyB0aGUgR3N0QnVmZmVyIGNvbnRlbnQgdG8gbWVtY3B5CisgICAg
ICAgIGl0IHRvIHRoZSBBdWRpb0NoYW5uZWwgYnVmZmVyLiBUaGlzIHBhdGNoIGxldmVyYWdlcyBn
c3RfYnVmZmVyX2V4dHJhY3QoKSB0bworICAgICAgICBzaW1wbGlmeSB0aGUgY29kZSBhcyBpdCBk
b2VzIGV4YWN0bHkgd2hhdCB3ZSBuZWVkOiBnc3RfYnVmZmVyX21hcCwgbWVtY3B5LAorICAgICAg
ICBnc3RfYnVmZmVyX3VubWFwIGFuZCBlcnJvciBoYW5kbGluZy4KKworICAgICAgICBBbHNvIHJl
cGxhY2UgR3N0QnVmZmVyIE5VTEwgY2hlY2sgYnkgYW4gYXNzZXJ0aW9uIGFzIHdlIGFscmVhZHkg
bWFrZSBzdXJlIHRoZXkKKyAgICAgICAgYXJlIG5vdCBOVUxMIGJlZm9yZSBhZGRpbmcgdGhlbSB0
byB0aGUgbGlzdC4gQWRkaXRpb25hbGx5LCB3ZSBub3cgY2FsbAorICAgICAgICBhdWRpb0NoYW5u
ZWwtPm11dGFibGVEYXRhKCkgb25seSBvbmNlIGluc3RlYWQgb2Ygb25jZSBwZXIgaXRlcmF0aW9u
LiBJdCBpcworICAgICAgICBhIGJpdCBiZXR0ZXIgYXMgdGhlIGdldHRlciBkb2VzIHNvbWUgd29y
ayBpbnRlcm5hbGx5LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdT
dHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5R3N0cmVhbWVyQnVmZmVyc1RvQXVk
aW9DaGFubmVsKToKKwogMjAxMy0wNC0wMyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgMzJiaXQgYnVpbGRmaXggYWZ0ZXIgcjE0NzU0
Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKaW5kZXggOGVmYjZmYy4u
NmZiYjFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKQEAgLTEw
MCwxNiArMTAwLDE0IEBAIHByaXZhdGU6CiBzdGF0aWMgdm9pZCBjb3B5R3N0cmVhbWVyQnVmZmVy
c1RvQXVkaW9DaGFubmVsKEdzdEJ1ZmZlckxpc3QqIGJ1ZmZlcnMsIEF1ZGlvQ2hhbm5lbCogYXVk
aW9DaGFubmVsKQogewogI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCi0gICAgZ3NpemUgb2Zmc2V0
ID0gMDsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZ3N0X2J1ZmZlcl9saXN0X2xlbmd0
aChidWZmZXJzKTsgaSsrKSB7CisgICAgZmxvYXQqIGRlc3RpbmF0aW9uID0gYXVkaW9DaGFubmVs
LT5tdXRhYmxlRGF0YSgpOworICAgIHVuc2lnbmVkIGJ1ZmZlckNvdW50ID0gZ3N0X2J1ZmZlcl9s
aXN0X2xlbmd0aChidWZmZXJzKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVmZmVy
Q291bnQ7ICsraSkgewogICAgICAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9idWZmZXJfbGlz
dF9nZXQoYnVmZmVycywgaSk7Ci0gICAgICAgIGlmICghYnVmZmVyKQotICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgIEdzdE1hcEluZm8gaW5mbzsKLSAgICAgICAgZ3N0X2J1ZmZlcl9tYXAo
YnVmZmVyLCAmaW5mbywgR1NUX01BUF9SRUFEKTsKLSAgICAgICAgbWVtY3B5KGF1ZGlvQ2hhbm5l
bC0+bXV0YWJsZURhdGEoKSArIG9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDxmbG9hdCo+KGluZm8u
ZGF0YSksIGluZm8uc2l6ZSk7Ci0gICAgICAgIG9mZnNldCArPSBpbmZvLnNpemUgLyBzaXplb2Yo
ZmxvYXQpOwotICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGJ1ZmZlciwgJmluZm8pOworICAgICAg
ICBBU1NFUlQoYnVmZmVyKTsKKyAgICAgICAgZ3NpemUgYnVmZmVyU2l6ZSA9IGdzdF9idWZmZXJf
Z2V0X3NpemUoYnVmZmVyKTsKKyAgICAgICAgZ3N0X2J1ZmZlcl9leHRyYWN0KGJ1ZmZlciwgMCwg
ZGVzdGluYXRpb24sIGJ1ZmZlclNpemUpOworICAgICAgICBkZXN0aW5hdGlvbiArPSBidWZmZXJT
aXplIC8gc2l6ZW9mKGZsb2F0KTsKICAgICB9CiAjZWxzZQogICAgIEdzdEJ1ZmZlckxpc3RJdGVy
YXRvciogaXRlciA9IGdzdF9idWZmZXJfbGlzdF9pdGVyYXRlKGJ1ZmZlcnMpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>