Return-Path: Message-ID: Date: Tue, 25 Sep 2007 12:51:32 -0300 From: thiagoss To: bluez-devel@lists.sourceforge.net In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_848_19277766.1190735492146" References: Subject: Re: [Bluez-devel] patches fixing gstreamer plugins Reply-To: BlueZ development List-Id: BlueZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: bluez-devel-bounces@lists.sourceforge.net Errors-To: bluez-devel-bounces@lists.sourceforge.net ------=_Part_848_19277766.1190735492146 Content-Type: multipart/alternative; boundary="----=_Part_849_30871823.1190735492146" ------=_Part_849_30871823.1190735492146 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Sorry, I attached the wrong versions from the patches, I'm attaching the correct versions now. On 9/25/07, thiagoss wrote: > > Patches for Bluez utils, modifying the sbcenc and sbcparse gstreamer > plugins on utils/audio > > > The problem: > The pipeline "filesrc ! audioconvert ! sbcenc ! sbcparse ! fakesink" is > not working > > The reason: > The caps negotiation from both sbcenc and sbcparse was not working > properly, it was not resulting in a "fixed caps" (that defines one and only > one media type) > > The solution: > Implement on both elements the setcaps for the sink pads. > > > The patch gstsbc_util.patch has to be applied first, it creates 2 new > files( a gstsbcutil.c and a gstsbcutil.h) that the other 2 patches use. > Those files implement a set of functions that both sbcenc and sbcparse use, > most of them are still to be improved, > > The gstsbcenc.patch and sbcparse.patch implement the sink setcaps function > on the plugins, this function selects the better encoding parameters from > the possible ones, resulting in a "fixed caps". > > I'll be waiting any questions and modification to the patches. > > > []s > > Thiago > > ------=_Part_849_30871823.1190735492146 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Sorry, I attached the wrong versions from the patches, I'm attaching the correct versions now.

On 9/25/07, thiagoss < thiagossantos@gmail.com> wrote:
Patches for Bluez utils, modifying the sbcenc and sbcparse gstreamer plugins on utils/audio


The problem:
The pipeline "filesrc ! audioconvert ! sbcenc ! sbcparse ! fakesink" is not working

The reason:
The caps negotiation from both sbcenc and sbcparse was not working properly, it was not resulting in a "fixed caps" (that defines one and only one media type)

The solution:
Implement on both elements the setcaps for the sink pads.


The patch gstsbc_util.patch has to be applied first, it creates 2 new files( a gstsbcutil.c and a gstsbcutil.h) that the other 2 patches use. Those files implement a set of functions that both sbcenc and sbcparse use, most of them are still to be improved,

The gstsbcenc.patch and sbcparse.patch implement the sink setcaps function on the plugins, this function selects the better encoding parameters from the possible ones, resulting in a "fixed caps".

I'll be waiting any questions and modification to the patches.


[]s

Thiago


------=_Part_849_30871823.1190735492146-- ------=_Part_848_19277766.1190735492146 Content-Type: text/x-patch; name="gstsbcenc.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gstsbcenc.patch"; filename="gstsbcenc.patch" X-Attachment-Id: f_f70l2xms SW5kZXg6IGF1ZGlvL2dzdHNiY2VuYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2Js dWV6L3V0aWxzL2F1ZGlvL2dzdHNiY2VuYy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlm ZiAtdSAtcjEuNCBnc3RzYmNlbmMuYwotLS0gYXVkaW8vZ3N0c2JjZW5jLmMJMjcgQXVnIDIwMDcg MTQ6MTA6MDAgLTAwMDAJMS40CisrKyBhdWRpby9nc3RzYmNlbmMuYwkyNCBTZXAgMjAwNyAxOTo0 MDozMCAtMDAwMApAQCAtMjgsNiArMjgsMTQgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2lu Y2x1ZGUgImdzdHNiY2VuYy5oIgorI2luY2x1ZGUgImdzdHNiY3V0aWwuaCIKKworCisjZGVmaW5l IFNCQ19FTkNfREVGQVVMVF9NT0RFIENGR19NT0RFX0FVVE8KKyNkZWZpbmUJU0JDX0VOQ19ERUZB VUxUX0JMT0NLUyAxNgorI2RlZmluZQlTQkNfRU5DX0RFRkFVTFRfU1VCX0JBTkRTIDgKKyNkZWZp bmUJU0JDX0VOQ19ERUZBVUxUX0FMTE9DQVRJT04gQ0ZHX0FMTE9DQVRJT05fQVVUTworCiAKIEdT VF9ERUJVR19DQVRFR09SWV9TVEFUSUMoc2JjX2VuY19kZWJ1Zyk7CiAjZGVmaW5lIEdTVF9DQVRf REVGQVVMVCBzYmNfZW5jX2RlYnVnCkBAIC01Miw5ICs2MCwzMSBAQAogCXJldHVybiBzYmNfbW9k ZV90eXBlOwogfQogCisjZGVmaW5lIEdTVF9UWVBFX1NCQ19BTExPQ0FUSU9OIChnc3Rfc2JjX2Fs bG9jYXRpb25fZ2V0X3R5cGUoKSkKKworc3RhdGljIEdUeXBlIGdzdF9zYmNfYWxsb2NhdGlvbl9n ZXRfdHlwZSh2b2lkKQoreworCXN0YXRpYyBHVHlwZSBzYmNfYWxsb2NhdGlvbl90eXBlID0gMDsK KwlzdGF0aWMgR0VudW1WYWx1ZSBzYmNfYWxsb2NhdGlvbnNbXSA9IHsKKwkJeyBDRkdfQUxMT0NB VElPTl9BVVRPLAkJIkF1dG8iLAkJImF1dG8iIH0sCisJCXsgQ0ZHX0FMTE9DQVRJT05fTE9VRE5F U1MsCSJMb3VkbmVzcyIsCSJsb3VkbmVzcyIgfSwKKwkJeyBDRkdfQUxMT0NBVElPTl9TTlIsCQki U05SIiwJCSJzbnIiIH0sCisJCXsgLTEsIE5VTEwsIE5VTEx9CisJfTsKKworCWlmICghc2JjX2Fs bG9jYXRpb25fdHlwZSkKKwkJc2JjX2FsbG9jYXRpb25fdHlwZSA9IGdfZW51bV9yZWdpc3Rlcl9z dGF0aWMoCisJCQkJIkdzdFNiY0FsbG9jYXRpb24iLCBzYmNfYWxsb2NhdGlvbnMpOworCisJcmV0 dXJuIHNiY19hbGxvY2F0aW9uX3R5cGU7Cit9CisKIGVudW0gewogCVBST1BfMCwKIAlQUk9QX01P REUsCisJUFJPUF9BTExPQ0FUSU9OLAorCVBST1BfQkxPQ0tTLAorCVBST1BfU1VCX0JBTkRTCiB9 OwogCiBHU1RfQk9JTEVSUExBVEUoR3N0U2JjRW5jLCBnc3Rfc2JjX2VuYywgR3N0RWxlbWVudCwg R1NUX1RZUEVfRUxFTUVOVCk7CkBAIC04NSwyNyArMTE1LDk0IEBACiAJCQkJInN1YmJhbmRzID0g KGludCkgeyA0LCA4IH0sICIKIAkJCQkiYWxsb2NhdGlvbiA9IChzdHJpbmcpIHsgc25yLCBsb3Vk bmVzcyB9IikpOwogCisKKworCisKK3N0YXRpYyBHc3RDYXBzKiBzYmNfZW5jX2dlbmVyYXRlX3Ny Y3BhZF9jYXBzKEdzdFNiY0VuYyAqZW5jLCBHc3RDYXBzICpjYXBzKQoreworCWdpbnQgcmF0ZTsK KwlnaW50IGNoYW5uZWxzOworCUdzdENhcHMqIHNyY19jYXBzOworCUdzdFN0cnVjdHVyZSAqc3Ry dWN0dXJlOworCisJc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShjYXBzLCAwKTsK KworCWlmICghZ3N0X3N0cnVjdHVyZV9nZXRfaW50IChzdHJ1Y3R1cmUsICJyYXRlIiwgJnJhdGUp KQorCQlyZXR1cm4gTlVMTDsKKwlpZiAoIWdzdF9zdHJ1Y3R1cmVfZ2V0X2ludCAoc3RydWN0dXJl LCAiY2hhbm5lbHMiLCAmY2hhbm5lbHMpKQorCQlyZXR1cm4gTlVMTDsKKworCWVuYy0+c2JjLnJh dGUgPSByYXRlOworCWVuYy0+c2JjLmNoYW5uZWxzID0gY2hhbm5lbHM7CisKKwlpZiAoZW5jLT5t b2RlID09IDApCisJCWVuYy0+c2JjLmpvaW50ID0gQ0ZHX01PREVfSk9JTlRfU1RFUkVPOworCWVs c2UKKwkJZW5jLT5zYmMuam9pbnQgPSBlbmMtPm1vZGU7CisKKwllbmMtPnNiYy5ibG9ja3MgPSBl bmMtPmJsb2NrczsKKwllbmMtPnNiYy5zdWJiYW5kcyA9IGVuYy0+c3ViYmFuZHM7CisJaWYgKGVu Yy0+YWxsb2NhdGlvbiA9PSAwKQorCQllbmMtPnNiYy5hbGxvY2F0aW9uID0gQ0ZHX0FMTE9DQVRJ T05fTE9VRE5FU1M7CisJZWxzZQorCQllbmMtPnNiYy5hbGxvY2F0aW9uID0gZW5jLT5hbGxvY2F0 aW9uOworCisJc3JjX2NhcHMgPSBnc3RfY2Fwc19uZXdfc2ltcGxlKAorCQkJImF1ZGlvL3gtc2Jj IiwgCisJCQkicmF0ZSIsIEdfVFlQRV9JTlQsIGVuYy0+c2JjLnJhdGUsCisJCQkiY2hhbm5lbHMi LCBHX1RZUEVfSU5ULCBlbmMtPnNiYy5jaGFubmVscywKKwkJCSJtb2RlIiwgR19UWVBFX1NUUklO RywgCisJCQkJZ3N0X3NiY19nZXRfbW9kZV9zdHJpbmcoZW5jLT5zYmMuam9pbnQpLAorCQkJInN1 YmJhbmRzIiwgR19UWVBFX0lOVCwgZW5jLT5zYmMuc3ViYmFuZHMsCisJCQkiYmxvY2tzIiwgR19U WVBFX0lOVCwgZW5jLT5zYmMuYmxvY2tzLAorCQkJImFsbG9jYXRpb24iLCBHX1RZUEVfU1RSSU5H LCAKKwkJCQlnc3Rfc2JjX2dldF9hbGxvY2F0aW9uX3N0cmluZygKKwkJCQkJZW5jLT5zYmMuYWxs b2NhdGlvbiksCisJCQlOVUxMKTsKKworCisJcmV0dXJuIHNyY19jYXBzOworCit9CisKK3N0YXRp YyBnYm9vbGVhbiBzYmNfZW5jX3Npbmtfc2V0Y2FwcyAoR3N0UGFkICogcGFkLCBHc3RDYXBzICog Y2FwcykKK3sKKworCUdzdFNiY0VuYyAqZW5jOworCUdzdFN0cnVjdHVyZSAqc3RydWN0dXJlOwor CUdzdENhcHMgKm90aGVyY2FwczsKKworCWVuYyA9IEdTVF9TQkNfRU5DKEdTVF9QQURfUEFSRU5U IChwYWQpKTsKKwlzdHJ1Y3R1cmUgPSBnc3RfY2Fwc19nZXRfc3RydWN0dXJlKGNhcHMsIDApOwor CisJb3RoZXJjYXBzID0gc2JjX2VuY19nZW5lcmF0ZV9zcmNwYWRfY2FwcyhlbmMsIGNhcHMpOwor CWlmIChvdGhlcmNhcHMgPT0gTlVMTCkKKwkJZ290byBlcnJvcjsKKworCWdzdF9wYWRfc2V0X2Nh cHMgKGVuYy0+c3JjcGFkLCBvdGhlcmNhcHMpOworCWdzdF9jYXBzX3VucmVmKG90aGVyY2Fwcyk7 CisKKwlyZXR1cm4gVFJVRTsKKworZXJyb3I6Cit7CisJR1NUX0VSUk9SX09CSkVDVCAoZW5jLCAi aW52YWxpZCBpbnB1dCBjYXBzIik7CisJcmV0dXJuIEZBTFNFOworfQorCit9CisKIHN0YXRpYyBH c3RGbG93UmV0dXJuIHNiY19lbmNfY2hhaW4oR3N0UGFkICpwYWQsIEdzdEJ1ZmZlciAqYnVmZmVy KQogewogCUdzdFNiY0VuYyAqZW5jID0gR1NUX1NCQ19FTkMoZ3N0X3BhZF9nZXRfcGFyZW50KHBh ZCkpOwogCUdzdEZsb3dSZXR1cm4gcmVzID0gR1NUX0ZMT1dfT0s7Ci0JR3N0U3RydWN0dXJlICpz dHJ1Y3R1cmU7Ci0JZ2ludCByYXRlLCBjaGFubmVsczsKIAlndWludCBzaXplLCBvZmZzZXQgPSAw OwogCWd1aW50OCAqZGF0YTsKIAogCWRhdGEgPSBHU1RfQlVGRkVSX0RBVEEoYnVmZmVyKTsKIAlz aXplID0gR1NUX0JVRkZFUl9TSVpFKGJ1ZmZlcik7CiAKLQlzdHJ1Y3R1cmUgPSBnc3RfY2Fwc19n ZXRfc3RydWN0dXJlKEdTVF9QQURfQ0FQUyhwYWQpLCAwKTsKLQlnc3Rfc3RydWN0dXJlX2dldF9p bnQoc3RydWN0dXJlLCAicmF0ZSIsICZyYXRlKTsKLQlnc3Rfc3RydWN0dXJlX2dldF9pbnQoc3Ry dWN0dXJlLCAiY2hhbm5lbHMiLCAmY2hhbm5lbHMpOwotCi0JZW5jLT5zYmMucmF0ZSA9IHJhdGU7 Ci0JZW5jLT5zYmMuY2hhbm5lbHMgPSBjaGFubmVsczsKLQllbmMtPnNiYy5zdWJiYW5kcyA9IDg7 Ci0JZW5jLT5zYmMuam9pbnQgPSAwOwotCiAJd2hpbGUgKG9mZnNldCA8IHNpemUpIHsKIAkJR3N0 QnVmZmVyICpvdXRwdXQ7CiAJCUdzdENhcHMgKmNhcHM7CkBAIC0xODQsMTEgKzI4MSwyMyBAQAog ewogCUdzdFNiY0VuYyAqZW5jID0gR1NUX1NCQ19FTkMob2JqZWN0KTsKIAorCS8qIFRPRE8gLSBD QU4gT05MWSBCRSBDSEFOR0VEIE9OIFJFQURZIEFORCBCRUxPVyAqLworCiAJc3dpdGNoIChwcm9w X2lkKSB7CiAJY2FzZSBQUk9QX01PREU6CiAJCWVuYy0+bW9kZSA9IGdfdmFsdWVfZ2V0X2VudW0o dmFsdWUpOwogCQlicmVhazsKLQorCWNhc2UgUFJPUF9BTExPQ0FUSU9OOgorCQllbmMtPmFsbG9j YXRpb24gPSBnX3ZhbHVlX2dldF9lbnVtKHZhbHVlKTsKKwkJYnJlYWs7CisJY2FzZSBQUk9QX0JM T0NLUzoKKwkJLyogVE9ETyAtIHZlcmlmeSBjb25zaXN0ZW5jeSAqLworCQllbmMtPmJsb2NrcyA9 IGdfdmFsdWVfZ2V0X2ludCh2YWx1ZSk7CisJCWJyZWFrOworCWNhc2UgUFJPUF9TVUJfQkFORFM6 CisJCS8qIFRPRE8gLSB2ZXJpZnkgY29uc2lzdGVuY3kgKi8KKwkJZW5jLT5zdWJiYW5kcyA9IGdf dmFsdWVfZ2V0X2ludCh2YWx1ZSk7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCUdfT0JKRUNUX1dB Uk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKIAkJYnJlYWs7 CkBAIC0yMDQsMTMgKzMxMywyMyBAQAogCWNhc2UgUFJPUF9NT0RFOgogCQlnX3ZhbHVlX3NldF9l bnVtKHZhbHVlLCBlbmMtPm1vZGUpOwogCQlicmVhazsKLQorCWNhc2UgUFJPUF9BTExPQ0FUSU9O OgorCQlnX3ZhbHVlX3NldF9lbnVtKHZhbHVlLCBlbmMtPmFsbG9jYXRpb24pOworCQlicmVhazsK KwljYXNlIFBST1BfQkxPQ0tTOgorCQlnX3ZhbHVlX3NldF9pbnQodmFsdWUsIGVuYy0+YmxvY2tz KTsKKwkJYnJlYWs7CisJY2FzZSBQUk9QX1NVQl9CQU5EUzoKKwkJZ192YWx1ZV9zZXRfaW50KHZh bHVlLCBlbmMtPnN1YmJhbmRzKTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJR19PQkpFQ1RfV0FS Tl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogCQlicmVhazsK IAl9CiB9CiAKKworCiBzdGF0aWMgdm9pZCBnc3Rfc2JjX2VuY19jbGFzc19pbml0KEdzdFNiY0Vu Y0NsYXNzICprbGFzcykKIHsKIAlHT2JqZWN0Q2xhc3MgKm9iamVjdF9jbGFzcyA9IEdfT0JKRUNU X0NMQVNTKGtsYXNzKTsKQEAgLTIyNCw4ICszNDMsMjQgQEAKIAllbGVtZW50X2NsYXNzLT5jaGFu Z2Vfc3RhdGUgPSBHU1RfREVCVUdfRlVOQ1BUUihzYmNfZW5jX2NoYW5nZV9zdGF0ZSk7CiAKIAln X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdF9jbGFzcywgUFJPUF9NT0RFLAot CQkJZ19wYXJhbV9zcGVjX2VudW0oIm1vZGUiLCAiTW9kZSIsICJFbmNvZGluZyBtb2RlIiwKLQkJ CQlHU1RfVFlQRV9TQkNfTU9ERSwgMCwgR19QQVJBTV9SRUFEV1JJVEUpKTsKKwkJCWdfcGFyYW1f c3BlY19lbnVtKCJtb2RlIiwgIk1vZGUiLAorCQkJCSJFbmNvZGluZyBtb2RlIiwgR1NUX1RZUEVf U0JDX01PREUsCisJCQkJU0JDX0VOQ19ERUZBVUxUX01PREUsIEdfUEFSQU1fUkVBRFdSSVRFKSk7 CisKKwlnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdF9jbGFzcywgUFJPUF9B TExPQ0FUSU9OLAorCQkJZ19wYXJhbV9zcGVjX2VudW0oImFsbG9jYXRpb24iLCAiQWxsb2NhdGlv biIsIAorCQkJCSJBbGxvY2F0aW9uIG1vZGUiLCBHU1RfVFlQRV9TQkNfQUxMT0NBVElPTiwKKwkJ CQlTQkNfRU5DX0RFRkFVTFRfQUxMT0NBVElPTiwgR19QQVJBTV9SRUFEV1JJVEUpKTsKKworCWdf b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0X2NsYXNzLCBQUk9QX0JMT0NLUywK KwkJCWdfcGFyYW1fc3BlY19pbnQoImJsb2NrcyIsICJCbG9ja3MiLAorCQkJCSJCbG9ja3MiLCAw LCBHX01BWElOVCwKKwkJCQlTQkNfRU5DX0RFRkFVTFRfQkxPQ0tTLAlHX1BBUkFNX1JFQURXUklU RSkpOworCisJZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RfY2xhc3MsIFBS T1BfU1VCX0JBTkRTLAorCQkJZ19wYXJhbV9zcGVjX2ludCgic3ViYmFuZHMiLCAiU3ViIEJhbmRz IiwKKwkJCQkiU3ViIEJhbmRzIiwgMCwgR19NQVhJTlQsCisJCQkJU0JDX0VOQ19ERUZBVUxUX1NV Ql9CQU5EUywgR19QQVJBTV9SRUFEV1JJVEUpKTsKIAogCUdTVF9ERUJVR19DQVRFR09SWV9JTklU KHNiY19lbmNfZGVidWcsICJzYmNlbmMiLCAwLAogCQkJCQkJIlNCQyBlbmNvZGluZyBlbGVtZW50 Iik7CkBAIC0yMzQsOSArMzY5LDE3IEBACiBzdGF0aWMgdm9pZCBnc3Rfc2JjX2VuY19pbml0KEdz dFNiY0VuYyAqc2VsZiwgR3N0U2JjRW5jQ2xhc3MgKmtsYXNzKQogewogCXNlbGYtPnNpbmtwYWQg PSBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSgmc2JjX2VuY19zaW5rX2ZhY3Rvcnks ICJzaW5rIik7CisJZ3N0X3BhZF9zZXRfc2V0Y2Fwc19mdW5jdGlvbiAoc2VsZi0+c2lua3BhZCwg CisJCQlHU1RfREVCVUdfRlVOQ1BUUiAoc2JjX2VuY19zaW5rX3NldGNhcHMpKTsKIAlnc3RfZWxl bWVudF9hZGRfcGFkKEdTVF9FTEVNRU5UKHNlbGYpLCBzZWxmLT5zaW5rcGFkKTsKIAogCXNlbGYt PnNyY3BhZCA9IGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlKCZzYmNfZW5jX3NyY19m YWN0b3J5LCAic3JjIik7CiAJZ3N0X3BhZF9zZXRfY2hhaW5fZnVuY3Rpb24oc2VsZi0+c2lua3Bh ZCwgR1NUX0RFQlVHX0ZVTkNQVFIoc2JjX2VuY19jaGFpbikpOwogCWdzdF9lbGVtZW50X2FkZF9w YWQoR1NUX0VMRU1FTlQoc2VsZiksIHNlbGYtPnNyY3BhZCk7CisKKwlzZWxmLT5zdWJiYW5kcyA9 IFNCQ19FTkNfREVGQVVMVF9TVUJfQkFORFM7CisJc2VsZi0+YmxvY2tzID0gU0JDX0VOQ19ERUZB VUxUX0JMT0NLUzsKKwlzZWxmLT5tb2RlID0gU0JDX0VOQ19ERUZBVUxUX01PREU7CisJc2VsZi0+ YWxsb2NhdGlvbiA9IFNCQ19FTkNfREVGQVVMVF9BTExPQ0FUSU9OOworCiB9CkluZGV4OiBhdWRp by9nc3RzYmNlbmMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9ibHVlei91dGlscy9h dWRpby9nc3RzYmNlbmMuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zCmRpZmYgLXUgLXIxLjMg Z3N0c2JjZW5jLmgKLS0tIGF1ZGlvL2dzdHNiY2VuYy5oCTI2IEF1ZyAyMDA3IDEzOjEyOjQ3IC0w MDAwCTEuMworKysgYXVkaW8vZ3N0c2JjZW5jLmgJMjQgU2VwIDIwMDcgMTk6NDA6MzIgLTAwMDAK QEAgLTI0LDYgKzI0LDggQEAKICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CiAKICNpbmNsdWRlICJzYmMu aCIKKyNpbmNsdWRlICJpcGMuaCIKKwogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTQ4LDYgKzUwLDkg QEAKIAlHc3RQYWQgKnNyY3BhZDsKIAogCWdpbnQgbW9kZTsKKwlnaW50IGJsb2NrczsKKwlnaW50 IGFsbG9jYXRpb247CisJZ2ludCBzdWJiYW5kczsKIAogCXNiY190IHNiYzsKIH07Cg== ------=_Part_848_19277766.1190735492146 Content-Type: text/x-patch; name="gstsbcparse.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gstsbcparse.patch"; filename="gstsbcparse.patch" X-Attachment-Id: f_f70l31tv SW5kZXg6IGF1ZGlvL2dzdHNiY3BhcnNlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3Qv Ymx1ZXovdXRpbHMvYXVkaW8vZ3N0c2JjcGFyc2UuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4x CmRpZmYgLXUgLXIxLjEgZ3N0c2JjcGFyc2UuYwotLS0gYXVkaW8vZ3N0c2JjcGFyc2UuYwkyNiBB dWcgMjAwNyAxMzo1OTowNSAtMDAwMAkxLjEKKysrIGF1ZGlvL2dzdHNiY3BhcnNlLmMJMjQgU2Vw IDIwMDcgMTk6MjI6NTkgLTAwMDAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxzdHJpbmcu aD4KIAogI2luY2x1ZGUgImdzdHNiY3BhcnNlLmgiCisjaW5jbHVkZSAiZ3N0c2JjdXRpbC5oIgog CiBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDKHNiY19wYXJzZV9kZWJ1Zyk7CiAjZGVmaW5lIEdT VF9DQVRfREVGQVVMVCBzYmNfcGFyc2VfZGVidWcKQEAgLTU0LDYgKzU1LDE3MyBAQAogCQkJCSJz dWJiYW5kcyA9IChpbnQpIHsgNCwgOCB9LCAiCiAJCQkJImFsbG9jYXRpb24gPSAoc3RyaW5nKSB7 IHNuciwgbG91ZG5lc3MgfSIpKTsKIAorLyoKKwlDcmVhdGVzIGEgZml4ZWQgY2FwcyBmcm9tIHRo ZSBjYXBzIGdpdmVuLgorCisqLworc3RhdGljIEdzdENhcHMqIHNiY19wYXJzZV9zZWxlY3RfY2Fw cyhHc3RTYmNQYXJzZSAqcGFyc2UsIEdzdENhcHMgKmNhcHMpCit7CisKKwlHc3RDYXBzICpyZXN1 bHQ7CisJR3N0U3RydWN0dXJlICpzdHJ1Y3R1cmU7CisJY29uc3QgR1ZhbHVlICp2YWx1ZTsKKwln Ym9vbGVhbiBlcnJvciA9IEZBTFNFOworCWdpbnQgdGVtcCwgcmF0ZSwgY2hhbm5lbHMsIGJsb2Nr cywgc3ViYmFuZHM7CisJY29uc3QgZ2NoYXIqIGFsbG9jYXRpb24gPSBOVUxMOworCWNvbnN0IGdj aGFyKiBtb2RlID0gTlVMTDsKKwljb25zdCBnY2hhciogZXJyb3JfbWVzc2FnZSA9IE5VTEw7CisK KwlzdHJ1Y3R1cmUgPSBnc3RfY2Fwc19nZXRfc3RydWN0dXJlKGNhcHMsIDApOworCisJLyogcmF0 ZSAqLworCWlmICghZ3N0X3N0cnVjdHVyZV9oYXNfZmllbGQoc3RydWN0dXJlLCAicmF0ZSIpKSB7 CisJCWVycm9yID0gVFJVRTsKKwkJZXJyb3JfbWVzc2FnZSA9ICJubyByYXRlLiI7CisJCWdvdG8g ZXJyb3I7CisJfSBlbHNlIHsKKwkJdmFsdWUgPSBnc3Rfc3RydWN0dXJlX2dldF92YWx1ZShzdHJ1 Y3R1cmUsICJyYXRlIik7CisJCWlmIChHU1RfVkFMVUVfSE9MRFNfTElTVCh2YWx1ZSkpIHsKKwkJ CXRlbXAgPSBnc3Rfc2JjX3NlbGVjdF9yYXRlX2Zyb21fbGlzdCh2YWx1ZSk7CisJCX0gZWxzZSBp ZiAoR1NUX1ZBTFVFX0hPTERTX0lOVF9SQU5HRSh2YWx1ZSkpIHsKKwkJCXRlbXAgPSBnc3Rfc2Jj X3NlbGVjdF9yYXRlX2Zyb21fcmFuZ2UodmFsdWUpOworCQl9IGVsc2UgeworCQkJdGVtcCA9IGdf dmFsdWVfZ2V0X2ludCh2YWx1ZSk7CisJCX0KKwkJcmF0ZSA9IHRlbXA7CisJfQorCisJLyogY2hh bm5lbHMgKi8KKwlpZiAoIWdzdF9zdHJ1Y3R1cmVfaGFzX2ZpZWxkKHN0cnVjdHVyZSwgImNoYW5u ZWxzIikpIHsKKwkJZXJyb3IgPSBUUlVFOworCQllcnJvcl9tZXNzYWdlID0gIm5vIGNoYW5uZWxz LiI7CisJCWdvdG8gZXJyb3I7CisJfSBlbHNlIHsKKwkJdmFsdWUgPSBnc3Rfc3RydWN0dXJlX2dl dF92YWx1ZShzdHJ1Y3R1cmUsICJjaGFubmVscyIpOworCQlpZiAoR1NUX1ZBTFVFX0hPTERTX0xJ U1QodmFsdWUpKSB7CisJCQl0ZW1wID0gZ3N0X3NiY19zZWxlY3RfY2hhbm5lbHNfZnJvbV9saXN0 KHZhbHVlKTsKKwkJfSBlbHNlIGlmIChHU1RfVkFMVUVfSE9MRFNfSU5UX1JBTkdFKHZhbHVlKSkg eworCQkJdGVtcCA9IGdzdF9zYmNfc2VsZWN0X2NoYW5uZWxzX2Zyb21fcmFuZ2UodmFsdWUpOwor CQl9IGVsc2UgeworCQkJdGVtcCA9IGdfdmFsdWVfZ2V0X2ludCh2YWx1ZSk7CisJCX0KKwkJY2hh bm5lbHMgPSB0ZW1wOworCX0KKworCS8qIGJsb2NrcyAqLworCWlmICghZ3N0X3N0cnVjdHVyZV9o YXNfZmllbGQoc3RydWN0dXJlLCAiYmxvY2tzIikpIHsKKwkJZXJyb3IgPSBUUlVFOworCQllcnJv cl9tZXNzYWdlID0gIm5vIGJsb2Nrcy4iOworCQlnb3RvIGVycm9yOworCX0gZWxzZSB7CisJCXZh bHVlID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoc3RydWN0dXJlLCAiYmxvY2tzIik7CisJCWlm IChHU1RfVkFMVUVfSE9MRFNfTElTVCh2YWx1ZSkpIHsKKwkJCXRlbXAgPSBnc3Rfc2JjX3NlbGVj dF9ibG9ja3NfZnJvbV9saXN0KHZhbHVlKTsKKwkJfSBlbHNlIGlmIChHU1RfVkFMVUVfSE9MRFNf SU5UX1JBTkdFKHZhbHVlKSkgeworCQkJdGVtcCA9IGdzdF9zYmNfc2VsZWN0X2Jsb2Nrc19mcm9t X3JhbmdlKHZhbHVlKTsKKwkJfSBlbHNlIHsKKwkJCXRlbXAgPSBnX3ZhbHVlX2dldF9pbnQodmFs dWUpOworCQl9CisJCWJsb2NrcyA9IHRlbXA7CisJfQorCisJLyogc3ViYmFuZHMgKi8KKwlpZiAo IWdzdF9zdHJ1Y3R1cmVfaGFzX2ZpZWxkKHN0cnVjdHVyZSwgInN1YmJhbmRzIikpIHsKKwkJZXJy b3IgPSBUUlVFOworCQllcnJvcl9tZXNzYWdlID0gIm5vIHN1YmJhbmRzLiI7CisJCWdvdG8gZXJy b3I7CisJfSBlbHNlIHsKKwkJdmFsdWUgPSBnc3Rfc3RydWN0dXJlX2dldF92YWx1ZShzdHJ1Y3R1 cmUsICJzdWJiYW5kcyIpOworCQlpZiAoR1NUX1ZBTFVFX0hPTERTX0xJU1QodmFsdWUpKSB7CisJ CQl0ZW1wID0gZ3N0X3NiY19zZWxlY3Rfc3ViYmFuZHNfZnJvbV9saXN0KHZhbHVlKTsKKwkJfSBl bHNlIGlmIChHU1RfVkFMVUVfSE9MRFNfSU5UX1JBTkdFKHZhbHVlKSkgeworCQkJdGVtcCA9IGdz dF9zYmNfc2VsZWN0X3N1YmJhbmRzX2Zyb21fcmFuZ2UodmFsdWUpOworCQl9IGVsc2UgeworCQkJ dGVtcCA9IGdfdmFsdWVfZ2V0X2ludCh2YWx1ZSk7CisJCX0KKwkJc3ViYmFuZHMgPSB0ZW1wOwor CX0KKworCS8qIGFsbG9jYXRpb24gKi8KKwlpZiAoIWdzdF9zdHJ1Y3R1cmVfaGFzX2ZpZWxkKHN0 cnVjdHVyZSwgImFsbG9jYXRpb24iKSkgeworCQllcnJvciA9IFRSVUU7CisJCWVycm9yX21lc3Nh Z2UgPSAibm8gYWxsb2NhdGlvbi4iOworCQlnb3RvIGVycm9yOworCX0gZWxzZSB7CisJCXZhbHVl ID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoc3RydWN0dXJlLCAiYWxsb2NhdGlvbiIpOworCQlp ZiAoR1NUX1ZBTFVFX0hPTERTX0xJU1QodmFsdWUpKSB7CisJCQlhbGxvY2F0aW9uID0gZ3N0X3Ni Y19nZXRfYWxsb2NhdGlvbl9mcm9tX2xpc3QodmFsdWUpOworCQl9IGVsc2UgeworCQkJYWxsb2Nh dGlvbiA9IGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSk7CisJCX0KKwl9CisKKworCS8qIG1vZGUg Ki8KKwlpZiAoIWdzdF9zdHJ1Y3R1cmVfaGFzX2ZpZWxkKHN0cnVjdHVyZSwgIm1vZGUiKSkgewor CQllcnJvciA9IFRSVUU7CisJCWVycm9yX21lc3NhZ2UgPSAibm8gbW9kZS4iOworCQlnb3RvIGVy cm9yOworCX0gZWxzZSB7CisJCXZhbHVlID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoc3RydWN0 dXJlLCAibW9kZSIpOworCQlpZiAoR1NUX1ZBTFVFX0hPTERTX0xJU1QodmFsdWUpKSB7CisJCQlt b2RlID0gZ3N0X3NiY19nZXRfbW9kZV9mcm9tX2xpc3QodmFsdWUpOworCQl9IGVsc2UgeworCQkJ bW9kZSA9IGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSk7CisJCX0KKwl9CisKK2Vycm9yOgorCWlm IChlcnJvcikgeworCQlHU1RfRVJST1JfT0JKRUNUIChwYXJzZSwgIkludmFsaWQgaW5wdXQgY2Fw czogJXMiLAorCQkJCWVycm9yX21lc3NhZ2UpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKworCXJl c3VsdCA9IGdzdF9jYXBzX25ld19zaW1wbGUoImF1ZGlvL3gtc2JjIiwKKwkJCQkJInJhdGUiLCBH X1RZUEVfSU5ULCByYXRlLAorCQkJCQkiY2hhbm5lbHMiLCBHX1RZUEVfSU5ULCBjaGFubmVscywK KwkJCQkJIm1vZGUiLCBHX1RZUEVfU1RSSU5HLCBtb2RlLAorCQkJCQkiYmxvY2tzIiwgR19UWVBF X0lOVCwgYmxvY2tzLAorCQkJCQkic3ViYmFuZHMiLCBHX1RZUEVfSU5ULCBzdWJiYW5kcywKKwkJ CQkJImFsbG9jYXRpb24iLCBHX1RZUEVfU1RSSU5HLCBhbGxvY2F0aW9uLAorCQkJCQlOVUxMCisJ CQkpOworCXBhcnNlLT5zYmMucmF0ZSA9IHJhdGU7CisJcGFyc2UtPnNiYy5jaGFubmVscyA9IGNo YW5uZWxzOworCXBhcnNlLT5zYmMuYmxvY2tzID0gYmxvY2tzOworCXBhcnNlLT5zYmMuc3ViYmFu ZHMgPSBzdWJiYW5kczsKKwlwYXJzZS0+c2JjLmpvaW50ID0gZ3N0X3NiY19nZXRfbW9kZV9pbnQo bW9kZSk7CisJcGFyc2UtPnNiYy5hbGxvY2F0aW9uID0gZ3N0X3NiY19nZXRfYWxsb2NhdGlvbl9t b2RlX2ludChhbGxvY2F0aW9uKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBnYm9v bGVhbiBzYmNfcGFyc2Vfc2lua19zZXRjYXBzKEdzdFBhZCAqIHBhZCwgR3N0Q2FwcyAqIGNhcHMp Cit7CisJR3N0U2JjUGFyc2UgKnBhcnNlOworCUdzdENhcHMgKmludGVyLCAqb3RoZXIsICpzcmNj YXBzOworCisJcGFyc2UgPSBHU1RfU0JDX1BBUlNFKEdTVF9QQURfUEFSRU5UKHBhZCkpOworCisJ b3RoZXIgPSBnc3RfcGFkX3BlZXJfZ2V0X2NhcHMocGFyc2UtPnNyY3BhZCk7CisJaWYgKG90aGVy ID09IE5VTEwpCisJCW90aGVyID0gZ3N0X2NhcHNfbmV3X2FueSgpOworCisJaW50ZXIgPSBnc3Rf Y2Fwc19pbnRlcnNlY3QoY2Fwcywgb3RoZXIpOworCXNyY2NhcHMgPSBzYmNfcGFyc2Vfc2VsZWN0 X2NhcHMocGFyc2UsIGludGVyKTsKKwlpZiAoc3JjY2FwcyA9PSBOVUxMKQorCQlyZXR1cm4gRkFM U0U7CisKKwlnc3RfcGFkX3NldF9jYXBzKHBhcnNlLT5zcmNwYWQsIHNyY2NhcHMpOworCisJZ3N0 X2NhcHNfdW5yZWYoaW50ZXIpOworCWdzdF9jYXBzX3VucmVmKG90aGVyKTsKKwlnc3RfY2Fwc191 bnJlZihzcmNjYXBzKTsKKworCXJldHVybiBUUlVFOworfQorCiBzdGF0aWMgR3N0Rmxvd1JldHVy biBzYmNfcGFyc2VfY2hhaW4oR3N0UGFkICpwYWQsIEdzdEJ1ZmZlciAqYnVmZmVyKQogewogCUdz dFNiY1BhcnNlICpwYXJzZSA9IEdTVF9TQkNfUEFSU0UoZ3N0X3BhZF9nZXRfcGFyZW50KHBhZCkp OwpAQCAtNzgsMzEgKzI0NiwyMCBAQAogCiAJd2hpbGUgKG9mZnNldCA8IHNpemUpIHsKIAkJR3N0 QnVmZmVyICpvdXRwdXQ7Ci0JCUdzdFBhZFRlbXBsYXRlICp0ZW1wbGF0ZTsKLQkJR3N0Q2FwcyAq Y2FwcywgKnRlbXA7CisJCUdzdENhcHMgKnRlbXA7CiAJCWludCBjb25zdW1lZDsKIAogCQljb25z dW1lZCA9IHNiY19wYXJzZSgmcGFyc2UtPnNiYywgZGF0YSArIG9mZnNldCwgc2l6ZSAtIG9mZnNl dCk7CiAJCWlmIChjb25zdW1lZCA8PSAwKQogCQkJYnJlYWs7CiAKLQkJY2FwcyA9IGdzdF9jYXBz X25ld19zaW1wbGUoImF1ZGlvL3gtc2JjIiwKLQkJCQkicmF0ZSIsIEdfVFlQRV9JTlQsIHBhcnNl LT5zYmMucmF0ZSwKLQkJCQkiY2hhbm5lbHMiLCBHX1RZUEVfSU5ULCBwYXJzZS0+c2JjLmNoYW5u ZWxzLAotCQkJCU5VTEwpOwotCi0JCXRlbXBsYXRlID0gZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVf Z2V0KCZzYmNfcGFyc2Vfc3JjX2ZhY3RvcnkpOwotCi0JCXRlbXAgPSBnc3RfY2Fwc19pbnRlcnNl Y3QoY2FwcywKLQkJCQkJZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfY2Fwcyh0ZW1wbGF0ZSkpOwogCi0J CWdzdF9jYXBzX3VucmVmKGNhcHMpOworCQl0ZW1wID0gR1NUX1BBRF9DQVBTKHBhcnNlLT5zcmNw YWQpOwogCiAJCXJlcyA9IGdzdF9wYWRfYWxsb2NfYnVmZmVyX2FuZF9zZXRfY2FwcyhwYXJzZS0+ c3JjcGFkLAogCQkJCQkJR1NUX0JVRkZFUl9PRkZTRVRfTk9ORSwKIAkJCQkJCWNvbnN1bWVkLCB0 ZW1wLCAmb3V0cHV0KTsKIAotCQlnc3RfY2Fwc191bnJlZih0ZW1wKTsKIAogCQlpZiAocmVzICE9 IEdTVF9GTE9XX09LKQogCQkJZ290byBkb25lOwpAQCAtMTg3LDYgKzM0NCw4IEBACiB7CiAJc2Vs Zi0+c2lua3BhZCA9IGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlKCZzYmNfcGFyc2Vf c2lua19mYWN0b3J5LCAic2luayIpOwogCWdzdF9wYWRfc2V0X2NoYWluX2Z1bmN0aW9uKHNlbGYt PnNpbmtwYWQsIEdTVF9ERUJVR19GVU5DUFRSKHNiY19wYXJzZV9jaGFpbikpOworCWdzdF9wYWRf c2V0X3NldGNhcHNfZnVuY3Rpb24gKHNlbGYtPnNpbmtwYWQsIAorCQlHU1RfREVCVUdfRlVOQ1BU UiAoc2JjX3BhcnNlX3Npbmtfc2V0Y2FwcykpOwogCWdzdF9lbGVtZW50X2FkZF9wYWQoR1NUX0VM RU1FTlQoc2VsZiksIHNlbGYtPnNpbmtwYWQpOwogCiAJc2VsZi0+c3JjcGFkID0gZ3N0X3BhZF9u ZXdfZnJvbV9zdGF0aWNfdGVtcGxhdGUoJnNiY19wYXJzZV9zcmNfZmFjdG9yeSwgInNyYyIpOwo= ------=_Part_848_19277766.1190735492146 Content-Type: text/x-patch; name="gstsbcutil.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gstsbcutil.patch"; filename="gstsbcutil.patch" X-Attachment-Id: f_f70l32du SW5kZXg6IGF1ZGlvL01ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2Js dWV6L3V0aWxzL2F1ZGlvL01ha2VmaWxlLmFtLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM3CmRp ZmYgLXUgLXIxLjM3IE1ha2VmaWxlLmFtCi0tLSBhdWRpby9NYWtlZmlsZS5hbQkyOSBBdWcgMjAw NyAxMTozMDo0NyAtMDAwMAkxLjM3CisrKyBhdWRpby9NYWtlZmlsZS5hbQkyNSBTZXAgMjAwNyAx NTozOTozNSAtMDAwMApAQCAtNDMsNyArNDMsOCBAQAogCQkJCWdzdHNiY2VuYy5oIGdzdHNiY2Vu Yy5jIFwKIAkJCQlnc3RzYmNkZWMuaCBnc3RzYmNkZWMuYyBcCiAJCQkJZ3N0c2JjcGFyc2UuaCBn c3RzYmNwYXJzZS5jIFwKLQkJCQlnc3RhMmRwc2luay5oIGdzdGEyZHBzaW5rLmMKKwkJCQlnc3Rh MmRwc2luay5oIGdzdGEyZHBzaW5rLmMgXAorCQkJCWdzdHNiY3V0aWwuaCBnc3RzYmN1dGlsLmMK IGxpYmdzdGJsdWV0b290aF9sYV9MREZMQUdTID0gLW1vZHVsZSAtYXZvaWQtdmVyc2lvbiAtZXhw b3J0LXN5bWJvbHMtcmVnZXggZ3N0X3BsdWdpbl9kZXNjCiBsaWJnc3RibHVldG9vdGhfbGFfTElC QUREID0gQFNCQ19MSUJTQCBAR1NUUkVBTUVSX0xJQlNAIC1sZ3N0YXVkaW8tMC4xMAogbGliZ3N0 Ymx1ZXRvb3RoX2xhX0NGTEFHUyA9IEBHU1RSRUFNRVJfQ0ZMQUdTQCBAU0JDX0NGTEFHU0AKSW5k ZXg6IGF1ZGlvL2dzdHNiY3V0aWwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBhdWRpby9nc3RzYmN1 dGlsLmMKZGlmZiAtTiBhdWRpby9nc3RzYmN1dGlsLmMKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcw IDAwOjAwOjAwIC0wMDAwCisrKyBhdWRpby9nc3RzYmN1dGlsLmMJMjUgU2VwIDIwMDcgMTU6Mzk6 MzUgLTAwMDAKQEAgLTAsMCArMSwxOTcgQEAKKy8qCisgKgorICogIEJsdWVaIC0gQmx1ZXRvb3Ro IHByb3RvY29sIHN0YWNrIGZvciBMaW51eAorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAw NyAgTWFyY2VsIEhvbHRtYW5uIDxtYXJjZWxAaG9sdG1hbm4ub3JnPgorICoKKyAqCisgKiAgVGhp cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhp cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRh dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx MC0xMzAxICBVU0EKKyAqCisgKi8KKworCisvKiBjb21tb24gZnVuY3Rpb25zIGZvciBnc3RyZWFt ZXIgc2JjIHJlbGF0ZWQgcGx1Z2lucyAqLworCisKKyNpbmNsdWRlICJnc3RzYmN1dGlsLmgiCisj aW5jbHVkZSAiaXBjLmgiCisKKy8qCisgKiBTZWxlY3RzIG9uZSByYXRlIGZyb20gYSBsaXN0IG9m IHBvc3NpYmxlIHJhdGVzCisgKiBUT0RPIC0gdXNlIGEgYmV0dGVyIGFwcHJvYWNoIHRvIHRoaXMg KGl0IGlzIHNlbGVjdGluZyB0aGUgbGFzdCBlbGVtZW50KQorICovCitnaW50IGdzdF9zYmNfc2Vs ZWN0X3JhdGVfZnJvbV9saXN0KGNvbnN0IEdWYWx1ZSAqdmFsdWUpCit7CisJZ3VpbnQgc2l6ZSA9 IGdzdF92YWx1ZV9saXN0X2dldF9zaXplKHZhbHVlKTsKKwlyZXR1cm4gZ192YWx1ZV9nZXRfaW50 KGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSh2YWx1ZSwgc2l6ZS0xKSk7Cit9CisKKy8qCisgKiBT ZWxlY3RzIG9uZSByYXRlIGZyb20gYSByYW5nZSBvZiBwb3NzaWJsZSByYXRlcworICogVE9ETyAt IHVzZSBhIGJldHRlciBhcHByb2FjaCB0byB0aGlzIChpdCBpcyBzZWxlY3RpbmcgdGhlIG1heGlt dW0gdmFsdWUpCisgKi8KK2dpbnQgZ3N0X3NiY19zZWxlY3RfcmF0ZV9mcm9tX3JhbmdlKGNvbnN0 IEdWYWx1ZSAqdmFsdWUpCit7CisJcmV0dXJuIGdzdF92YWx1ZV9nZXRfaW50X3JhbmdlX21heCh2 YWx1ZSk7Cit9CisKKworCisvKgorICogU2VsZWN0cyBvbmUgbnVtYmVyIG9mIGNoYW5uZWxzIGZy b20gYSBsaXN0IG9mIHBvc3NpYmxlIG51bWJlcnMKKyAqIFRPRE8gLSB1c2UgYSBiZXR0ZXIgYXBw cm9hY2ggdG8gdGhpcyAoaXQgaXMgc2VsZWN0aW5nIHRoZSBsYXN0IGVsZW1lbnQpCisgKi8KK2dp bnQgZ3N0X3NiY19zZWxlY3RfY2hhbm5lbHNfZnJvbV9saXN0KGNvbnN0IEdWYWx1ZSAqdmFsdWUp Cit7CisJZ3VpbnQgc2l6ZSA9IGdzdF92YWx1ZV9saXN0X2dldF9zaXplKHZhbHVlKTsKKwlyZXR1 cm4gZ192YWx1ZV9nZXRfaW50KGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSh2YWx1ZSwgc2l6ZS0x KSk7Cit9CisKKy8qCisgKiBTZWxlY3RzIG9uZSBudW1iZXIgb2YgY2hhbm5lbHMgb3B0aW9uIGZy b20gYSByYW5nZSBvZiBwb3NzaWJsZSBudW1iZXJzCisgKiBUT0RPIC0gdXNlIGEgYmV0dGVyIGFw cHJvYWNoIHRvIHRoaXMgKGl0IGlzIHNlbGVjdGluZyB0aGUgbWF4aW11bSB2YWx1ZSkKKyAqLwor Z2ludCBnc3Rfc2JjX3NlbGVjdF9jaGFubmVsc19mcm9tX3JhbmdlKGNvbnN0IEdWYWx1ZSAqdmFs dWUpCit7CisJcmV0dXJuIGdzdF92YWx1ZV9nZXRfaW50X3JhbmdlX21heCh2YWx1ZSk7Cit9CisK Ky8qCisgKiBTZWxlY3RzIG9uZSBudW1iZXIgb2YgYmxvY2tzIGZyb20gYSBsaXN0IG9mIHBvc3Np YmxlIGJsb2NrcworICogVE9ETyAtIHVzZSBhIGJldHRlciBhcHByb2FjaCB0byB0aGlzIChpdCBp cyBzZWxlY3RpbmcgdGhlIGxhc3QgZWxlbWVudCkKKyAqLworZ2ludCBnc3Rfc2JjX3NlbGVjdF9i bG9ja3NfZnJvbV9saXN0KGNvbnN0IEdWYWx1ZSAqdmFsdWUpCit7CisJZ3VpbnQgc2l6ZSA9IGdz dF92YWx1ZV9saXN0X2dldF9zaXplKHZhbHVlKTsKKwlyZXR1cm4gZ192YWx1ZV9nZXRfaW50KGdz dF92YWx1ZV9saXN0X2dldF92YWx1ZSh2YWx1ZSwgc2l6ZS0xKSk7Cit9CisKKy8qCisgKiBTZWxl Y3RzIG9uZSBibG9ja3Mgb3B0aW9uIGZyb20gYSByYW5nZSBvZiBwb3NzaWJsZSBibG9ja3MKKyAq IFRPRE8gLSB1c2UgYSBiZXR0ZXIgYXBwcm9hY2ggdG8gdGhpcyAoaXQgaXMgc2VsZWN0aW5nIHRo ZSBtYXhpbXVtIHZhbHVlKQorICovCitnaW50IGdzdF9zYmNfc2VsZWN0X2Jsb2Nrc19mcm9tX3Jh bmdlKGNvbnN0IEdWYWx1ZSAqdmFsdWUpCit7CisJcmV0dXJuIGdzdF92YWx1ZV9nZXRfaW50X3Jh bmdlX21heCh2YWx1ZSk7Cit9CisKKworLyoKKyAqIFNlbGVjdHMgb25lIG51bWJlciBvZiBzdWJi YW5kcyBmcm9tIGEgbGlzdAorICogVE9ETyAtIHVzZSBhIGJldHRlciBhcHByb2FjaCB0byB0aGlz IChpdCBpcyBzZWxlY3RpbmcgdGhlIGxhc3QgZWxlbWVudCkKKyAqLworZ2ludCBnc3Rfc2JjX3Nl bGVjdF9zdWJiYW5kc19mcm9tX2xpc3QoY29uc3QgR1ZhbHVlICp2YWx1ZSkKK3sKKwlndWludCBz aXplID0gZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUodmFsdWUpOworCXJldHVybiBnX3ZhbHVlX2dl dF9pbnQoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKHZhbHVlLCBzaXplLTEpKTsKK30KKworLyoK KyAqIFNlbGVjdHMgb25lIHN1YmJhbmRzIG9wdGlvbiBmcm9tIGEgcmFuZ2UKKyAqIFRPRE8gLSB1 c2UgYSBiZXR0ZXIgYXBwcm9hY2ggdG8gdGhpcyAoaXQgaXMgc2VsZWN0aW5nIHRoZSBtYXhpbXVt IHZhbHVlKQorICovCitnaW50IGdzdF9zYmNfc2VsZWN0X3N1YmJhbmRzX2Zyb21fcmFuZ2UoY29u c3QgR1ZhbHVlICp2YWx1ZSkKK3sKKwlyZXR1cm4gZ3N0X3ZhbHVlX2dldF9pbnRfcmFuZ2VfbWF4 KHZhbHVlKTsKK30KKworLyoKKyAqIFNlbGVjdHMgb25lIGFsbG9jYXRpb24gbW9kZSBmcm9tIHRo ZSBvbmVzIG9uIHRoZSBsaXN0CisgKiBUT0RPIC0gdXNlIGEgYmV0dGVyIGFwcHJvYWNoCisgKi8K K2NvbnN0IGdjaGFyKiBnc3Rfc2JjX2dldF9hbGxvY2F0aW9uX2Zyb21fbGlzdChjb25zdCBHVmFs dWUgKnZhbHVlKQoreworCWd1aW50IHNpemUgPSBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZSh2YWx1 ZSk7CisJcmV0dXJuIGdfdmFsdWVfZ2V0X3N0cmluZyhnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUo dmFsdWUsIHNpemUtMSkpOworfQorCisKKy8qCisgKiBTZWxlY3RzIG9uZSBtb2RlIGZyb20gdGhl IG9uZXMgb24gdGhlIGxpc3QKKyAqIFRPRE8gLSB1c2UgYSBiZXR0ZXIgYXByb2FjaAorICovCitj b25zdCBnY2hhciogZ3N0X3NiY19nZXRfbW9kZV9mcm9tX2xpc3QoY29uc3QgR1ZhbHVlICp2YWx1 ZSkKK3sKKwlndWludCBzaXplID0gZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUodmFsdWUpOworCXJl dHVybiBnX3ZhbHVlX2dldF9zdHJpbmcoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKHZhbHVlLCBz aXplLTEpKTsKK30KKworZ2ludCBnc3Rfc2JjX2dldF9hbGxvY2F0aW9uX21vZGVfaW50KGNvbnN0 IGdjaGFyKiBhbGxvY2F0aW9uKQoreworCWlmIChnX2FzY2lpX3N0cmNhc2VjbXAoYWxsb2NhdGlv biwgImxvdWRuZXNzIikgPT0gMCkgeworCQlyZXR1cm4gQ0ZHX0FMTE9DQVRJT05fTE9VRE5FU1M7 CisJfSBlbHNlIGlmIChnX2FzY2lpX3N0cmNhc2VjbXAoYWxsb2NhdGlvbiwgInNuciIpID09IDAp IHsKKwkJcmV0dXJuIENGR19BTExPQ0FUSU9OX1NOUjsKKwl9IGVsc2UgaWYgKGdfYXNjaWlfc3Ry Y2FzZWNtcChhbGxvY2F0aW9uLCAiYXV0byIpID09IDApIHsKKwkJcmV0dXJuIENGR19BTExPQ0FU SU9OX0FVVE87CisJfSBlbHNlIHsKKwkJcmV0dXJuIC0xOworCX0JCit9CisKKworCitnaW50IGdz dF9zYmNfZ2V0X21vZGVfaW50KGNvbnN0IGdjaGFyKiBtb2RlKQoreworCWlmIChnX2FzY2lpX3N0 cmNhc2VjbXAobW9kZSwgImpvaW50IikgPT0gMCkgeworCQlyZXR1cm4gQ0ZHX01PREVfSk9JTlRf U1RFUkVPOworCX0gZWxzZSBpZiAoZ19hc2NpaV9zdHJjYXNlY21wKG1vZGUsICJzdGVyZW8iKSA9 PSAwKSB7CisJCXJldHVybiBDRkdfTU9ERV9TVEVSRU87CisJfSBlbHNlIGlmIChnX2FzY2lpX3N0 cmNhc2VjbXAobW9kZSwgImR1YWwiKSA9PSAwKSB7CisJCXJldHVybiBDRkdfTU9ERV9EVUFMX0NI QU5ORUw7CisJfSBlbHNlIGlmIChnX2FzY2lpX3N0cmNhc2VjbXAobW9kZSwgIm1vbm8iKSA9PSAw KSB7CisJCXJldHVybiBDRkdfTU9ERV9NT05POworCX0gZWxzZSBpZiAoZ19hc2NpaV9zdHJjYXNl Y21wKG1vZGUsICJhdXRvIikgPT0gMCkgeworCQlyZXR1cm4gQ0ZHX01PREVfQVVUTzsKKwl9IGVs c2UgeworCQlyZXR1cm4gLTE7CisJfQorfQorCitjb25zdCBnY2hhciogZ3N0X3NiY19nZXRfbW9k ZV9zdHJpbmcoaW50IGpvaW50KQoreworCXN3aXRjaCAoam9pbnQpIHsKKwkJY2FzZSBDRkdfTU9E RV9NT05POgorCQkJcmV0dXJuICJtb25vIjsKKwkJY2FzZSBDRkdfTU9ERV9EVUFMX0NIQU5ORUw6 CisJCQlyZXR1cm4gImR1YWwiOworCQljYXNlIENGR19NT0RFX1NURVJFTzoKKwkJCXJldHVybiAi c3RlcmVvIjsKKwkJY2FzZSBDRkdfTU9ERV9KT0lOVF9TVEVSRU86CisJCQlyZXR1cm4gImpvaW50 IjsKKwkJY2FzZSBDRkdfTU9ERV9BVVRPOgorCQkJcmV0dXJuIE5VTEw7IC8qIFRPRE8gd2hhdCBz aG91bGQgYmUgc2VsZWN0ZWQgaGVyZT8gKi8KKwkJZGVmYXVsdDoKKwkJCXJldHVybiBOVUxMOwor CX0KK30KKworY29uc3QgZ2NoYXIqIGdzdF9zYmNfZ2V0X2FsbG9jYXRpb25fc3RyaW5nKGludCBh bGxvYykKK3sKKwlzd2l0Y2ggKGFsbG9jKSB7CisJCWNhc2UgQ0ZHX0FMTE9DQVRJT05fTE9VRE5F U1M6CisJCQlyZXR1cm4gImxvdWRuZXNzIjsKKwkJY2FzZSBDRkdfQUxMT0NBVElPTl9TTlI6CisJ CQlyZXR1cm4gInNuciI7CisJCWNhc2UgQ0ZHX0FMTE9DQVRJT05fQVVUTzoKKwkJCXJldHVybiBO VUxMOyAvKiBUT0RPIHdoYXQgc2hvdWxkIGJlIHNlbGVjdGVkIGhlcmU/ICovCisJCWRlZmF1bHQ6 CisJCQlyZXR1cm4gTlVMTDsKKwl9CisKK30KKworCisKSW5kZXg6IGF1ZGlvL2dzdHNiY3V0aWwu aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ClJDUyBmaWxlOiBhdWRpby9nc3RzYmN1dGlsLmgKZGlmZiAtTiBhdWRpby9n c3RzYmN1dGlsLmgKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBh dWRpby9nc3RzYmN1dGlsLmgJMjUgU2VwIDIwMDcgMTU6Mzk6MzUgLTAwMDAKQEAgLTAsMCArMSw1 NSBAQAorLyoKKyAqCisgKiAgQmx1ZVogLSBCbHVldG9vdGggcHJvdG9jb2wgc3RhY2sgZm9yIExp bnV4CisgKgorICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA3ICBNYXJjZWwgSG9sdG1hbm4gPG1h cmNlbEBob2x0bWFubi5vcmc+CisgKgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAg TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICoKKyAqLwor CisKKy8qIGNvbW1vbiBmdW5jdGlvbnMgZm9yIGdzdHJlYW1lciBzYmMgcmVsYXRlZCBwbHVnaW5z ICovCisKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisKKworCitnaW50IGdzdF9zYmNfc2VsZWN0X3Jh dGVfZnJvbV9saXN0KGNvbnN0IEdWYWx1ZSAqdmFsdWUpOworZ2ludCBnc3Rfc2JjX3NlbGVjdF9y YXRlX2Zyb21fcmFuZ2UoY29uc3QgR1ZhbHVlICp2YWx1ZSk7CisKK2dpbnQgZ3N0X3NiY19zZWxl Y3RfY2hhbm5lbHNfZnJvbV9saXN0KGNvbnN0IEdWYWx1ZSAqdmFsdWUpOworZ2ludCBnc3Rfc2Jj X3NlbGVjdF9jaGFubmVsc19mcm9tX3JhbmdlKGNvbnN0IEdWYWx1ZSAqdmFsdWUpOworCitnaW50 IGdzdF9zYmNfc2VsZWN0X2Jsb2Nrc19mcm9tX2xpc3QoY29uc3QgR1ZhbHVlICp2YWx1ZSk7Citn aW50IGdzdF9zYmNfc2VsZWN0X2Jsb2Nrc19mcm9tX3JhbmdlKGNvbnN0IEdWYWx1ZSAqdmFsdWUp OworCitnaW50IGdzdF9zYmNfc2VsZWN0X3N1YmJhbmRzX2Zyb21fbGlzdChjb25zdCBHVmFsdWUg KnZhbHVlKTsKK2dpbnQgZ3N0X3NiY19zZWxlY3Rfc3ViYmFuZHNfZnJvbV9yYW5nZShjb25zdCBH VmFsdWUgKnZhbHVlKTsKKworY29uc3QgZ2NoYXIqIGdzdF9zYmNfZ2V0X2FsbG9jYXRpb25fZnJv bV9saXN0KGNvbnN0IEdWYWx1ZSAqdmFsdWUpOworZ2ludCBnc3Rfc2JjX2dldF9hbGxvY2F0aW9u X21vZGVfaW50KGNvbnN0IGdjaGFyKiBhbGxvY2F0aW9uKTsKK2NvbnN0IGdjaGFyKiBnc3Rfc2Jj X2dldF9hbGxvY2F0aW9uX3N0cmluZyhpbnQgYWxsb2MpOworCitjb25zdCBnY2hhciogZ3N0X3Ni Y19nZXRfbW9kZV9mcm9tX2xpc3QoY29uc3QgR1ZhbHVlICp2YWx1ZSk7CitnaW50IGdzdF9zYmNf Z2V0X21vZGVfaW50KGNvbnN0IGdjaGFyKiBtb2RlKTsKK2NvbnN0IGdjaGFyKiBnc3Rfc2JjX2dl dF9tb2RlX3N0cmluZyhpbnQgam9pbnQpOworCisKKworCisKKwo= ------=_Part_848_19277766.1190735492146 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ ------=_Part_848_19277766.1190735492146 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Bluez-devel mailing list Bluez-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bluez-devel ------=_Part_848_19277766.1190735492146--