<?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>188647</bug_id>
          
          <creation_ts>2018-08-16 06:26:18 -0700</creation_ts>
          <short_desc>[GStreamer][MSE] Generic main thread notification support</short_desc>
          <delta_ts>2018-08-21 02:09:20 -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>Platform</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="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>aboya</cc>
    
    <cc>calvaris</cc>
    
    <cc>eocanha</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1450656</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-08-16 06:26:18 -0700</bug_when>
    <thetext>I did this only for the playback pipeline because reusing the player bus like this is not optimal. The same approach could be used in the append pipeline but it&apos;s less critical because a new bus is created there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450658</commentid>
    <comment_count>1</comment_count>
      <attachid>347258</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-08-16 06:29:11 -0700</bug_when>
    <thetext>Created attachment 347258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451040</commentid>
    <comment_count>2</comment_count>
      <attachid>347258</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-08-17 00:47:19 -0700</bug_when>
    <thetext>Comment on attachment 347258
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:126
&gt;          case MediaSourceSeekToTime: {
&gt; -            GstStructure* structure = gst_structure_new_empty(&quot;seek-needs-data&quot;);
&gt; -            GstMessage* message = gst_message_new_application(GST_OBJECT(appsrc), structure);
&gt; -            gst_bus_post(webKitMediaSrc-&gt;priv-&gt;bus.get(), message);
&gt; -            GST_TRACE(&quot;seek-needs-data message posted to the bus&quot;);
&gt; +            webKitMediaSrc-&gt;priv-&gt;notifier-&gt;notify(MSEMainThreadNotification::SeekNeedsData, [webKitMediaSrc] {
&gt; +                seekNeedsDataMainThread(webKitMediaSrc);
&gt; +            });
&gt;              break;
&gt;          }

You don&apos;t need to enclose the case in { } anymore since we don&apos;t have scoped variables. Please, remove them.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:143
&gt;          if (appsrcStream &amp;&amp; appsrcStream-&gt;type != WebCore::Invalid) {
&gt; -            GstStructure* structure = gst_structure_new(&quot;ready-for-more-samples&quot;, &quot;appsrc-stream&quot;, G_TYPE_POINTER, appsrcStream, nullptr);
&gt; -            GstMessage* message = gst_message_new_application(GST_OBJECT(appsrc), structure);
&gt; -            gst_bus_post(webKitMediaSrc-&gt;priv-&gt;bus.get(), message);
&gt; -            GST_TRACE(&quot;ready-for-more-samples message posted to the bus&quot;);
&gt; +
&gt; +            webKitMediaSrc-&gt;priv-&gt;notifier-&gt;notify(MSEMainThreadNotification::ReadyForMoreSamples, [webKitMediaSrc, appsrcStream] {
&gt; +                notifyReadyForMoreSamplesMainThread(webKitMediaSrc, appsrcStream);
&gt; +            });
&gt;          }

You don&apos;t need the if { } anymore because there is only one clause in it. Please remove them.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h:100
&gt; +enum MSEMainThreadNotification {

I guess you preprended MSE to this type because it can collide with other types defined inside other other files. In this case I would strongly encourage you to preprend the whole class and name it WebKitMediaSrcMainThreadNotification.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h:102
&gt; +    SeekNeedsData = 1 &lt;&lt; 0,
&gt; +    ReadyForMoreSamples = 1 &lt;&lt; 1

Longshot nit: I think it would be nicer to, at least, begin with these alphabetically sorted. It is not a requirement, but nice to have :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451565</commentid>
    <comment_count>3</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-08-20 03:40:37 -0700</bug_when>
    <thetext>LGTM too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452014</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-08-21 02:09:00 -0700</bug_when>
    <thetext>Committed r235110: &lt;https://trac.webkit.org/changeset/235110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452015</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-21 02:09:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/43551293&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347258</attachid>
            <date>2018-08-16 06:29:11 -0700</date>
            <delta_ts>2018-08-17 01:24:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188647-20180816152910.patch</filename>
            <type>text/plain</type>
            <size>8190</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0OTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVkN2Q1MjdlNGU4ODQx
MzIwMzkwYzA2OTFkNmEwNDIyMDMwNDExZi4uOWZhMWUwN2NmNzRjOGFlZjg5OGZiNDVjMWE5N2Iz
YjhlZDAwMmE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTA4LTE2ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtN
U0VdIEdlbmVyaWMgbWFpbiB0aHJlYWQgbm90aWZpY2F0aW9uIHN1cHBvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODY0NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzaW5nIEdzdEJ1cyBmb3IgbWFp
biB0aHJlYWQgbm90aWZpY2F0aW9ucyBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mICJsZWFraW5nIiB0
aGUKKyAgICAgICAgYXBwbGljYXRpb24gbWVzc2FnZXMgdG8gdGhlIG1lZGlhIHBsYXllciwgbGVh
ZGluZyB0byBDUFUgY3ljbGVzIHdhc3RpbmcuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBleGlz
dGluZyBNU0UgdGVzdHMgY292ZXIgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKHdlYmtpdF9tZWRpYV9zcmNfaW5pdCk6CisgICAgICAgICh3ZWJLaXRNZWRpYVNyY0Zp
bmFsaXplKToKKyAgICAgICAgKHdlYktpdE1lZGlhU3JjU2V0TWVkaWFQbGF5ZXJQcml2YXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291
cmNlR1N0cmVhbWVyUHJpdmF0ZS5oOgorCiAyMDE4LTA4LTE2ICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgT3B0aW9uU2V0IGZvciBBY3Rpdml0eVN0YXRl
OjpGbGFncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVh
bWVyLmNwcAppbmRleCBiN2FkODlmMzYzMTI3ZWFkNzU0NmIwMzVjYWU4Y2NiZTY2NjVmZGIxLi40
NzM0ZDRjM2M0Mjk1Zjg1ZDg2YTJkMzUyMDNkMTIwYTE3YTQxNmI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291
cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNDAsMTQgKzQw
LDExIEBACiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaCIKICNpbmNsdWRl
ICJXZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lclByaXZhdGUuaCIKIAotI2luY2x1ZGUgPGdzdC9h
cHAvYXBwLmg+Ci0jaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KLSNpbmNsdWRlIDxnc3Qv
Z3N0Lmg+Ci0jaW5jbHVkZSA8Z3N0L3BidXRpbHMvbWlzc2luZy1wbHVnaW5zLmg+CiAjaW5jbHVk
ZSA8Z3N0L3BidXRpbHMvcGJ1dGlscy5oPgogI2luY2x1ZGUgPGdzdC92aWRlby92aWRlby5oPgog
I2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
IEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMod2Via2l0X21lZGlhX3NyY19kZWJ1Zyk7CkBAIC04
NSw2ICs4Miw4IEBAIEdzdEFwcFNyY0NhbGxiYWNrcyBkaXNhYmxlZEFwcHNyY0NhbGxiYWNrcyA9
IHsKIH07CiAKIHN0YXRpYyBTdHJlYW0qIGdldFN0cmVhbUJ5QXBwc3JjKFdlYktpdE1lZGlhU3Jj
KiwgR3N0RWxlbWVudCopOworc3RhdGljIHZvaWQgc2Vla05lZWRzRGF0YU1haW5UaHJlYWQoV2Vi
S2l0TWVkaWFTcmMqKTsKK3N0YXRpYyB2b2lkIG5vdGlmeVJlYWR5Rm9yTW9yZVNhbXBsZXNNYWlu
VGhyZWFkKFdlYktpdE1lZGlhU3JjKiwgU3RyZWFtKik7CiAKIHN0YXRpYyB2b2lkIGVuYWJsZWRB
cHBzcmNOZWVkRGF0YShHc3RBcHBTcmMqIGFwcHNyYywgZ3VpbnQsIGdwb2ludGVyIHVzZXJEYXRh
KQogewpAQCAtMTIwLDEwICsxMTksOSBAQCBzdGF0aWMgdm9pZCBlbmFibGVkQXBwc3JjTmVlZERh
dGEoR3N0QXBwU3JjKiBhcHBzcmMsIGd1aW50LCBncG9pbnRlciB1c2VyRGF0YSkKIAogICAgICAg
ICBzd2l0Y2ggKGFwcHNyY1NlZWtEYXRhTmV4dEFjdGlvbikgewogICAgICAgICBjYXNlIE1lZGlh
U291cmNlU2Vla1RvVGltZTogewotICAgICAgICAgICAgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgic2Vlay1uZWVkcy1kYXRhIik7Ci0gICAgICAgICAg
ICBHc3RNZXNzYWdlKiBtZXNzYWdlID0gZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKEdTVF9P
QkpFQ1QoYXBwc3JjKSwgc3RydWN0dXJlKTsKLSAgICAgICAgICAgIGdzdF9idXNfcG9zdCh3ZWJL
aXRNZWRpYVNyYy0+cHJpdi0+YnVzLmdldCgpLCBtZXNzYWdlKTsKLSAgICAgICAgICAgIEdTVF9U
UkFDRSgic2Vlay1uZWVkcy1kYXRhIG1lc3NhZ2UgcG9zdGVkIHRvIHRoZSBidXMiKTsKKyAgICAg
ICAgICAgIHdlYktpdE1lZGlhU3JjLT5wcml2LT5ub3RpZmllci0+bm90aWZ5KE1TRU1haW5UaHJl
YWROb3RpZmljYXRpb246OlNlZWtOZWVkc0RhdGEsIFt3ZWJLaXRNZWRpYVNyY10geworICAgICAg
ICAgICAgICAgIHNlZWtOZWVkc0RhdGFNYWluVGhyZWFkKHdlYktpdE1lZGlhU3JjKTsKKyAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBO
b3RoaW5nOgpAQCAtMTM4LDEwICsxMzYsMTAgQEAgc3RhdGljIHZvaWQgZW5hYmxlZEFwcHNyY05l
ZWREYXRhKEdzdEFwcFNyYyogYXBwc3JjLCBndWludCwgZ3BvaW50ZXIgdXNlckRhdGEpCiAgICAg
ICAgIGFwcHNyY1N0cmVhbSA9IGdldFN0cmVhbUJ5QXBwc3JjKHdlYktpdE1lZGlhU3JjLCBHU1Rf
RUxFTUVOVChhcHBzcmMpKTsKIAogICAgICAgICBpZiAoYXBwc3JjU3RyZWFtICYmIGFwcHNyY1N0
cmVhbS0+dHlwZSAhPSBXZWJDb3JlOjpJbnZhbGlkKSB7Ci0gICAgICAgICAgICBHc3RTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IGdzdF9zdHJ1Y3R1cmVfbmV3KCJyZWFkeS1mb3ItbW9yZS1zYW1wbGVz
IiwgImFwcHNyYy1zdHJlYW0iLCBHX1RZUEVfUE9JTlRFUiwgYXBwc3JjU3RyZWFtLCBudWxscHRy
KTsKLSAgICAgICAgICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2UgPSBnc3RfbWVzc2FnZV9uZXdfYXBw
bGljYXRpb24oR1NUX09CSkVDVChhcHBzcmMpLCBzdHJ1Y3R1cmUpOwotICAgICAgICAgICAgZ3N0
X2J1c19wb3N0KHdlYktpdE1lZGlhU3JjLT5wcml2LT5idXMuZ2V0KCksIG1lc3NhZ2UpOwotICAg
ICAgICAgICAgR1NUX1RSQUNFKCJyZWFkeS1mb3ItbW9yZS1zYW1wbGVzIG1lc3NhZ2UgcG9zdGVk
IHRvIHRoZSBidXMiKTsKKworICAgICAgICAgICAgd2ViS2l0TWVkaWFTcmMtPnByaXYtPm5vdGlm
aWVyLT5ub3RpZnkoTVNFTWFpblRocmVhZE5vdGlmaWNhdGlvbjo6UmVhZHlGb3JNb3JlU2FtcGxl
cywgW3dlYktpdE1lZGlhU3JjLCBhcHBzcmNTdHJlYW1dIHsKKyAgICAgICAgICAgICAgICBub3Rp
ZnlSZWFkeUZvck1vcmVTYW1wbGVzTWFpblRocmVhZCh3ZWJLaXRNZWRpYVNyYywgYXBwc3JjU3Ry
ZWFtKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKICAgICAgICAgR1NUX09CSkVDVF9V
TkxPQ0sod2ViS2l0TWVkaWFTcmMpOwpAQCAtMjY0LDYgKzI2Miw3IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdF9tZWRpYV9zcmNfaW5pdChXZWJLaXRNZWRpYVNyYyogc291cmNlKQogICAgIHNvdXJjZS0+
cHJpdi0+YXBwc3JjTmVlZERhdGFDb3VudCA9IDA7CiAgICAgc291cmNlLT5wcml2LT5hcHBzcmNT
ZWVrRGF0YU5leHRBY3Rpb24gPSBOb3RoaW5nOwogICAgIHNvdXJjZS0+cHJpdi0+Zmxvd0NvbWJp
bmVyID0gR1VuaXF1ZVB0cjxHc3RGbG93Q29tYmluZXI+KGdzdF9mbG93X2NvbWJpbmVyX25ldygp
KTsKKyAgICBzb3VyY2UtPnByaXYtPm5vdGlmaWVyID0gV2ViQ29yZTo6TWFpblRocmVhZE5vdGlm
aWVyPE1TRU1haW5UaHJlYWROb3RpZmljYXRpb24+OjpjcmVhdGUoKTsKIAogICAgIC8vIE5vIG5l
ZWQgdG8gcmVzZXQgU3RyZWFtLmFwcHNyY05lZWREYXRhRmxhZyBiZWNhdXNlIHRoZXJlIGFyZSBu
byBTdHJlYW1zIGF0IHRoaXMgcG9pbnQgeWV0LgogfQpAQCAtMjgzLDYgKzI4Miw4IEBAIHZvaWQg
d2ViS2l0TWVkaWFTcmNGaW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiAKICAgICBwcml2LT5zZWVr
VGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKIAorICAgIHNvdXJjZS0+cHJpdi0+bm90
aWZpZXItPmludmFsaWRhdGUoKTsKKwogICAgIGlmIChwcml2LT5tZWRpYVBsYXllclByaXZhdGUp
CiAgICAgICAgIHdlYktpdE1lZGlhU3JjU2V0TWVkaWFQbGF5ZXJQcml2YXRlKHNvdXJjZSwgbnVs
bHB0cik7CiAKQEAgLTY5NCw0MyArNjk1LDEyIEBAIHN0YXRpYyB2b2lkIG5vdGlmeVJlYWR5Rm9y
TW9yZVNhbXBsZXNNYWluVGhyZWFkKFdlYktpdE1lZGlhU3JjKiBzb3VyY2UsIFN0cmVhbSoKICAg
ICBHU1RfT0JKRUNUX1VOTE9DSyhzb3VyY2UpOwogfQogCi1zdGF0aWMgdm9pZCBhcHBsaWNhdGlv
bk1lc3NhZ2VDYWxsYmFjayhHc3RCdXMqLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBXZWJLaXRNZWRp
YVNyYyogc291cmNlKQotewotICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKLSAgICBB
U1NFUlQoR1NUX01FU1NBR0VfVFlQRShtZXNzYWdlKSA9PSBHU1RfTUVTU0FHRV9BUFBMSUNBVElP
Tik7Ci0KLSAgICBjb25zdCBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9tZXNzYWdlX2dl
dF9zdHJ1Y3R1cmUobWVzc2FnZSk7Ci0KLSAgICBpZiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShz
dHJ1Y3R1cmUsICJzZWVrLW5lZWRzLWRhdGEiKSkgewotICAgICAgICBzZWVrTmVlZHNEYXRhTWFp
blRocmVhZChzb3VyY2UpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGdzdF9z
dHJ1Y3R1cmVfaGFzX25hbWUoc3RydWN0dXJlLCAicmVhZHktZm9yLW1vcmUtc2FtcGxlcyIpKSB7
Ci0gICAgICAgIFN0cmVhbSogYXBwc3JjU3RyZWFtID0gbnVsbHB0cjsKLSAgICAgICAgZ3N0X3N0
cnVjdHVyZV9nZXQoc3RydWN0dXJlLCAiYXBwc3JjLXN0cmVhbSIsIEdfVFlQRV9QT0lOVEVSLCAm
YXBwc3JjU3RyZWFtLCBudWxscHRyKTsKLSAgICAgICAgQVNTRVJUKGFwcHNyY1N0cmVhbSk7Ci0K
LSAgICAgICAgbm90aWZ5UmVhZHlGb3JNb3JlU2FtcGxlc01haW5UaHJlYWQoc291cmNlLCBhcHBz
cmNTdHJlYW0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci19Ci0KIHZvaWQgd2ViS2l0TWVkaWFTcmNTZXRNZWRpYVBsYXllclByaXZhdGUoV2Vi
S2l0TWVkaWFTcmMqIHNvdXJjZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
TVNFKiBtZWRpYVBsYXllclByaXZhdGUpCiB7CiAgICAgR1NUX09CSkVDVF9MT0NLKHNvdXJjZSk7
Ci0gICAgaWYgKHNvdXJjZS0+cHJpdi0+bWVkaWFQbGF5ZXJQcml2YXRlICYmIHNvdXJjZS0+cHJp
di0+bWVkaWFQbGF5ZXJQcml2YXRlICE9IG1lZGlhUGxheWVyUHJpdmF0ZSAmJiBzb3VyY2UtPnBy
aXYtPmJ1cykKLSAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKHNv
dXJjZS0+cHJpdi0+YnVzLmdldCgpLCBncG9pbnRlcihhcHBsaWNhdGlvbk1lc3NhZ2VDYWxsYmFj
ayksIHNvdXJjZSk7CiAKICAgICAvLyBTZXQgdG8gbnVsbHB0ciBvbiBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIgZGVzdHJ1Y3Rpb24sIG5ldmVyIGEgZGFuZ2xpbmcgcG9pbnRlci4KICAgICBz
b3VyY2UtPnByaXYtPm1lZGlhUGxheWVyUHJpdmF0ZSA9IG1lZGlhUGxheWVyUHJpdmF0ZTsKLSAg
ICBzb3VyY2UtPnByaXYtPmJ1cyA9IG1lZGlhUGxheWVyUHJpdmF0ZSA/IGFkb3B0R1JlZihnc3Rf
cGlwZWxpbmVfZ2V0X2J1cyhHU1RfUElQRUxJTkUobWVkaWFQbGF5ZXJQcml2YXRlLT5waXBlbGlu
ZSgpKSkpIDogbnVsbHB0cjsKLSAgICBpZiAoc291cmNlLT5wcml2LT5idXMpIHsKLSAgICAgICAg
Ly8gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIGhhcyBjYWxsZWQgZ3N0X2J1c19hZGRfc2ln
bmFsX3dhdGNoKCkgYXQgdGhpcyBwb2ludCwgc28gd2UgY2FuIHN1YnNjcmliZS4KLSAgICAgICAg
Z19zaWduYWxfY29ubmVjdChzb3VyY2UtPnByaXYtPmJ1cy5nZXQoKSwgIm1lc3NhZ2U6OmFwcGxp
Y2F0aW9uIiwgR19DQUxMQkFDSyhhcHBsaWNhdGlvbk1lc3NhZ2VDYWxsYmFjayksIHNvdXJjZSk7
Ci0gICAgfQogICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNvdXJjZSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVk
aWFTb3VyY2VHU3RyZWFtZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyUHJpdmF0ZS5oCmlu
ZGV4IDlkN2VhYjlmNDJkZTdkYjUwZGE4NmI4YWNlYjVmZTUxY2Y5N2VjZGYuLjVlZjI0ODM1NDY2
OWY3NmZjOGI5NmJmMGRmMmI5YzM2M2E4NjNiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFt
ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lclByaXZhdGUuaApAQCAtMjQsMTQgKzI0
LDE0IEBACiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIgogI2luY2x1
ZGUgIkdVbmlxdWVQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJNYWluVGhyZWFkTm90aWZpZXIu
aCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgiCiAjaW5jbHVkZSAi
VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJXZWJLaXRNZWRpYVNvdXJj
ZUdTdHJlYW1lci5oIgogCiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KICNpbmNsdWRl
IDxnc3QvZ3N0Lmg+Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dS
ZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTcsNiArOTcsMTEgQEAgZW51bSBP
blNlZWtEYXRhQWN0aW9uIHsKICAgICBNZWRpYVNvdXJjZVNlZWtUb1RpbWUKIH07CiAKK2VudW0g
TVNFTWFpblRocmVhZE5vdGlmaWNhdGlvbiB7CisgICAgU2Vla05lZWRzRGF0YSA9IDEgPDwgMCwK
KyAgICBSZWFkeUZvck1vcmVTYW1wbGVzID0gMSA8PCAxCit9OworCiBzdHJ1Y3QgX1dlYktpdE1l
ZGlhU3JjUHJpdmF0ZSB7CiAgICAgLy8gVXNlZCB0byBjb29yZGluYXRlIHRoZSByZWxlYXNlIG9m
IFN0cmVhbSB0cmFjayBpbmZvLgogICAgIExvY2sgc3RyZWFtTG9jazsKQEAgLTEyMCw5ICsxMjUs
OSBAQCBzdHJ1Y3QgX1dlYktpdE1lZGlhU3JjUHJpdmF0ZSB7CiAgICAgaW50IGFwcHNyY1NlZWtE
YXRhQ291bnQ7CiAgICAgaW50IGFwcHNyY05lZWREYXRhQ291bnQ7CiAKLSAgICBHUmVmUHRyPEdz
dEJ1cz4gYnVzOwogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRSog
bWVkaWFQbGF5ZXJQcml2YXRlOwogCisgICAgUmVmUHRyPFdlYkNvcmU6Ok1haW5UaHJlYWROb3Rp
ZmllcjxNU0VNYWluVGhyZWFkTm90aWZpY2F0aW9uPj4gbm90aWZpZXI7CiAgICAgR1VuaXF1ZVB0
cjxHc3RGbG93Q29tYmluZXI+IGZsb3dDb21iaW5lcjsKIH07CiAK
</data>
<flag name="review"
          id="365057"
          type_id="1"
          status="+"
          setter="calvaris"
    />
    <flag name="commit-queue"
          id="365153"
          type_id="3"
          status="-"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>