<?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>105292</bug_id>
          
          <creation_ts>2012-12-18 07:33:37 -0800</creation_ts>
          <short_desc>[GStreamer] GstMessage handler in AudioDestination</short_desc>
          <delta_ts>2012-12-30 06:31:57 -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>Platform</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>
          <dependson>105869</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>793624</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-12-18 07:33:37 -0800</bug_when>
    <thetext>Useful to report gst warnings and errors, like in the AudioFileReader implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793646</commentid>
    <comment_count>1</comment_count>
      <attachid>179941</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-12-18 07:58:07 -0800</bug_when>
    <thetext>Created attachment 179941
AudioDestination: GstMessage handler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797605</commentid>
    <comment_count>2</comment_count>
      <attachid>179941</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-27 10:14:03 -0800</bug_when>
    <thetext>Comment on attachment 179941
AudioDestination: GstMessage handler

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

&gt; Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:68
&gt; +    GRefPtr&lt;GstBus&gt; bus = gst_pipeline_get_bus(GST_PIPELINE(m_pipeline));
&gt; +    gst_bus_add_signal_watch(bus.get());
&gt; +    g_signal_connect(bus.get(), &quot;message&quot;, G_CALLBACK(messageCallback), this);

See below.

&gt; Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:91
&gt; +    GRefPtr&lt;GstBus&gt; bus = gst_pipeline_get_bus(GST_PIPELINE(m_pipeline));
&gt; +    g_signal_handlers_disconnect_by_func(bus.get(), reinterpret_cast&lt;gpointer&gt;(messageCallback), this);

Why not just use a raw pointer? By using GRefPtr you are doing a ref and unref.

&gt; Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:140
&gt; +        g_warning(&quot;Warning: %d, %s. Debug output: %s&quot;, error-&gt;code,  error-&gt;message, debug.get());

Wouldn&apos;t it make sense to use gst_debug_log here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797608</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-12-27 10:20:30 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 179941 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179941&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:68
&gt; &gt; +    GRefPtr&lt;GstBus&gt; bus = gst_pipeline_get_bus(GST_PIPELINE(m_pipeline));
&gt; &gt; +    gst_bus_add_signal_watch(bus.get());
&gt; &gt; +    g_signal_connect(bus.get(), &quot;message&quot;, G_CALLBACK(messageCallback), this);
&gt; 
&gt; See below.
&gt; 
&gt; &gt; Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:91
&gt; &gt; +    GRefPtr&lt;GstBus&gt; bus = gst_pipeline_get_bus(GST_PIPELINE(m_pipeline));
&gt; &gt; +    g_signal_handlers_disconnect_by_func(bus.get(), reinterpret_cast&lt;gpointer&gt;(messageCallback), this);
&gt; 
&gt; Why not just use a raw pointer? By using GRefPtr you are doing a ref and unref.

The bus returned by gst_pipeline_get_bus() needs to be unreffed after usage.

&gt; 
&gt; &gt; Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:140
&gt; &gt; +        g_warning(&quot;Warning: %d, %s. Debug output: %s&quot;, error-&gt;code,  error-&gt;message, debug.get());
&gt; 
&gt; Wouldn&apos;t it make sense to use gst_debug_log here?

Well I wanted to use g_warning here so the user sees the message in the console, this is rather minimal error reporting but less hidden than GST_DEBUG :)

I used the same approach in the AudioFileReader BTW, so any change needed in this patch would need to be done there as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797609</commentid>
    <comment_count>4</comment_count>
      <attachid>179941</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-27 10:22:59 -0800</bug_when>
    <thetext>Comment on attachment 179941
AudioDestination: GstMessage handler

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

&gt;&gt;&gt; Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:68
&gt;&gt;&gt; +    g_signal_connect(bus.get(), &quot;message&quot;, G_CALLBACK(messageCallback), this);
&gt;&gt; 
&gt;&gt; See below.
&gt; 
&gt; The bus returned by gst_pipeline_get_bus() needs to be unreffed after usage.

Ah, then you are actually leaking it because you aren&apos;t using adoptGRef.

&gt;&gt;&gt; Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:140
&gt;&gt;&gt; +        g_warning(&quot;Warning: %d, %s. Debug output: %s&quot;, error-&gt;code,  error-&gt;message, debug.get());
&gt;&gt; 
&gt;&gt; Wouldn&apos;t it make sense to use gst_debug_log here?
&gt; 
&gt; Well I wanted to use g_warning here so the user sees the message in the console, this is rather minimal error reporting but less hidden than GST_DEBUG :)
&gt; 
&gt; I used the same approach in the AudioFileReader BTW, so any change needed in this patch would need to be done there as well.

I guess it&apos;s okay as long as there is a way to disable the output. The issue with libraries that print to stderr and stdout is that they cannot be used easily for command-line tools that produce output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797829</commentid>
    <comment_count>5</comment_count>
      <attachid>180858</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-12-28 01:53:27 -0800</bug_when>
    <thetext>Created attachment 180858
AudioDestination: GstMessage handler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797830</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-12-28 01:55:13 -0800</bug_when>
    <thetext>So I removed all the g_warning stuff. The gst warnings and errors appear in the GST_DEBUG output anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797864</commentid>
    <comment_count>7</comment_count>
      <attachid>180858</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-28 06:09:54 -0800</bug_when>
    <thetext>Comment on attachment 180858
AudioDestination: GstMessage handler

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

Oops! I think I miscommunicated. g_warning and g_debug are probably okay since you can control them with the G_DEBUG environment variable. On the other hand I think that the GstBus that you get from gst_pipeline_get_bus are still leaking in this patch.

&gt; Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:68
&gt; +    GRefPtr&lt;GstBus&gt; bus = gst_pipeline_get_bus(GST_PIPELINE(m_pipeline));
&gt; +    gst_bus_add_signal_watch(bus.get());
&gt; +    g_signal_connect(bus.get(), &quot;message&quot;, G_CALLBACK(messageCallback), this);

If gst_pipeline_get_bus doesn&apos;t return a new reference you can use a raw pointer. If it does, you should use adoptRef. The documentation says &quot;transfer full&quot; so I think this needs to be adopted.

&gt; Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:91
&gt; +    GRefPtr&lt;GstBus&gt; bus = gst_pipeline_get_bus(GST_PIPELINE(m_pipeline));
&gt; +    g_signal_handlers_disconnect_by_func(bus.get(), reinterpret_cast&lt;gpointer&gt;(messageCallback), this);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797970</commentid>
    <comment_count>8</comment_count>
      <attachid>180893</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-12-28 12:44:45 -0800</bug_when>
    <thetext>Created attachment 180893
AudioDestination: GstMessage handler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797976</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-12-28 13:05:57 -0800</bug_when>
    <thetext>Committed r138545: &lt;http://trac.webkit.org/changeset/138545&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798211</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-30 04:45:12 -0800</bug_when>
    <thetext>This patch is causing a lot of crashes on the WK2 EFL Debug build bot:

crash log for WebProcess (pid &lt;unknown&gt;):
STDOUT: &lt;empty&gt;
STDERR: ASSERTION FAILED: !gstObjectIsFloating(GST_OBJECT(ptr))
STDERR: /home/buildslave-1/webkit-buildslave/efl-linux-64-debug-wk2/build/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp(130) : WTF::GRefPtr&lt;T&gt; WTF::adoptGRef(T*) [with T = _GstBus]
STDERR: 1   0x7fd7d388adde WTF::GRefPtr&lt;_GstBus&gt; WTF::adoptGRef&lt;_GstBus&gt;(_GstBus*)
STDERR: 2   0x7fd7d38bc9b1 WebCore::AudioFileReader::decodeAudioForBusCreation()
STDERR: 3   0x7fd7d38bbd63 WebCore::enteredMainLoopCallback(void*)
STDERR: 4   0x7fd7ce0c7a1b
STDERR: 5   0x7fd7ce0c6e53 g_main_context_dispatch
STDERR: 6   0x7fd7ce0c71a0
STDERR: 7   0x7fd7ce0c759a g_main_loop_run
STDERR: 8   0x7fd7d38bcd88 WebCore::AudioFileReader::createBus(float, bool)
STDERR: 9   0x7fd7d38bcf5f WebCore::createBusFromAudioFile(char const*, bool, float)
STDERR: 10  0x7fd7d38baad7 WebCore::AudioBus::loadPlatformResource(char const*, float)
STDERR: 11  0x7fd7d2d92589
STDERR: 12  0x7fd7d2d92a6e WebCore::HRTFElevation::calculateKernelsForAzimuthElevation(int, int, float, WTF::String const&amp;, WTF::RefPtr&lt;WebCore::HRTFKernel&gt;&amp;, WTF::RefPtr&lt;WebCore::HRTFKernel&gt;&amp;)
STDERR: 13  0x7fd7d2d92f3c WebCore::HRTFElevation::createForSubject(WTF::String const&amp;, int, float)
STDERR: 14  0x7fd7d2d8fd54 WebCore::HRTFDatabase::HRTFDatabase(float)
STDERR: 15  0x7fd7d2d8fc8e WebCore::HRTFDatabase::create(float)
STDERR: 16  0x7fd7d2d91b31 WebCore::HRTFDatabaseLoader::load()
STDERR: 17  0x7fd7d2d91ab0
STDERR: 18  0x7fd7d39682f5
STDERR: 19  0x7fd7d398fdea
STDERR: 20  0x7fd7ccfffe9a
STDERR: 21  0x7fd7d643dcbd clone</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798215</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-12-30 04:54:48 -0800</bug_when>
    <thetext>Seems like adoptGRef was indeed not needed then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798221</commentid>
    <comment_count>12</comment_count>
      <attachid>180954</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-30 06:13:45 -0800</bug_when>
    <thetext>Created attachment 180954
Test patch using manual unref&apos;ing

FYI, switching to raw pointers and using gst_object_unref (see attached patch) fixes the crashes for me (I don&apos;t see any warnings on stderr either). I&apos;m not quite sure why this is different from using a smart pointer and adopting though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798222</commentid>
    <comment_count>13</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-12-30 06:21:22 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=180954) [details]
&gt; Test patch using manual unref&apos;ing
&gt; 
&gt; FYI, switching to raw pointers and using gst_object_unref (see attached patch) fixes the crashes for me (I don&apos;t see any warnings on stderr either). I&apos;m not quite sure why this is different from using a smart pointer and adopting though.

Because adoptGref() checks if the object has a floating ref or not.
So yeah either we use raw pointers or revert the parts of the landed patch that added the adoptGRef calls.

I&apos;d be for using raw pointers, I never really liked this smart pointer stuff :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798225</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-30 06:31:57 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Created an attachment (id=180954) [details] [details]
&gt; &gt; Test patch using manual unref&apos;ing
&gt; &gt; 
&gt; &gt; FYI, switching to raw pointers and using gst_object_unref (see attached patch) fixes the crashes for me (I don&apos;t see any warnings on stderr either). I&apos;m not quite sure why this is different from using a smart pointer and adopting though.
&gt; 
&gt; Because adoptGref() checks if the object has a floating ref or not.
&gt; So yeah either we use raw pointers or revert the parts of the landed patch that added the adoptGRef calls.
&gt; 
&gt; I&apos;d be for using raw pointers, I never really liked this smart pointer stuff :P

Ok, I uploaded a patch at Bug 105869. I also prefer using raw pointers in this case.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179941</attachid>
            <date>2012-12-18 07:58:07 -0800</date>
            <delta_ts>2012-12-28 01:53:27 -0800</delta_ts>
            <desc>AudioDestination: GstMessage handler</desc>
            <filename>AudioDestination-GstMessage-handler.patch</filename>
            <type>text/plain</type>
            <size>5034</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAzN2NkY2YxYmVkMzE4YmYwMzM2MGM0Mjk0Yzc5OTVjODljMGYzMDYzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDE0IERlYyAyMDEyIDE1OjQ5OjE1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
QXVkaW9EZXN0aW5hdGlvbjogR3N0TWVzc2FnZSBoYW5kbGVyCgotLS0KIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysrKysrKysrKysr
CiAuLi4vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwICB8ICAg
MzAgKysrKysrKysrKysrKysrKysrKysKIC4uLi9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5h
dGlvbkdTdHJlYW1lci5oICAgIHwgICAgMiArKwogMyBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRp
b25zKCspCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk4YmE0MDguLmYzYWUxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxMi0xMi0xOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gR3N0TWVzc2FnZSBoYW5kbGVyIGluIEF1ZGlv
RGVzdGluYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwNTI5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEhhbmRsZSBHU3RyZWFtZXIgd2FybmluZ3MgYW5kIGVycm9ycyBjb21pbmcgZnJvbSB0aGUg
cGxheWJhY2sKKyAgICAgICAgcGlwZWxpbmUuIEZvciBub3cgd2Ugb25seSBkaXNwbGF5IHdhcm5p
bmdzIG9uIHRoZSBjb25zb2xlLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVy
L0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWVzc2Fn
ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcik6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmaW5pc2hCdWlsZGluZ1BpcGVs
aW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oOgorICAgICAgICAoQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lcik6CisKIDIwMTItMTItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGluLWJhbmQgdGV4dCB0cmFjayBjdWVz
IG9ubHkgb25jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4
IDU0MWIyNmQuLmZhMjgyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
ci5jcHAKQEAgLTM2LDYgKzM2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIG5lZWRzIHRv
IGhhbmRsZSB0aGlzIG51bWJlciBvZiBmcmFtZXMgcGVyIGN5Y2xlIGFzIHdlbGwuCiBjb25zdCB1
bnNpZ25lZCBmcmFtZXNUb1B1bGwgPSAxMjg7CiAKK2dib29sZWFuIG1lc3NhZ2VDYWxsYmFjayhH
c3RCdXMqIGJ1cywgR3N0TWVzc2FnZSogbWVzc2FnZSwgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
ciogZGVzdGluYXRpb24pCit7CisgICAgcmV0dXJuIGRlc3RpbmF0aW9uLT5oYW5kbGVNZXNzYWdl
KG1lc3NhZ2UpOworfQorCiBQYXNzT3duUHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGlu
YXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1wbGVSYXRl
KQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihj
YWxsYmFjaywgc2FtcGxlUmF0ZSkpOwpAQCAtNTgsNiArNjMsOSBAQCBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYgY2Fs
bGJhY2ssCiAgICAgLCBtX2lzUGxheWluZyhmYWxzZSkKIHsKICAgICBtX3BpcGVsaW5lID0gZ3N0
X3BpcGVsaW5lX25ldygicGxheSIpOworICAgIEdSZWZQdHI8R3N0QnVzPiBidXMgPSBnc3RfcGlw
ZWxpbmVfZ2V0X2J1cyhHU1RfUElQRUxJTkUobV9waXBlbGluZSkpOworICAgIGdzdF9idXNfYWRk
X3NpZ25hbF93YXRjaChidXMuZ2V0KCkpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnVzLmdldCgp
LCAibWVzc2FnZSIsIEdfQ0FMTEJBQ0sobWVzc2FnZUNhbGxiYWNrKSwgdGhpcyk7CiAKICAgICBH
c3RFbGVtZW50KiB3ZWJraXRBdWRpb1NyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8R3N0RWxlbWVudCo+
KGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfQVVESU9fU1JDLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyYXRlIiwgc2FtcGxlUmF0ZSwKQEAgLTc5LDYgKzg3LDggQEAgQXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smIGNh
bGxiYWNrLAogCiBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjp+QXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lcigpCiB7CisgICAgR1JlZlB0cjxHc3RCdXM+IGJ1cyA9IGdzdF9waXBlbGluZV9nZXRf
YnVzKEdTVF9QSVBFTElORShtX3BpcGVsaW5lKSk7CisgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlz
Y29ubmVjdF9ieV9mdW5jKGJ1cy5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxncG9pbnRlcj4obWVz
c2FnZUNhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxp
bmUsIEdTVF9TVEFURV9OVUxMKTsKICAgICBnc3Rfb2JqZWN0X3VucmVmKG1fcGlwZWxpbmUpOwog
fQpAQCAtMTE5LDYgKzEyOSwyNiBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OmZp
bmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldhdlBhcnNlclBhZFJlYWR5KEdzdAogICAgIGdzdF9l
bGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoYXVkaW9TaW5rLmxlYWtSZWYoKSk7CiB9CiAK
K2dib29sZWFuIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVz
c2FnZSogbWVzc2FnZSkKK3sKKyAgICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7CisgICAgR093blB0
cjxnY2hhcj4gZGVidWc7CisKKyAgICBzd2l0Y2ggKEdTVF9NRVNTQUdFX1RZUEUobWVzc2FnZSkp
IHsKKyAgICBjYXNlIEdTVF9NRVNTQUdFX1dBUk5JTkc6CisgICAgICAgIGdzdF9tZXNzYWdlX3Bh
cnNlX3dhcm5pbmcobWVzc2FnZSwgJmVycm9yLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOwor
ICAgICAgICBnX3dhcm5pbmcoIldhcm5pbmc6ICVkLCAlcy4gRGVidWcgb3V0cHV0OiAlcyIsIGVy
cm9yLT5jb2RlLCAgZXJyb3ItPm1lc3NhZ2UsIGRlYnVnLmdldCgpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBHU1RfTUVTU0FHRV9FUlJPUjoKKyAgICAgICAgZ3N0X21lc3NhZ2VfcGFyc2Vf
ZXJyb3IobWVzc2FnZSwgJmVycm9yLm91dFB0cigpLCAmZGVidWcub3V0UHRyKCkpOworICAgICAg
ICBnX3dhcm5pbmcoIkVycm9yOiAlZCwgJXMuIERlYnVnIG91dHB1dDogJXMiLCBlcnJvci0+Y29k
ZSwgIGVycm9yLT5tZXNzYWdlLCBkZWJ1Zy5nZXQoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gVFJVRTsKK30KKwogdm9p
ZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKG1fd2F2
UGFyc2VyQXZhaWxhYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCmlu
ZGV4IDhiZWJiNWEuLjI2ZTM0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFt
ZXIuaApAQCAtMjQsNiArMjQsNyBAQAogCiB0eXBlZGVmIHN0cnVjdCBfR3N0RWxlbWVudCBHc3RF
bGVtZW50OwogdHlwZWRlZiBzdHJ1Y3QgX0dzdFBhZCBHc3RQYWQ7Cit0eXBlZGVmIHN0cnVjdCBf
R3N0TWVzc2FnZSBHc3RNZXNzYWdlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDYg
KzQxLDcgQEAgcHVibGljOgogICAgIEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2soKSBjb25zdCB7
IHJldHVybiBtX2NhbGxiYWNrOyB9CiAKICAgICB2b2lkIGZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVB
ZnRlcldhdlBhcnNlclBhZFJlYWR5KEdzdFBhZCopOworICAgIGdib29sZWFuIGhhbmRsZU1lc3Nh
Z2UoR3N0TWVzc2FnZSopOwogCiBwcml2YXRlOgogICAgIEF1ZGlvSU9DYWxsYmFjayYgbV9jYWxs
YmFjazsKLS0gCjEuNy4xMC40
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180858</attachid>
            <date>2012-12-28 01:53:27 -0800</date>
            <delta_ts>2012-12-28 12:44:45 -0800</delta_ts>
            <desc>AudioDestination: GstMessage handler</desc>
            <filename>AudioDestination-GstMessage-handler.patch</filename>
            <type>text/plain</type>
            <size>6176</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAxZGNlYmQ3Y2YyOGJlMjI5OWY0ZGIwOTViM2I5Y2I3ZWIzOTRkYTMyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDE0IERlYyAyMDEyIDE1OjQ5OjE1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
QXVkaW9EZXN0aW5hdGlvbjogR3N0TWVzc2FnZSBoYW5kbGVyCgotLS0KIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysrKysrKysrKysr
KysrCiAuLi4vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwICB8
ICAgMjMgKysrKysrKysrKysrKysrKysrKysKIC4uLi9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5oICAgIHwgICAgMiArKwogLi4uL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwICAgfCAgIDEwIC0tLS0tLS0tLQogNCBmaWxlcyBjaGFu
Z2VkLCA0NCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQz
NDMzYS4uZjQ4MmQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEyLTE4ICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVh
bWVyXSBHc3RNZXNzYWdlIGhhbmRsZXIgaW4gQXVkaW9EZXN0aW5hdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjkyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGFuZGxlIEdTdHJlYW1lciB3YXJu
aW5ncyBhbmQgZXJyb3JzIGNvbWluZyBmcm9tIHRoZSBwbGF5YmFjaworICAgICAgICBwaXBlbGlu
ZS4gRm9yIG5vdyB3ZSBvbmx5IGRpc3BsYXkgd2FybmluZ3Mgb24gdGhlIGNvbnNvbGUuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpBdWRp
b0Rlc3RpbmF0aW9uR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRp
b25HU3RyZWFtZXI6OmZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldhdlBhcnNlclBhZFJlYWR5
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OmhhbmRsZU1l
c3NhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyLmg6CisgICAgICAgIChBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKToKKwog
MjAxMi0xMi0yOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gU29tZSBHU3RyZWFtZXItcmVsYXRlZCBmaWxlcyBkb24ndCBuZWVkIHRvIGJl
IGluIGxpYldlYkNvcmVHVEsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNw
cAppbmRleCAxZGVmZWZiLi42Y2IxOWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXIuY3BwCkBAIC0zNiw2ICszNiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBu
ZWVkcyB0byBoYW5kbGUgdGhpcyBudW1iZXIgb2YgZnJhbWVzIHBlciBjeWNsZSBhcyB3ZWxsLgog
Y29uc3QgdW5zaWduZWQgZnJhbWVzVG9QdWxsID0gMTI4OwogCitnYm9vbGVhbiBtZXNzYWdlQ2Fs
bGJhY2soR3N0QnVzKiBidXMsIEdzdE1lc3NhZ2UqIG1lc3NhZ2UsIEF1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXIqIGRlc3RpbmF0aW9uKQoreworICAgIHJldHVybiBkZXN0aW5hdGlvbi0+aGFuZGxl
TWVzc2FnZShtZXNzYWdlKTsKK30KKwogUGFzc093blB0cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRp
b0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxvYXQgc2Ft
cGxlUmF0ZSkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXIoY2FsbGJhY2ssIHNhbXBsZVJhdGUpKTsKQEAgLTU4LDYgKzYzLDkgQEAgQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJh
Y2smIGNhbGxiYWNrLAogICAgICwgbV9pc1BsYXlpbmcoZmFsc2UpCiB7CiAgICAgbV9waXBlbGlu
ZSA9IGdzdF9waXBlbGluZV9uZXcoInBsYXkiKTsKKyAgICBHUmVmUHRyPEdzdEJ1cz4gYnVzID0g
Z3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlwZWxpbmUpKTsKKyAgICBnc3Rf
YnVzX2FkZF9zaWduYWxfd2F0Y2goYnVzLmdldCgpKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGJ1
cy5nZXQoKSwgIm1lc3NhZ2UiLCBHX0NBTExCQUNLKG1lc3NhZ2VDYWxsYmFjayksIHRoaXMpOwog
CiAgICAgR3N0RWxlbWVudCogd2Via2l0QXVkaW9TcmMgPSByZWludGVycHJldF9jYXN0PEdzdEVs
ZW1lbnQqPihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0FVRElPX1NSQywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicmF0ZSIsIHNhbXBsZVJhdGUsCkBAIC03OSw2ICs4Nyw4IEBAIEF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoQXVkaW9JT0NhbGxi
YWNrJiBjYWxsYmFjaywKIAogQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1ZGlvRGVzdGlu
YXRpb25HU3RyZWFtZXIoKQogeworICAgIEdSZWZQdHI8R3N0QnVzPiBidXMgPSBnc3RfcGlwZWxp
bmVfZ2V0X2J1cyhHU1RfUElQRUxJTkUobV9waXBlbGluZSkpOworICAgIGdfc2lnbmFsX2hhbmRs
ZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhidXMuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Z3BvaW50
ZXI+KG1lc3NhZ2VDYWxsYmFjayksIHRoaXMpOwogICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSht
X3BpcGVsaW5lLCBHU1RfU1RBVEVfTlVMTCk7CiAgICAgZ3N0X29iamVjdF91bnJlZihtX3BpcGVs
aW5lKTsKIH0KQEAgLTExOSw2ICsxMjksMTkgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyOjpmaW5pc2hCdWlsZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeShHc3QKICAg
ICBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KGF1ZGlvU2luay5sZWFrUmVmKCkp
OwogfQogCitnYm9vbGVhbiBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdl
KEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCit7CisgICAgc3dpdGNoIChHU1RfTUVTU0FHRV9UWVBFKG1l
c3NhZ2UpKSB7CisgICAgY2FzZSBHU1RfTUVTU0FHRV9FUlJPUjoKKyAgICAgICAgZ3N0X2VsZW1l
bnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9OVUxMKTsKKyAgICAgICAgbV9pc1Bs
YXlpbmcgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIHJldHVybiBUUlVFOworfQorCiB2b2lkIEF1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXI6OnN0YXJ0KCkKIHsKICAgICBBU1NFUlQobV93YXZQYXJzZXJBdmFpbGFibGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKaW5kZXggOGJlYmI1YS4uMjZlMzQy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCkBAIC0yNCw2ICsyNCw3
IEBACiAKIHR5cGVkZWYgc3RydWN0IF9Hc3RFbGVtZW50IEdzdEVsZW1lbnQ7CiB0eXBlZGVmIHN0
cnVjdCBfR3N0UGFkIEdzdFBhZDsKK3R5cGVkZWYgc3RydWN0IF9Hc3RNZXNzYWdlIEdzdE1lc3Nh
Z2U7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsNiArNDEsNyBAQCBwdWJsaWM6CiAg
ICAgQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7
IH0KIAogICAgIHZvaWQgZmluaXNoQnVpbGRpbmdQaXBlbGluZUFmdGVyV2F2UGFyc2VyUGFkUmVh
ZHkoR3N0UGFkKik7CisgICAgZ2Jvb2xlYW4gaGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKik7CiAK
IHByaXZhdGU6CiAgICAgQXVkaW9JT0NhbGxiYWNrJiBtX2NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAppbmRleCBhZDNlZmIwLi43NTE3MjIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVh
ZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2lu
Y2x1ZGUgPGdzdC9wYnV0aWxzL3BidXRpbHMuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTIyNywyMCArMjI2LDExIEBAIEdzdEZsb3dSZXR1cm4gQXVkaW9GaWxlUmVh
ZGVyOjpoYW5kbGVCdWZmZXIoR3N0QXBwU2luayogc2luaykKIAogZ2Jvb2xlYW4gQXVkaW9GaWxl
UmVhZGVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiB7Ci0gICAgR093blB0
cjxHRXJyb3I+IGVycm9yOwotICAgIEdPd25QdHI8Z2NoYXI+IGRlYnVnOwotCiAgICAgc3dpdGNo
IChHU1RfTUVTU0FHRV9UWVBFKG1lc3NhZ2UpKSB7CiAgICAgY2FzZSBHU1RfTUVTU0FHRV9FT1M6
CiAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9sb29wLmdldCgpKTsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBHU1RfTUVTU0FHRV9XQVJOSU5HOgotICAgICAgICBnc3RfbWVzc2FnZV9wYXJz
ZV93YXJuaW5nKG1lc3NhZ2UsICZlcnJvci5vdXRQdHIoKSwgJmRlYnVnLm91dFB0cigpKTsKLSAg
ICAgICAgZ193YXJuaW5nKCJXYXJuaW5nOiAlZCwgJXMuIERlYnVnIG91dHB1dDogJXMiLCBlcnJv
ci0+Y29kZSwgIGVycm9yLT5tZXNzYWdlLCBkZWJ1Zy5nZXQoKSk7Ci0gICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgR1NUX01FU1NBR0VfRVJST1I6Ci0gICAgICAgIGdzdF9tZXNzYWdlX3BhcnNlX2Vy
cm9yKG1lc3NhZ2UsICZlcnJvci5vdXRQdHIoKSwgJmRlYnVnLm91dFB0cigpKTsKLSAgICAgICAg
Z193YXJuaW5nKCJFcnJvcjogJWQsICVzLiBEZWJ1ZyBvdXRwdXQ6ICVzIiwgZXJyb3ItPmNvZGUs
ICBlcnJvci0+bWVzc2FnZSwgZGVidWcuZ2V0KCkpOwogICAgICAgICBtX2Vycm9yT2NjdXJyZWQg
PSB0cnVlOwogICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fbG9vcC5nZXQoKSk7CiAgICAgICAg
IGJyZWFrOwotLSAKMS43LjEwLjQ=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180893</attachid>
            <date>2012-12-28 12:44:45 -0800</date>
            <delta_ts>2012-12-28 12:46:58 -0800</delta_ts>
            <desc>AudioDestination: GstMessage handler</desc>
            <filename>AudioDestination-GstMessage-handler.patch</filename>
            <type>text/plain</type>
            <size>6612</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiOTNhYWZmMGFkYjVlYjEzNTk4ODBhMjMwNTY0ZjE3ZDNkODA5ZWY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDI4IERlYyAyMDEyIDIxOjM2OjIxICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
QXVkaW9EZXN0aW5hdGlvbjogR3N0TWVzc2FnZSBoYW5kbGVyCgotLS0KIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysrKysrKysrKysK
IC4uLi9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAgIHwgICAz
MiArKysrKysrKysrKysrKysrKysrKwogLi4uL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0
aW9uR1N0cmVhbWVyLmggICAgfCAgICAyICsrCiAuLi4vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmls
ZVJlYWRlckdTdHJlYW1lci5jcHAgICB8ICAgIDQgKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDU1IGlu
c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJkMzQzM2EuLmY0ODJk
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMi0xOCAgUGhpbGlwcGUgTm9y
bWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gR3N0TWVz
c2FnZSBoYW5kbGVyIGluIEF1ZGlvRGVzdGluYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTI5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhbmRsZSBHU3RyZWFtZXIgd2FybmluZ3MgYW5kIGVy
cm9ycyBjb21pbmcgZnJvbSB0aGUgcGxheWJhY2sKKyAgICAgICAgcGlwZWxpbmUuIEZvciBub3cg
d2Ugb25seSBkaXNwbGF5IHdhcm5pbmdzIG9uIHRoZSBjb25zb2xlLgorCisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlv
bkdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVy
OjpmaW5pc2hCdWlsZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeSk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
ci5oOgorICAgICAgICAoQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcik6CisKIDIwMTItMTItMjgg
IFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
IFNvbWUgR1N0cmVhbWVyLXJlbGF0ZWQgZmlsZXMgZG9uJ3QgbmVlZCB0byBiZSBpbiBsaWJXZWJD
b3JlR1RLCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKaW5kZXggMWRl
ZmVmYi4uNDM4NmM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNw
cApAQCAtMzYsNiArMzYsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gbmVlZHMgdG8gaGFu
ZGxlIHRoaXMgbnVtYmVyIG9mIGZyYW1lcyBwZXIgY3ljbGUgYXMgd2VsbC4KIGNvbnN0IHVuc2ln
bmVkIGZyYW1lc1RvUHVsbCA9IDEyODsKIAorZ2Jvb2xlYW4gbWVzc2FnZUNhbGxiYWNrKEdzdEJ1
cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKiBk
ZXN0aW5hdGlvbikKK3sKKyAgICByZXR1cm4gZGVzdGluYXRpb24tPmhhbmRsZU1lc3NhZ2UobWVz
c2FnZSk7Cit9CisKIFBhc3NPd25QdHI8QXVkaW9EZXN0aW5hdGlvbj4gQXVkaW9EZXN0aW5hdGlv
bjo6Y3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssIGZsb2F0IHNhbXBsZVJhdGUpCiB7
CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKGNhbGxi
YWNrLCBzYW1wbGVSYXRlKSk7CkBAIC01OCw2ICs2Myw5IEBAIEF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFj
aywKICAgICAsIG1faXNQbGF5aW5nKGZhbHNlKQogewogICAgIG1fcGlwZWxpbmUgPSBnc3RfcGlw
ZWxpbmVfbmV3KCJwbGF5Iik7CisgICAgR1JlZlB0cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihn
c3RfcGlwZWxpbmVfZ2V0X2J1cyhHU1RfUElQRUxJTkUobV9waXBlbGluZSkpKTsKKyAgICBnc3Rf
YnVzX2FkZF9zaWduYWxfd2F0Y2goYnVzLmdldCgpKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGJ1
cy5nZXQoKSwgIm1lc3NhZ2UiLCBHX0NBTExCQUNLKG1lc3NhZ2VDYWxsYmFjayksIHRoaXMpOwog
CiAgICAgR3N0RWxlbWVudCogd2Via2l0QXVkaW9TcmMgPSByZWludGVycHJldF9jYXN0PEdzdEVs
ZW1lbnQqPihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0FVRElPX1NSQywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicmF0ZSIsIHNhbXBsZVJhdGUsCkBAIC03OSw2ICs4Nyw4IEBAIEF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoQXVkaW9JT0NhbGxi
YWNrJiBjYWxsYmFjaywKIAogQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1ZGlvRGVzdGlu
YXRpb25HU3RyZWFtZXIoKQogeworICAgIEdSZWZQdHI8R3N0QnVzPiBidXMgPSBhZG9wdEdSZWYo
Z3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlwZWxpbmUpKSk7CisgICAgZ19z
aWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKGJ1cy5nZXQoKSwgcmVpbnRlcnByZXRf
Y2FzdDxncG9pbnRlcj4obWVzc2FnZUNhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ3N0X2VsZW1lbnRf
c2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9OVUxMKTsKICAgICBnc3Rfb2JqZWN0X3Vu
cmVmKG1fcGlwZWxpbmUpOwogfQpAQCAtMTE5LDYgKzEyOSwyOCBAQCB2b2lkIEF1ZGlvRGVzdGlu
YXRpb25HU3RyZWFtZXI6OmZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldhdlBhcnNlclBhZFJl
YWR5KEdzdAogICAgIGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoYXVkaW9TaW5r
LmxlYWtSZWYoKSk7CiB9CiAKK2dib29sZWFuIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6Omhh
bmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKK3sKKyAgICBHT3duUHRyPEdFcnJvcj4g
ZXJyb3I7CisgICAgR093blB0cjxnY2hhcj4gZGVidWc7CisKKyAgICBzd2l0Y2ggKEdTVF9NRVNT
QUdFX1RZUEUobWVzc2FnZSkpIHsKKyAgICBjYXNlIEdTVF9NRVNTQUdFX1dBUk5JTkc6CisgICAg
ICAgIGdzdF9tZXNzYWdlX3BhcnNlX3dhcm5pbmcobWVzc2FnZSwgJmVycm9yLm91dFB0cigpLCAm
ZGVidWcub3V0UHRyKCkpOworICAgICAgICBnX3dhcm5pbmcoIldhcm5pbmc6ICVkLCAlcy4gRGVi
dWcgb3V0cHV0OiAlcyIsIGVycm9yLT5jb2RlLCAgZXJyb3ItPm1lc3NhZ2UsIGRlYnVnLmdldCgp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHU1RfTUVTU0FHRV9FUlJPUjoKKyAgICAgICAg
Z3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IobWVzc2FnZSwgJmVycm9yLm91dFB0cigpLCAmZGVidWcu
b3V0UHRyKCkpOworICAgICAgICBnX3dhcm5pbmcoIkVycm9yOiAlZCwgJXMuIERlYnVnIG91dHB1
dDogJXMiLCBlcnJvci0+Y29kZSwgIGVycm9yLT5tZXNzYWdlLCBkZWJ1Zy5nZXQoKSk7CisgICAg
ICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BpcGVsaW5lLCBHU1RfU1RBVEVfTlVMTCk7Cisg
ICAgICAgIG1faXNQbGF5aW5nID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gVFJVRTsKK30KKwogdm9pZCBBdWRp
b0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKG1fd2F2UGFyc2Vy
QXZhaWxhYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCmluZGV4IDhi
ZWJiNWEuLjI2ZTM0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaApA
QCAtMjQsNiArMjQsNyBAQAogCiB0eXBlZGVmIHN0cnVjdCBfR3N0RWxlbWVudCBHc3RFbGVtZW50
OwogdHlwZWRlZiBzdHJ1Y3QgX0dzdFBhZCBHc3RQYWQ7Cit0eXBlZGVmIHN0cnVjdCBfR3N0TWVz
c2FnZSBHc3RNZXNzYWdlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDYgKzQxLDcg
QEAgcHVibGljOgogICAgIEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2soKSBjb25zdCB7IHJldHVy
biBtX2NhbGxiYWNrOyB9CiAKICAgICB2b2lkIGZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldh
dlBhcnNlclBhZFJlYWR5KEdzdFBhZCopOworICAgIGdib29sZWFuIGhhbmRsZU1lc3NhZ2UoR3N0
TWVzc2FnZSopOwogCiBwcml2YXRlOgogICAgIEF1ZGlvSU9DYWxsYmFjayYgbV9jYWxsYmFjazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKaW5kZXggYWQzZWZiMC4uMzZk
YTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVy
L0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKQEAgLTE0OCw3
ICsxNDgsNyBAQCBBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlvRmlsZVJlYWRlcihjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QgZGF0YVNpemUpCiBBdWRpb0ZpbGVSZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIo
KQogewogICAgIGlmIChtX3BpcGVsaW5lKSB7Ci0gICAgICAgIEdSZWZQdHI8R3N0QnVzPiBidXMg
PSBnc3RfcGlwZWxpbmVfZ2V0X2J1cyhHU1RfUElQRUxJTkUobV9waXBlbGluZSkpOworICAgICAg
ICBHUmVmUHRyPEdzdEJ1cz4gYnVzID0gYWRvcHRHUmVmKGdzdF9waXBlbGluZV9nZXRfYnVzKEdT
VF9QSVBFTElORShtX3BpcGVsaW5lKSkpOwogICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNj
b25uZWN0X2J5X2Z1bmMoYnVzLmdldCgpLCByZWludGVycHJldF9jYXN0PGdwb2ludGVyPihtZXNz
YWdlQ2FsbGJhY2spLCB0aGlzKTsKICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlw
ZWxpbmUsIEdTVF9TVEFURV9OVUxMKTsKICAgICAgICAgZ3N0X29iamVjdF91bnJlZihHU1RfT0JK
RUNUKG1fcGlwZWxpbmUpKTsKQEAgLTMzMSw3ICszMzEsNyBAQCB2b2lkIEF1ZGlvRmlsZVJlYWRl
cjo6ZGVjb2RlQXVkaW9Gb3JCdXNDcmVhdGlvbigpCiAgICAgLy8gQSBkZWludGVybGVhdmUgZWxl
bWVudCBpcyBhZGRlZCBvbmNlIGEgc3JjIHBhZCBiZWNvbWVzIGF2YWlsYWJsZSBpbiBkZWNvZGVi
aW4uCiAgICAgbV9waXBlbGluZSA9IGdzdF9waXBlbGluZV9uZXcoMCk7CiAKLSAgICBHUmVmUHRy
PEdzdEJ1cz4gYnVzID0gZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlwZWxp
bmUpKTsKKyAgICBHUmVmUHRyPEdzdEJ1cz4gYnVzID0gYWRvcHRHUmVmKGdzdF9waXBlbGluZV9n
ZXRfYnVzKEdTVF9QSVBFTElORShtX3BpcGVsaW5lKSkpOwogICAgIGdzdF9idXNfYWRkX3NpZ25h
bF93YXRjaChidXMuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnVzLmdldCgpLCAibWVz
c2FnZSIsIEdfQ0FMTEJBQ0sobWVzc2FnZUNhbGxiYWNrKSwgdGhpcyk7CiAKLS0gCjEuNy4xMC40
</data>
<flag name="review"
          id="198313"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180954</attachid>
            <date>2012-12-30 06:13:45 -0800</date>
            <delta_ts>2012-12-30 06:13:45 -0800</delta_ts>
            <desc>Test patch using manual unref&apos;ing</desc>
            <filename>gst_unref.patch</filename>
            <type>text/plain</type>
            <size>3895</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAppbmRleCA0Mzg2YzRmLi4x
N2ZjMDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCkBAIC0z
Niw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIG5lZWRzIHRvIGhhbmRsZSB0aGlz
IG51bWJlciBvZiBmcmFtZXMgcGVyIGN5Y2xlIGFzIHdlbGwuCiBjb25zdCB1bnNpZ25lZCBmcmFt
ZXNUb1B1bGwgPSAxMjg7CiAKLWdib29sZWFuIG1lc3NhZ2VDYWxsYmFjayhHc3RCdXMqIGJ1cywg
R3N0TWVzc2FnZSogbWVzc2FnZSwgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lciogZGVzdGluYXRp
b24pCitnYm9vbGVhbiBtZXNzYWdlQ2FsbGJhY2soR3N0QnVzKiwgR3N0TWVzc2FnZSogbWVzc2Fn
ZSwgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lciogZGVzdGluYXRpb24pCiB7CiAgICAgcmV0dXJu
IGRlc3RpbmF0aW9uLT5oYW5kbGVNZXNzYWdlKG1lc3NhZ2UpOwogfQpAQCAtNjMsOSArNjMsMTEg
QEAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihB
dWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogICAgICwgbV9pc1BsYXlpbmcoZmFsc2UpCiB7CiAg
ICAgbV9waXBlbGluZSA9IGdzdF9waXBlbGluZV9uZXcoInBsYXkiKTsKLSAgICBHUmVmUHRyPEdz
dEJ1cz4gYnVzID0gYWRvcHRHUmVmKGdzdF9waXBlbGluZV9nZXRfYnVzKEdTVF9QSVBFTElORSht
X3BpcGVsaW5lKSkpOwotICAgIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaChidXMuZ2V0KCkpOwot
ICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnVzLmdldCgpLCAibWVzc2FnZSIsIEdfQ0FMTEJBQ0sobWVz
c2FnZUNhbGxiYWNrKSwgdGhpcyk7CisgICAgR3N0QnVzKiBidXMgPSBnc3RfcGlwZWxpbmVfZ2V0
X2J1cyhHU1RfUElQRUxJTkUobV9waXBlbGluZSkpOworICAgIEFTU0VSVChidXMpOworICAgIGdz
dF9idXNfYWRkX3NpZ25hbF93YXRjaChidXMpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnVzLCAi
bWVzc2FnZSIsIEdfQ0FMTEJBQ0sobWVzc2FnZUNhbGxiYWNrKSwgdGhpcyk7CisgICAgZ3N0X29i
amVjdF91bnJlZihidXMpOwogCiAgICAgR3N0RWxlbWVudCogd2Via2l0QXVkaW9TcmMgPSByZWlu
dGVycHJldF9jYXN0PEdzdEVsZW1lbnQqPihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0FV
RElPX1NSQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmF0ZSIsIHNhbXBsZVJhdGUsCkBAIC04Nyw4
ICs4OSwxMCBAQCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0
cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2ssCiAKIEF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXI6On5BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKCkKIHsKLSAgICBHUmVmUHRyPEdzdEJ1
cz4gYnVzID0gYWRvcHRHUmVmKGdzdF9waXBlbGluZV9nZXRfYnVzKEdTVF9QSVBFTElORShtX3Bp
cGVsaW5lKSkpOwotICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhidXMu
Z2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Z3BvaW50ZXI+KG1lc3NhZ2VDYWxsYmFjayksIHRoaXMp
OworICAgIEdzdEJ1cyogYnVzID0gZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1f
cGlwZWxpbmUpKTsKKyAgICBBU1NFUlQoYnVzKTsKKyAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNj
b25uZWN0X2J5X2Z1bmMoYnVzLCByZWludGVycHJldF9jYXN0PGdwb2ludGVyPihtZXNzYWdlQ2Fs
bGJhY2spLCB0aGlzKTsKKyAgICBnc3Rfb2JqZWN0X3VucmVmKGJ1cyk7CiAgICAgZ3N0X2VsZW1l
bnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9OVUxMKTsKICAgICBnc3Rfb2JqZWN0
X3VucmVmKG1fcGlwZWxpbmUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVy
LmNwcAppbmRleCAzNmRhNTQwLi42MWRhNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVy
R1N0cmVhbWVyLmNwcApAQCAtMTQ4LDggKzE0OCwxMCBAQCBBdWRpb0ZpbGVSZWFkZXI6OkF1ZGlv
RmlsZVJlYWRlcihjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUpCiBBdWRpb0ZpbGVS
ZWFkZXI6On5BdWRpb0ZpbGVSZWFkZXIoKQogewogICAgIGlmIChtX3BpcGVsaW5lKSB7Ci0gICAg
ICAgIEdSZWZQdHI8R3N0QnVzPiBidXMgPSBhZG9wdEdSZWYoZ3N0X3BpcGVsaW5lX2dldF9idXMo
R1NUX1BJUEVMSU5FKG1fcGlwZWxpbmUpKSk7Ci0gICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rp
c2Nvbm5lY3RfYnlfZnVuYyhidXMuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Z3BvaW50ZXI+KG1l
c3NhZ2VDYWxsYmFjayksIHRoaXMpOworICAgICAgICBHc3RCdXMqIGJ1cyA9IGdzdF9waXBlbGlu
ZV9nZXRfYnVzKEdTVF9QSVBFTElORShtX3BpcGVsaW5lKSk7CisgICAgICAgIEFTU0VSVChidXMp
OworICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoYnVzLCByZWlu
dGVycHJldF9jYXN0PGdwb2ludGVyPihtZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKKyAgICAgICAg
Z3N0X29iamVjdF91bnJlZihidXMpOwogICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9w
aXBlbGluZSwgR1NUX1NUQVRFX05VTEwpOwogICAgICAgICBnc3Rfb2JqZWN0X3VucmVmKEdTVF9P
QkpFQ1QobV9waXBlbGluZSkpOwogICAgIH0KQEAgLTMzMSw5ICszMzMsMTEgQEAgdm9pZCBBdWRp
b0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRpb24oKQogICAgIC8vIEEgZGVpbnRl
cmxlYXZlIGVsZW1lbnQgaXMgYWRkZWQgb25jZSBhIHNyYyBwYWQgYmVjb21lcyBhdmFpbGFibGUg
aW4gZGVjb2RlYmluLgogICAgIG1fcGlwZWxpbmUgPSBnc3RfcGlwZWxpbmVfbmV3KDApOwogCi0g
ICAgR1JlZlB0cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihnc3RfcGlwZWxpbmVfZ2V0X2J1cyhH
U1RfUElQRUxJTkUobV9waXBlbGluZSkpKTsKLSAgICBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2go
YnVzLmdldCgpKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KGJ1cy5nZXQoKSwgIm1lc3NhZ2UiLCBH
X0NBTExCQUNLKG1lc3NhZ2VDYWxsYmFjayksIHRoaXMpOworICAgIEdzdEJ1cyogYnVzID0gZ3N0
X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlwZWxpbmUpKTsKKyAgICBBU1NFUlQo
YnVzKTsKKyAgICBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2goYnVzKTsKKyAgICBnX3NpZ25hbF9j
b25uZWN0KGJ1cywgIm1lc3NhZ2UiLCBHX0NBTExCQUNLKG1lc3NhZ2VDYWxsYmFjayksIHRoaXMp
OworICAgIGdzdF9vYmplY3RfdW5yZWYoYnVzKTsKIAogICAgIEdzdEVsZW1lbnQqIHNvdXJjZTsK
ICAgICBpZiAobV9kYXRhKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>