Return-Path: Message-ID: Date: Tue, 25 Sep 2007 11:18:32 -0300 From: thiagoss To: bluez-devel@lists.sourceforge.net MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_507_10542213.1190729913016" Subject: [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_507_10542213.1190729913016 Content-Type: multipart/alternative; boundary="----=_Part_508_15333148.1190729913016" ------=_Part_508_15333148.1190729913016 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 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_508_15333148.1190729913016 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 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_508_15333148.1190729913016-- ------=_Part_507_10542213.1190729913016 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_f70hqddb SW5kZXg6IGF1ZGlvL2dzdHNiY2VuYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2Js dWV6L3V0aWxzL2F1ZGlvL2dzdHNiY2VuYy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlm ZiAtdSAtcjEuNCBnc3RzYmNlbmMuYwotLS0gYXVkaW8vZ3N0c2JjZW5jLmMJMjcgQXVnIDIwMDcg MTQ6MTA6MDAgLTAwMDAJMS40CisrKyBhdWRpby9nc3RzYmNlbmMuYwkyNCBTZXAgMjAwNyAxOTo0 MDozMCAtMDAwMApAQCAtMjgsNiArMjgsMTQgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2lu Y2x1ZGUgImdzdHNiY2VuYy5oIgorI2luY2x1ZGUgImdzdHNiY191dGlsLmgiCisKKworI2RlZmlu ZSBTQkNfRU5DX0RFRkFVTFRfTU9ERSBDRkdfTU9ERV9BVVRPCisjZGVmaW5lCVNCQ19FTkNfREVG QVVMVF9CTE9DS1MgMTYKKyNkZWZpbmUJU0JDX0VOQ19ERUZBVUxUX1NVQl9CQU5EUyA4CisjZGVm aW5lCVNCQ19FTkNfREVGQVVMVF9BTExPQ0FUSU9OIENGR19BTExPQ0FUSU9OX0FVVE8KKwogCiBH U1RfREVCVUdfQ0FURUdPUllfU1RBVElDKHNiY19lbmNfZGVidWcpOwogI2RlZmluZSBHU1RfQ0FU X0RFRkFVTFQgc2JjX2VuY19kZWJ1ZwpAQCAtNTIsOSArNjAsMzEgQEAKIAlyZXR1cm4gc2JjX21v ZGVfdHlwZTsKIH0KIAorI2RlZmluZSBHU1RfVFlQRV9TQkNfQUxMT0NBVElPTiAoZ3N0X3NiY19h bGxvY2F0aW9uX2dldF90eXBlKCkpCisKK3N0YXRpYyBHVHlwZSBnc3Rfc2JjX2FsbG9jYXRpb25f Z2V0X3R5cGUodm9pZCkKK3sKKwlzdGF0aWMgR1R5cGUgc2JjX2FsbG9jYXRpb25fdHlwZSA9IDA7 CisJc3RhdGljIEdFbnVtVmFsdWUgc2JjX2FsbG9jYXRpb25zW10gPSB7CisJCXsgQ0ZHX0FMTE9D QVRJT05fQVVUTywJCSJBdXRvIiwJCSJhdXRvIiB9LAorCQl7IENGR19BTExPQ0FUSU9OX0xPVURO RVNTLAkiTG91ZG5lc3MiLAkibG91ZG5lc3MiIH0sCisJCXsgQ0ZHX0FMTE9DQVRJT05fU05SLAkJ IlNOUiIsCQkic25yIiB9LAorCQl7IC0xLCBOVUxMLCBOVUxMfQorCX07CisKKwlpZiAoIXNiY19h bGxvY2F0aW9uX3R5cGUpCisJCXNiY19hbGxvY2F0aW9uX3R5cGUgPSBnX2VudW1fcmVnaXN0ZXJf c3RhdGljKAorCQkJCSJHc3RTYmNBbGxvY2F0aW9uIiwgc2JjX2FsbG9jYXRpb25zKTsKKworCXJl dHVybiBzYmNfYWxsb2NhdGlvbl90eXBlOworfQorCiBlbnVtIHsKIAlQUk9QXzAsCiAJUFJPUF9N T0RFLAorCVBST1BfQUxMT0NBVElPTiwKKwlQUk9QX0JMT0NLUywKKwlQUk9QX1NVQl9CQU5EUwog fTsKIAogR1NUX0JPSUxFUlBMQVRFKEdzdFNiY0VuYywgZ3N0X3NiY19lbmMsIEdzdEVsZW1lbnQs IEdTVF9UWVBFX0VMRU1FTlQpOwpAQCAtODUsMjcgKzExNSw5NCBAQAogCQkJCSJzdWJiYW5kcyA9 IChpbnQpIHsgNCwgOCB9LCAiCiAJCQkJImFsbG9jYXRpb24gPSAoc3RyaW5nKSB7IHNuciwgbG91 ZG5lc3MgfSIpKTsKIAorCisKKworCitzdGF0aWMgR3N0Q2Fwcyogc2JjX2VuY19nZW5lcmF0ZV9z cmNwYWRfY2FwcyhHc3RTYmNFbmMgKmVuYywgR3N0Q2FwcyAqY2FwcykKK3sKKwlnaW50IHJhdGU7 CisJZ2ludCBjaGFubmVsczsKKwlHc3RDYXBzKiBzcmNfY2FwczsKKwlHc3RTdHJ1Y3R1cmUgKnN0 cnVjdHVyZTsKKworCXN0cnVjdHVyZSA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2FwcywgMCk7 CisKKwlpZiAoIWdzdF9zdHJ1Y3R1cmVfZ2V0X2ludCAoc3RydWN0dXJlLCAicmF0ZSIsICZyYXRl KSkKKwkJcmV0dXJuIE5VTEw7CisJaWYgKCFnc3Rfc3RydWN0dXJlX2dldF9pbnQgKHN0cnVjdHVy ZSwgImNoYW5uZWxzIiwgJmNoYW5uZWxzKSkKKwkJcmV0dXJuIE5VTEw7CisKKwllbmMtPnNiYy5y YXRlID0gcmF0ZTsKKwllbmMtPnNiYy5jaGFubmVscyA9IGNoYW5uZWxzOworCisJaWYgKGVuYy0+ bW9kZSA9PSAwKQorCQllbmMtPnNiYy5qb2ludCA9IENGR19NT0RFX0pPSU5UX1NURVJFTzsKKwll bHNlCisJCWVuYy0+c2JjLmpvaW50ID0gZW5jLT5tb2RlOworCisJZW5jLT5zYmMuYmxvY2tzID0g ZW5jLT5ibG9ja3M7CisJZW5jLT5zYmMuc3ViYmFuZHMgPSBlbmMtPnN1YmJhbmRzOworCWlmIChl bmMtPmFsbG9jYXRpb24gPT0gMCkKKwkJZW5jLT5zYmMuYWxsb2NhdGlvbiA9IENGR19BTExPQ0FU SU9OX0xPVURORVNTOworCWVsc2UKKwkJZW5jLT5zYmMuYWxsb2NhdGlvbiA9IGVuYy0+YWxsb2Nh dGlvbjsKKworCXNyY19jYXBzID0gZ3N0X2NhcHNfbmV3X3NpbXBsZSgKKwkJCSJhdWRpby94LXNi YyIsIAorCQkJInJhdGUiLCBHX1RZUEVfSU5ULCBlbmMtPnNiYy5yYXRlLAorCQkJImNoYW5uZWxz IiwgR19UWVBFX0lOVCwgZW5jLT5zYmMuY2hhbm5lbHMsCisJCQkibW9kZSIsIEdfVFlQRV9TVFJJ TkcsIAorCQkJCWdzdF9zYmNfZ2V0X21vZGVfc3RyaW5nKGVuYy0+c2JjLmpvaW50KSwKKwkJCSJz dWJiYW5kcyIsIEdfVFlQRV9JTlQsIGVuYy0+c2JjLnN1YmJhbmRzLAorCQkJImJsb2NrcyIsIEdf VFlQRV9JTlQsIGVuYy0+c2JjLmJsb2NrcywKKwkJCSJhbGxvY2F0aW9uIiwgR19UWVBFX1NUUklO RywgCisJCQkJZ3N0X3NiY19nZXRfYWxsb2NhdGlvbl9zdHJpbmcoCisJCQkJCWVuYy0+c2JjLmFs bG9jYXRpb24pLAorCQkJTlVMTCk7CisKKworCXJldHVybiBzcmNfY2FwczsKKworfQorCitzdGF0 aWMgZ2Jvb2xlYW4gc2JjX2VuY19zaW5rX3NldGNhcHMgKEdzdFBhZCAqIHBhZCwgR3N0Q2FwcyAq IGNhcHMpCit7CisKKwlHc3RTYmNFbmMgKmVuYzsKKwlHc3RTdHJ1Y3R1cmUgKnN0cnVjdHVyZTsK KwlHc3RDYXBzICpvdGhlcmNhcHM7CisKKwllbmMgPSBHU1RfU0JDX0VOQyhHU1RfUEFEX1BBUkVO VCAocGFkKSk7CisJc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShjYXBzLCAwKTsK KworCW90aGVyY2FwcyA9IHNiY19lbmNfZ2VuZXJhdGVfc3JjcGFkX2NhcHMoZW5jLCBjYXBzKTsK KwlpZiAob3RoZXJjYXBzID09IE5VTEwpCisJCWdvdG8gZXJyb3I7CisKKwlnc3RfcGFkX3NldF9j YXBzIChlbmMtPnNyY3BhZCwgb3RoZXJjYXBzKTsKKwlnc3RfY2Fwc191bnJlZihvdGhlcmNhcHMp OworCisJcmV0dXJuIFRSVUU7CisKK2Vycm9yOgoreworCUdTVF9FUlJPUl9PQkpFQ1QgKGVuYywg ImludmFsaWQgaW5wdXQgY2FwcyIpOworCXJldHVybiBGQUxTRTsKK30KKworfQorCiBzdGF0aWMg R3N0Rmxvd1JldHVybiBzYmNfZW5jX2NoYWluKEdzdFBhZCAqcGFkLCBHc3RCdWZmZXIgKmJ1ZmZl cikKIHsKIAlHc3RTYmNFbmMgKmVuYyA9IEdTVF9TQkNfRU5DKGdzdF9wYWRfZ2V0X3BhcmVudChw YWQpKTsKIAlHc3RGbG93UmV0dXJuIHJlcyA9IEdTVF9GTE9XX09LOwotCUdzdFN0cnVjdHVyZSAq c3RydWN0dXJlOwotCWdpbnQgcmF0ZSwgY2hhbm5lbHM7CiAJZ3VpbnQgc2l6ZSwgb2Zmc2V0ID0g MDsKIAlndWludDggKmRhdGE7CiAKIAlkYXRhID0gR1NUX0JVRkZFUl9EQVRBKGJ1ZmZlcik7CiAJ c2l6ZSA9IEdTVF9CVUZGRVJfU0laRShidWZmZXIpOwogCi0Jc3RydWN0dXJlID0gZ3N0X2NhcHNf Z2V0X3N0cnVjdHVyZShHU1RfUEFEX0NBUFMocGFkKSwgMCk7Ci0JZ3N0X3N0cnVjdHVyZV9nZXRf aW50KHN0cnVjdHVyZSwgInJhdGUiLCAmcmF0ZSk7Ci0JZ3N0X3N0cnVjdHVyZV9nZXRfaW50KHN0 cnVjdHVyZSwgImNoYW5uZWxzIiwgJmNoYW5uZWxzKTsKLQotCWVuYy0+c2JjLnJhdGUgPSByYXRl OwotCWVuYy0+c2JjLmNoYW5uZWxzID0gY2hhbm5lbHM7Ci0JZW5jLT5zYmMuc3ViYmFuZHMgPSA4 OwotCWVuYy0+c2JjLmpvaW50ID0gMDsKLQogCXdoaWxlIChvZmZzZXQgPCBzaXplKSB7CiAJCUdz dEJ1ZmZlciAqb3V0cHV0OwogCQlHc3RDYXBzICpjYXBzOwpAQCAtMTg0LDExICsyODEsMjMgQEAK IHsKIAlHc3RTYmNFbmMgKmVuYyA9IEdTVF9TQkNfRU5DKG9iamVjdCk7CiAKKwkvKiBUT0RPIC0g Q0FOIE9OTFkgQkUgQ0hBTkdFRCBPTiBSRUFEWSBBTkQgQkVMT1cgKi8KKwogCXN3aXRjaCAocHJv cF9pZCkgewogCWNhc2UgUFJPUF9NT0RFOgogCQllbmMtPm1vZGUgPSBnX3ZhbHVlX2dldF9lbnVt KHZhbHVlKTsKIAkJYnJlYWs7Ci0KKwljYXNlIFBST1BfQUxMT0NBVElPTjoKKwkJZW5jLT5hbGxv Y2F0aW9uID0gZ192YWx1ZV9nZXRfZW51bSh2YWx1ZSk7CisJCWJyZWFrOworCWNhc2UgUFJPUF9C TE9DS1M6CisJCS8qIFRPRE8gLSB2ZXJpZnkgY29uc2lzdGVuY3kgKi8KKwkJZW5jLT5ibG9ja3Mg PSBnX3ZhbHVlX2dldF9pbnQodmFsdWUpOworCQlicmVhazsKKwljYXNlIFBST1BfU1VCX0JBTkRT OgorCQkvKiBUT0RPIC0gdmVyaWZ5IGNvbnNpc3RlbmN5ICovCisJCWVuYy0+c3ViYmFuZHMgPSBn X3ZhbHVlX2dldF9pbnQodmFsdWUpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlHX09CSkVDVF9X QVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CiAJCWJyZWFr OwpAQCAtMjA0LDEzICszMTMsMjMgQEAKIAljYXNlIFBST1BfTU9ERToKIAkJZ192YWx1ZV9zZXRf ZW51bSh2YWx1ZSwgZW5jLT5tb2RlKTsKIAkJYnJlYWs7Ci0KKwljYXNlIFBST1BfQUxMT0NBVElP TjoKKwkJZ192YWx1ZV9zZXRfZW51bSh2YWx1ZSwgZW5jLT5hbGxvY2F0aW9uKTsKKwkJYnJlYWs7 CisJY2FzZSBQUk9QX0JMT0NLUzoKKwkJZ192YWx1ZV9zZXRfaW50KHZhbHVlLCBlbmMtPmJsb2Nr cyk7CisJCWJyZWFrOworCWNhc2UgUFJPUF9TVUJfQkFORFM6CisJCWdfdmFsdWVfc2V0X2ludCh2 YWx1ZSwgZW5jLT5zdWJiYW5kcyk7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCUdfT0JKRUNUX1dB Uk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKIAkJYnJlYWs7 CiAJfQogfQogCisKKwogc3RhdGljIHZvaWQgZ3N0X3NiY19lbmNfY2xhc3NfaW5pdChHc3RTYmNF bmNDbGFzcyAqa2xhc3MpCiB7CiAJR09iamVjdENsYXNzICpvYmplY3RfY2xhc3MgPSBHX09CSkVD VF9DTEFTUyhrbGFzcyk7CkBAIC0yMjQsOCArMzQzLDI0IEBACiAJZWxlbWVudF9jbGFzcy0+Y2hh bmdlX3N0YXRlID0gR1NUX0RFQlVHX0ZVTkNQVFIoc2JjX2VuY19jaGFuZ2Vfc3RhdGUpOwogCiAJ Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RfY2xhc3MsIFBST1BfTU9ERSwK LQkJCWdfcGFyYW1fc3BlY19lbnVtKCJtb2RlIiwgIk1vZGUiLCAiRW5jb2RpbmcgbW9kZSIsCi0J CQkJR1NUX1RZUEVfU0JDX01PREUsIDAsIEdfUEFSQU1fUkVBRFdSSVRFKSk7CisJCQlnX3BhcmFt X3NwZWNfZW51bSgibW9kZSIsICJNb2RlIiwKKwkJCQkiRW5jb2RpbmcgbW9kZSIsIEdTVF9UWVBF X1NCQ19NT0RFLAorCQkJCVNCQ19FTkNfREVGQVVMVF9NT0RFLCBHX1BBUkFNX1JFQURXUklURSkp OworCisJZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RfY2xhc3MsIFBST1Bf QUxMT0NBVElPTiwKKwkJCWdfcGFyYW1fc3BlY19lbnVtKCJhbGxvY2F0aW9uIiwgIkFsbG9jYXRp b24iLCAKKwkJCQkiQWxsb2NhdGlvbiBtb2RlIiwgR1NUX1RZUEVfU0JDX0FMTE9DQVRJT04sCisJ CQkJU0JDX0VOQ19ERUZBVUxUX0FMTE9DQVRJT04sIEdfUEFSQU1fUkVBRFdSSVRFKSk7CisKKwln X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdF9jbGFzcywgUFJPUF9CTE9DS1Ms CisJCQlnX3BhcmFtX3NwZWNfaW50KCJibG9ja3MiLCAiQmxvY2tzIiwKKwkJCQkiQmxvY2tzIiwg MCwgR19NQVhJTlQsCisJCQkJU0JDX0VOQ19ERUZBVUxUX0JMT0NLUywJR19QQVJBTV9SRUFEV1JJ VEUpKTsKKworCWdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0X2NsYXNzLCBQ Uk9QX1NVQl9CQU5EUywKKwkJCWdfcGFyYW1fc3BlY19pbnQoInN1YmJhbmRzIiwgIlN1YiBCYW5k cyIsCisJCQkJIlN1YiBCYW5kcyIsIDAsIEdfTUFYSU5ULAorCQkJCVNCQ19FTkNfREVGQVVMVF9T VUJfQkFORFMsIEdfUEFSQU1fUkVBRFdSSVRFKSk7CiAKIAlHU1RfREVCVUdfQ0FURUdPUllfSU5J VChzYmNfZW5jX2RlYnVnLCAic2JjZW5jIiwgMCwKIAkJCQkJCSJTQkMgZW5jb2RpbmcgZWxlbWVu dCIpOwpAQCAtMjM0LDkgKzM2OSwxNyBAQAogc3RhdGljIHZvaWQgZ3N0X3NiY19lbmNfaW5pdChH c3RTYmNFbmMgKnNlbGYsIEdzdFNiY0VuY0NsYXNzICprbGFzcykKIHsKIAlzZWxmLT5zaW5rcGFk ID0gZ3N0X3BhZF9uZXdfZnJvbV9zdGF0aWNfdGVtcGxhdGUoJnNiY19lbmNfc2lua19mYWN0b3J5 LCAic2luayIpOworCWdzdF9wYWRfc2V0X3NldGNhcHNfZnVuY3Rpb24gKHNlbGYtPnNpbmtwYWQs IAorCQkJR1NUX0RFQlVHX0ZVTkNQVFIgKHNiY19lbmNfc2lua19zZXRjYXBzKSk7CiAJZ3N0X2Vs ZW1lbnRfYWRkX3BhZChHU1RfRUxFTUVOVChzZWxmKSwgc2VsZi0+c2lua3BhZCk7CiAKIAlzZWxm LT5zcmNwYWQgPSBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSgmc2JjX2VuY19zcmNf ZmFjdG9yeSwgInNyYyIpOwogCWdzdF9wYWRfc2V0X2NoYWluX2Z1bmN0aW9uKHNlbGYtPnNpbmtw YWQsIEdTVF9ERUJVR19GVU5DUFRSKHNiY19lbmNfY2hhaW4pKTsKIAlnc3RfZWxlbWVudF9hZGRf cGFkKEdTVF9FTEVNRU5UKHNlbGYpLCBzZWxmLT5zcmNwYWQpOworCisJc2VsZi0+c3ViYmFuZHMg PSBTQkNfRU5DX0RFRkFVTFRfU1VCX0JBTkRTOworCXNlbGYtPmJsb2NrcyA9IFNCQ19FTkNfREVG QVVMVF9CTE9DS1M7CisJc2VsZi0+bW9kZSA9IFNCQ19FTkNfREVGQVVMVF9NT0RFOworCXNlbGYt PmFsbG9jYXRpb24gPSBTQkNfRU5DX0RFRkFVTFRfQUxMT0NBVElPTjsKKwogfQpJbmRleDogYXVk aW8vZ3N0c2JjZW5jLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvYmx1ZXovdXRpbHMv YXVkaW8vZ3N0c2JjZW5jLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZmIC11IC1yMS4z IGdzdHNiY2VuYy5oCi0tLSBhdWRpby9nc3RzYmNlbmMuaAkyNiBBdWcgMjAwNyAxMzoxMjo0NyAt MDAwMAkxLjMKKysrIGF1ZGlvL2dzdHNiY2VuYy5oCTI0IFNlcCAyMDA3IDE5OjQwOjMyIC0wMDAw CkBAIC0yNCw2ICsyNCw4IEBACiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgogCiAjaW5jbHVkZSAic2Jj LmgiCisjaW5jbHVkZSAiaXBjLmgiCisKIAogR19CRUdJTl9ERUNMUwogCkBAIC00OCw2ICs1MCw5 IEBACiAJR3N0UGFkICpzcmNwYWQ7CiAKIAlnaW50IG1vZGU7CisJZ2ludCBibG9ja3M7CisJZ2lu dCBhbGxvY2F0aW9uOworCWdpbnQgc3ViYmFuZHM7CiAKIAlzYmNfdCBzYmM7CiB9Owo= ------=_Part_507_10542213.1190729913016 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_f70hqj8u SW5kZXg6IGF1ZGlvL2dzdHNiY3BhcnNlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3Qv Ymx1ZXovdXRpbHMvYXVkaW8vZ3N0c2JjcGFyc2UuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4x CmRpZmYgLXUgLXIxLjEgZ3N0c2JjcGFyc2UuYwotLS0gYXVkaW8vZ3N0c2JjcGFyc2UuYwkyNiBB dWcgMjAwNyAxMzo1OTowNSAtMDAwMAkxLjEKKysrIGF1ZGlvL2dzdHNiY3BhcnNlLmMJMjQgU2Vw IDIwMDcgMTk6MjI6NTkgLTAwMDAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxzdHJpbmcu aD4KIAogI2luY2x1ZGUgImdzdHNiY3BhcnNlLmgiCisjaW5jbHVkZSAiZ3N0c2JjX3V0aWwuaCIK IAogR1NUX0RFQlVHX0NBVEVHT1JZX1NUQVRJQyhzYmNfcGFyc2VfZGVidWcpOwogI2RlZmluZSBH U1RfQ0FUX0RFRkFVTFQgc2JjX3BhcnNlX2RlYnVnCkBAIC01NCw2ICs1NSwxNzMgQEAKIAkJCQki c3ViYmFuZHMgPSAoaW50KSB7IDQsIDggfSwgIgogCQkJCSJhbGxvY2F0aW9uID0gKHN0cmluZykg eyBzbnIsIGxvdWRuZXNzIH0iKSk7CiAKKy8qCisJQ3JlYXRlcyBhIGZpeGVkIGNhcHMgZnJvbSB0 aGUgY2FwcyBnaXZlbi4KKworKi8KK3N0YXRpYyBHc3RDYXBzKiBzYmNfcGFyc2Vfc2VsZWN0X2Nh cHMoR3N0U2JjUGFyc2UgKnBhcnNlLCBHc3RDYXBzICpjYXBzKQoreworCisJR3N0Q2FwcyAqcmVz dWx0OworCUdzdFN0cnVjdHVyZSAqc3RydWN0dXJlOworCWNvbnN0IEdWYWx1ZSAqdmFsdWU7CisJ Z2Jvb2xlYW4gZXJyb3IgPSBGQUxTRTsKKwlnaW50IHRlbXAsIHJhdGUsIGNoYW5uZWxzLCBibG9j a3MsIHN1YmJhbmRzOworCWNvbnN0IGdjaGFyKiBhbGxvY2F0aW9uID0gTlVMTDsKKwljb25zdCBn Y2hhciogbW9kZSA9IE5VTEw7CisJY29uc3QgZ2NoYXIqIGVycm9yX21lc3NhZ2UgPSBOVUxMOwor CisJc3RydWN0dXJlID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShjYXBzLCAwKTsKKworCS8qIHJh dGUgKi8KKwlpZiAoIWdzdF9zdHJ1Y3R1cmVfaGFzX2ZpZWxkKHN0cnVjdHVyZSwgInJhdGUiKSkg eworCQllcnJvciA9IFRSVUU7CisJCWVycm9yX21lc3NhZ2UgPSAibm8gcmF0ZS4iOworCQlnb3Rv IGVycm9yOworCX0gZWxzZSB7CisJCXZhbHVlID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoc3Ry dWN0dXJlLCAicmF0ZSIpOworCQlpZiAoR1NUX1ZBTFVFX0hPTERTX0xJU1QodmFsdWUpKSB7CisJ CQl0ZW1wID0gZ3N0X3NiY19zZWxlY3RfcmF0ZV9mcm9tX2xpc3QodmFsdWUpOworCQl9IGVsc2Ug aWYgKEdTVF9WQUxVRV9IT0xEU19JTlRfUkFOR0UodmFsdWUpKSB7CisJCQl0ZW1wID0gZ3N0X3Ni Y19zZWxlY3RfcmF0ZV9mcm9tX3JhbmdlKHZhbHVlKTsKKwkJfSBlbHNlIHsKKwkJCXRlbXAgPSBn X3ZhbHVlX2dldF9pbnQodmFsdWUpOworCQl9CisJCXJhdGUgPSB0ZW1wOworCX0KKworCS8qIGNo YW5uZWxzICovCisJaWYgKCFnc3Rfc3RydWN0dXJlX2hhc19maWVsZChzdHJ1Y3R1cmUsICJjaGFu bmVscyIpKSB7CisJCWVycm9yID0gVFJVRTsKKwkJZXJyb3JfbWVzc2FnZSA9ICJubyBjaGFubmVs cy4iOworCQlnb3RvIGVycm9yOworCX0gZWxzZSB7CisJCXZhbHVlID0gZ3N0X3N0cnVjdHVyZV9n ZXRfdmFsdWUoc3RydWN0dXJlLCAiY2hhbm5lbHMiKTsKKwkJaWYgKEdTVF9WQUxVRV9IT0xEU19M SVNUKHZhbHVlKSkgeworCQkJdGVtcCA9IGdzdF9zYmNfc2VsZWN0X2NoYW5uZWxzX2Zyb21fbGlz dCh2YWx1ZSk7CisJCX0gZWxzZSBpZiAoR1NUX1ZBTFVFX0hPTERTX0lOVF9SQU5HRSh2YWx1ZSkp IHsKKwkJCXRlbXAgPSBnc3Rfc2JjX3NlbGVjdF9jaGFubmVsc19mcm9tX3JhbmdlKHZhbHVlKTsK KwkJfSBlbHNlIHsKKwkJCXRlbXAgPSBnX3ZhbHVlX2dldF9pbnQodmFsdWUpOworCQl9CisJCWNo YW5uZWxzID0gdGVtcDsKKwl9CisKKwkvKiBibG9ja3MgKi8KKwlpZiAoIWdzdF9zdHJ1Y3R1cmVf aGFzX2ZpZWxkKHN0cnVjdHVyZSwgImJsb2NrcyIpKSB7CisJCWVycm9yID0gVFJVRTsKKwkJZXJy b3JfbWVzc2FnZSA9ICJubyBibG9ja3MuIjsKKwkJZ290byBlcnJvcjsKKwl9IGVsc2UgeworCQl2 YWx1ZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0cnVjdHVyZSwgImJsb2NrcyIpOworCQlp ZiAoR1NUX1ZBTFVFX0hPTERTX0xJU1QodmFsdWUpKSB7CisJCQl0ZW1wID0gZ3N0X3NiY19zZWxl Y3RfYmxvY2tzX2Zyb21fbGlzdCh2YWx1ZSk7CisJCX0gZWxzZSBpZiAoR1NUX1ZBTFVFX0hPTERT X0lOVF9SQU5HRSh2YWx1ZSkpIHsKKwkJCXRlbXAgPSBnc3Rfc2JjX3NlbGVjdF9ibG9ja3NfZnJv bV9yYW5nZSh2YWx1ZSk7CisJCX0gZWxzZSB7CisJCQl0ZW1wID0gZ192YWx1ZV9nZXRfaW50KHZh bHVlKTsKKwkJfQorCQlibG9ja3MgPSB0ZW1wOworCX0KKworCS8qIHN1YmJhbmRzICovCisJaWYg KCFnc3Rfc3RydWN0dXJlX2hhc19maWVsZChzdHJ1Y3R1cmUsICJzdWJiYW5kcyIpKSB7CisJCWVy cm9yID0gVFJVRTsKKwkJZXJyb3JfbWVzc2FnZSA9ICJubyBzdWJiYW5kcy4iOworCQlnb3RvIGVy cm9yOworCX0gZWxzZSB7CisJCXZhbHVlID0gZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoc3RydWN0 dXJlLCAic3ViYmFuZHMiKTsKKwkJaWYgKEdTVF9WQUxVRV9IT0xEU19MSVNUKHZhbHVlKSkgewor CQkJdGVtcCA9IGdzdF9zYmNfc2VsZWN0X3N1YmJhbmRzX2Zyb21fbGlzdCh2YWx1ZSk7CisJCX0g ZWxzZSBpZiAoR1NUX1ZBTFVFX0hPTERTX0lOVF9SQU5HRSh2YWx1ZSkpIHsKKwkJCXRlbXAgPSBn c3Rfc2JjX3NlbGVjdF9zdWJiYW5kc19mcm9tX3JhbmdlKHZhbHVlKTsKKwkJfSBlbHNlIHsKKwkJ CXRlbXAgPSBnX3ZhbHVlX2dldF9pbnQodmFsdWUpOworCQl9CisJCXN1YmJhbmRzID0gdGVtcDsK Kwl9CisKKwkvKiBhbGxvY2F0aW9uICovCisJaWYgKCFnc3Rfc3RydWN0dXJlX2hhc19maWVsZChz dHJ1Y3R1cmUsICJhbGxvY2F0aW9uIikpIHsKKwkJZXJyb3IgPSBUUlVFOworCQllcnJvcl9tZXNz YWdlID0gIm5vIGFsbG9jYXRpb24uIjsKKwkJZ290byBlcnJvcjsKKwl9IGVsc2UgeworCQl2YWx1 ZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0cnVjdHVyZSwgImFsbG9jYXRpb24iKTsKKwkJ aWYgKEdTVF9WQUxVRV9IT0xEU19MSVNUKHZhbHVlKSkgeworCQkJYWxsb2NhdGlvbiA9IGdzdF9z YmNfZ2V0X2FsbG9jYXRpb25fZnJvbV9saXN0KHZhbHVlKTsKKwkJfSBlbHNlIHsKKwkJCWFsbG9j YXRpb24gPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpOworCQl9CisJfQorCisKKwkvKiBtb2Rl ICovCisJaWYgKCFnc3Rfc3RydWN0dXJlX2hhc19maWVsZChzdHJ1Y3R1cmUsICJtb2RlIikpIHsK KwkJZXJyb3IgPSBUUlVFOworCQllcnJvcl9tZXNzYWdlID0gIm5vIG1vZGUuIjsKKwkJZ290byBl cnJvcjsKKwl9IGVsc2UgeworCQl2YWx1ZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0cnVj dHVyZSwgIm1vZGUiKTsKKwkJaWYgKEdTVF9WQUxVRV9IT0xEU19MSVNUKHZhbHVlKSkgeworCQkJ bW9kZSA9IGdzdF9zYmNfZ2V0X21vZGVfZnJvbV9saXN0KHZhbHVlKTsKKwkJfSBlbHNlIHsKKwkJ CW1vZGUgPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpOworCQl9CisJfQorCitlcnJvcjoKKwlp ZiAoZXJyb3IpIHsKKwkJR1NUX0VSUk9SX09CSkVDVCAocGFyc2UsICJJbnZhbGlkIGlucHV0IGNh cHM6ICVzIiwKKwkJCQllcnJvcl9tZXNzYWdlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisKKwly ZXN1bHQgPSBnc3RfY2Fwc19uZXdfc2ltcGxlKCJhdWRpby94LXNiYyIsCisJCQkJCSJyYXRlIiwg R19UWVBFX0lOVCwgcmF0ZSwKKwkJCQkJImNoYW5uZWxzIiwgR19UWVBFX0lOVCwgY2hhbm5lbHMs CisJCQkJCSJtb2RlIiwgR19UWVBFX1NUUklORywgbW9kZSwKKwkJCQkJImJsb2NrcyIsIEdfVFlQ RV9JTlQsIGJsb2NrcywKKwkJCQkJInN1YmJhbmRzIiwgR19UWVBFX0lOVCwgc3ViYmFuZHMsCisJ CQkJCSJhbGxvY2F0aW9uIiwgR19UWVBFX1NUUklORywgYWxsb2NhdGlvbiwKKwkJCQkJTlVMTAor CQkJKTsKKwlwYXJzZS0+c2JjLnJhdGUgPSByYXRlOworCXBhcnNlLT5zYmMuY2hhbm5lbHMgPSBj aGFubmVsczsKKwlwYXJzZS0+c2JjLmJsb2NrcyA9IGJsb2NrczsKKwlwYXJzZS0+c2JjLnN1YmJh bmRzID0gc3ViYmFuZHM7CisJcGFyc2UtPnNiYy5qb2ludCA9IGdzdF9zYmNfZ2V0X21vZGVfaW50 KG1vZGUpOworCXBhcnNlLT5zYmMuYWxsb2NhdGlvbiA9IGdzdF9zYmNfZ2V0X2FsbG9jYXRpb25f bW9kZV9pbnQoYWxsb2NhdGlvbik7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgZ2Jv b2xlYW4gc2JjX3BhcnNlX3Npbmtfc2V0Y2FwcyhHc3RQYWQgKiBwYWQsIEdzdENhcHMgKiBjYXBz KQoreworCUdzdFNiY1BhcnNlICpwYXJzZTsKKwlHc3RDYXBzICppbnRlciwgKm90aGVyLCAqc3Jj Y2FwczsKKworCXBhcnNlID0gR1NUX1NCQ19QQVJTRShHU1RfUEFEX1BBUkVOVChwYWQpKTsKKwor CW90aGVyID0gZ3N0X3BhZF9wZWVyX2dldF9jYXBzKHBhcnNlLT5zcmNwYWQpOworCWlmIChvdGhl ciA9PSBOVUxMKQorCQlvdGhlciA9IGdzdF9jYXBzX25ld19hbnkoKTsKKworCWludGVyID0gZ3N0 X2NhcHNfaW50ZXJzZWN0KGNhcHMsIG90aGVyKTsKKwlzcmNjYXBzID0gc2JjX3BhcnNlX3NlbGVj dF9jYXBzKHBhcnNlLCBpbnRlcik7CisJaWYgKHNyY2NhcHMgPT0gTlVMTCkKKwkJcmV0dXJuIEZB TFNFOworCisJZ3N0X3BhZF9zZXRfY2FwcyhwYXJzZS0+c3JjcGFkLCBzcmNjYXBzKTsKKworCWdz dF9jYXBzX3VucmVmKGludGVyKTsKKwlnc3RfY2Fwc191bnJlZihvdGhlcik7CisJZ3N0X2NhcHNf dW5yZWYoc3JjY2Fwcyk7CisKKwlyZXR1cm4gVFJVRTsKK30KKwogc3RhdGljIEdzdEZsb3dSZXR1 cm4gc2JjX3BhcnNlX2NoYWluKEdzdFBhZCAqcGFkLCBHc3RCdWZmZXIgKmJ1ZmZlcikKIHsKIAlH c3RTYmNQYXJzZSAqcGFyc2UgPSBHU1RfU0JDX1BBUlNFKGdzdF9wYWRfZ2V0X3BhcmVudChwYWQp KTsKQEAgLTc4LDMxICsyNDYsMjAgQEAKIAogCXdoaWxlIChvZmZzZXQgPCBzaXplKSB7CiAJCUdz dEJ1ZmZlciAqb3V0cHV0OwotCQlHc3RQYWRUZW1wbGF0ZSAqdGVtcGxhdGU7Ci0JCUdzdENhcHMg KmNhcHMsICp0ZW1wOworCQlHc3RDYXBzICp0ZW1wOwogCQlpbnQgY29uc3VtZWQ7CiAKIAkJY29u c3VtZWQgPSBzYmNfcGFyc2UoJnBhcnNlLT5zYmMsIGRhdGEgKyBvZmZzZXQsIHNpemUgLSBvZmZz ZXQpOwogCQlpZiAoY29uc3VtZWQgPD0gMCkKIAkJCWJyZWFrOwogCi0JCWNhcHMgPSBnc3RfY2Fw c19uZXdfc2ltcGxlKCJhdWRpby94LXNiYyIsCi0JCQkJInJhdGUiLCBHX1RZUEVfSU5ULCBwYXJz ZS0+c2JjLnJhdGUsCi0JCQkJImNoYW5uZWxzIiwgR19UWVBFX0lOVCwgcGFyc2UtPnNiYy5jaGFu bmVscywKLQkJCQlOVUxMKTsKLQotCQl0ZW1wbGF0ZSA9IGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRl X2dldCgmc2JjX3BhcnNlX3NyY19mYWN0b3J5KTsKLQotCQl0ZW1wID0gZ3N0X2NhcHNfaW50ZXJz ZWN0KGNhcHMsCi0JCQkJCWdzdF9wYWRfdGVtcGxhdGVfZ2V0X2NhcHModGVtcGxhdGUpKTsKIAot CQlnc3RfY2Fwc191bnJlZihjYXBzKTsKKwkJdGVtcCA9IEdTVF9QQURfQ0FQUyhwYXJzZS0+c3Jj cGFkKTsKIAogCQlyZXMgPSBnc3RfcGFkX2FsbG9jX2J1ZmZlcl9hbmRfc2V0X2NhcHMocGFyc2Ut PnNyY3BhZCwKIAkJCQkJCUdTVF9CVUZGRVJfT0ZGU0VUX05PTkUsCiAJCQkJCQljb25zdW1lZCwg dGVtcCwgJm91dHB1dCk7CiAKLQkJZ3N0X2NhcHNfdW5yZWYodGVtcCk7CiAKIAkJaWYgKHJlcyAh PSBHU1RfRkxPV19PSykKIAkJCWdvdG8gZG9uZTsKQEAgLTE4Nyw2ICszNDQsOCBAQAogewogCXNl bGYtPnNpbmtwYWQgPSBnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSgmc2JjX3BhcnNl X3NpbmtfZmFjdG9yeSwgInNpbmsiKTsKIAlnc3RfcGFkX3NldF9jaGFpbl9mdW5jdGlvbihzZWxm LT5zaW5rcGFkLCBHU1RfREVCVUdfRlVOQ1BUUihzYmNfcGFyc2VfY2hhaW4pKTsKKwlnc3RfcGFk X3NldF9zZXRjYXBzX2Z1bmN0aW9uIChzZWxmLT5zaW5rcGFkLCAKKwkJR1NUX0RFQlVHX0ZVTkNQ VFIgKHNiY19wYXJzZV9zaW5rX3NldGNhcHMpKTsKIAlnc3RfZWxlbWVudF9hZGRfcGFkKEdTVF9F TEVNRU5UKHNlbGYpLCBzZWxmLT5zaW5rcGFkKTsKIAogCXNlbGYtPnNyY3BhZCA9IGdzdF9wYWRf bmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlKCZzYmNfcGFyc2Vfc3JjX2ZhY3RvcnksICJzcmMiKTsK ------=_Part_507_10542213.1190729913016 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_f70hqjty SW5kZXg6IGF1ZGlvL2dzdHNiY3V0aWwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBhdWRpby9nc3Rz YmN1dGlsLmMKZGlmZiAtTiBhdWRpby9nc3RzYmN1dGlsLmMKLS0tIC9kZXYvbnVsbAkxIEphbiAx OTcwIDAwOjAwOjAwIC0wMDAwCisrKyBhdWRpby9nc3RzYmN1dGlsLmMJMjQgU2VwIDIwMDcgMTk6 MDc6MjQgLTAwMDAKQEAgLTAsMCArMSwxOTcgQEAKKy8qCisgKgorICogIEJsdWVaIC0gQmx1ZXRv b3RoIHByb3RvY29sIHN0YWNrIGZvciBMaW51eAorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQt MjAwNyAgTWFyY2VsIEhvbHRtYW5uIDxtYXJjZWxAaG9sdG1hbm4ub3JnPgorICoKKyAqCisgKiAg VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5 IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGgg dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91 bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw MjExMC0xMzAxICBVU0EKKyAqCisgKi8KKworCisvKiBjb21tb24gZnVuY3Rpb25zIGZvciBnc3Ry ZWFtZXIgc2JjIHJlbGF0ZWQgcGx1Z2lucyAqLworCisKKyNpbmNsdWRlICJnc3RzYmNfdXRpbC5o IgorI2luY2x1ZGUgImlwYy5oIgorCisvKgorICogU2VsZWN0cyBvbmUgcmF0ZSBmcm9tIGEgbGlz dCBvZiBwb3NzaWJsZSByYXRlcworICogVE9ETyAtIHVzZSBhIGJldHRlciBhcHByb2FjaCB0byB0 aGlzIChpdCBpcyBzZWxlY3RpbmcgdGhlIGxhc3QgZWxlbWVudCkKKyAqLworZ2ludCBnc3Rfc2Jj X3NlbGVjdF9yYXRlX2Zyb21fbGlzdChjb25zdCBHVmFsdWUgKnZhbHVlKQoreworCWd1aW50IHNp emUgPSBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZSh2YWx1ZSk7CisJcmV0dXJuIGdfdmFsdWVfZ2V0 X2ludChnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUodmFsdWUsIHNpemUtMSkpOworfQorCisvKgor ICogU2VsZWN0cyBvbmUgcmF0ZSBmcm9tIGEgcmFuZ2Ugb2YgcG9zc2libGUgcmF0ZXMKKyAqIFRP RE8gLSB1c2UgYSBiZXR0ZXIgYXBwcm9hY2ggdG8gdGhpcyAoaXQgaXMgc2VsZWN0aW5nIHRoZSBt YXhpbXVtIHZhbHVlKQorICovCitnaW50IGdzdF9zYmNfc2VsZWN0X3JhdGVfZnJvbV9yYW5nZShj b25zdCBHVmFsdWUgKnZhbHVlKQoreworCXJldHVybiBnc3RfdmFsdWVfZ2V0X2ludF9yYW5nZV9t YXgodmFsdWUpOworfQorCisKKworLyoKKyAqIFNlbGVjdHMgb25lIG51bWJlciBvZiBjaGFubmVs cyBmcm9tIGEgbGlzdCBvZiBwb3NzaWJsZSBudW1iZXJzCisgKiBUT0RPIC0gdXNlIGEgYmV0dGVy IGFwcHJvYWNoIHRvIHRoaXMgKGl0IGlzIHNlbGVjdGluZyB0aGUgbGFzdCBlbGVtZW50KQorICov CitnaW50IGdzdF9zYmNfc2VsZWN0X2NoYW5uZWxzX2Zyb21fbGlzdChjb25zdCBHVmFsdWUgKnZh bHVlKQoreworCWd1aW50IHNpemUgPSBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZSh2YWx1ZSk7CisJ cmV0dXJuIGdfdmFsdWVfZ2V0X2ludChnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUodmFsdWUsIHNp emUtMSkpOworfQorCisvKgorICogU2VsZWN0cyBvbmUgbnVtYmVyIG9mIGNoYW5uZWxzIG9wdGlv biBmcm9tIGEgcmFuZ2Ugb2YgcG9zc2libGUgbnVtYmVycworICogVE9ETyAtIHVzZSBhIGJldHRl ciBhcHByb2FjaCB0byB0aGlzIChpdCBpcyBzZWxlY3RpbmcgdGhlIG1heGltdW0gdmFsdWUpCisg Ki8KK2dpbnQgZ3N0X3NiY19zZWxlY3RfY2hhbm5lbHNfZnJvbV9yYW5nZShjb25zdCBHVmFsdWUg KnZhbHVlKQoreworCXJldHVybiBnc3RfdmFsdWVfZ2V0X2ludF9yYW5nZV9tYXgodmFsdWUpOwor fQorCisvKgorICogU2VsZWN0cyBvbmUgbnVtYmVyIG9mIGJsb2NrcyBmcm9tIGEgbGlzdCBvZiBw b3NzaWJsZSBibG9ja3MKKyAqIFRPRE8gLSB1c2UgYSBiZXR0ZXIgYXBwcm9hY2ggdG8gdGhpcyAo aXQgaXMgc2VsZWN0aW5nIHRoZSBsYXN0IGVsZW1lbnQpCisgKi8KK2dpbnQgZ3N0X3NiY19zZWxl Y3RfYmxvY2tzX2Zyb21fbGlzdChjb25zdCBHVmFsdWUgKnZhbHVlKQoreworCWd1aW50IHNpemUg PSBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZSh2YWx1ZSk7CisJcmV0dXJuIGdfdmFsdWVfZ2V0X2lu dChnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUodmFsdWUsIHNpemUtMSkpOworfQorCisvKgorICog U2VsZWN0cyBvbmUgYmxvY2tzIG9wdGlvbiBmcm9tIGEgcmFuZ2Ugb2YgcG9zc2libGUgYmxvY2tz CisgKiBUT0RPIC0gdXNlIGEgYmV0dGVyIGFwcHJvYWNoIHRvIHRoaXMgKGl0IGlzIHNlbGVjdGlu ZyB0aGUgbWF4aW11bSB2YWx1ZSkKKyAqLworZ2ludCBnc3Rfc2JjX3NlbGVjdF9ibG9ja3NfZnJv bV9yYW5nZShjb25zdCBHVmFsdWUgKnZhbHVlKQoreworCXJldHVybiBnc3RfdmFsdWVfZ2V0X2lu dF9yYW5nZV9tYXgodmFsdWUpOworfQorCisKKy8qCisgKiBTZWxlY3RzIG9uZSBudW1iZXIgb2Yg c3ViYmFuZHMgZnJvbSBhIGxpc3QKKyAqIFRPRE8gLSB1c2UgYSBiZXR0ZXIgYXBwcm9hY2ggdG8g dGhpcyAoaXQgaXMgc2VsZWN0aW5nIHRoZSBsYXN0IGVsZW1lbnQpCisgKi8KK2dpbnQgZ3N0X3Ni Y19zZWxlY3Rfc3ViYmFuZHNfZnJvbV9saXN0KGNvbnN0IEdWYWx1ZSAqdmFsdWUpCit7CisJZ3Vp bnQgc2l6ZSA9IGdzdF92YWx1ZV9saXN0X2dldF9zaXplKHZhbHVlKTsKKwlyZXR1cm4gZ192YWx1 ZV9nZXRfaW50KGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSh2YWx1ZSwgc2l6ZS0xKSk7Cit9CisK Ky8qCisgKiBTZWxlY3RzIG9uZSBzdWJiYW5kcyBvcHRpb24gZnJvbSBhIHJhbmdlCisgKiBUT0RP IC0gdXNlIGEgYmV0dGVyIGFwcHJvYWNoIHRvIHRoaXMgKGl0IGlzIHNlbGVjdGluZyB0aGUgbWF4 aW11bSB2YWx1ZSkKKyAqLworZ2ludCBnc3Rfc2JjX3NlbGVjdF9zdWJiYW5kc19mcm9tX3Jhbmdl KGNvbnN0IEdWYWx1ZSAqdmFsdWUpCit7CisJcmV0dXJuIGdzdF92YWx1ZV9nZXRfaW50X3Jhbmdl X21heCh2YWx1ZSk7Cit9CisKKy8qCisgKiBTZWxlY3RzIG9uZSBhbGxvY2F0aW9uIG1vZGUgZnJv bSB0aGUgb25lcyBvbiB0aGUgbGlzdAorICogVE9ETyAtIHVzZSBhIGJldHRlciBhcHByb2FjaAor ICovCitjb25zdCBnY2hhciogZ3N0X3NiY19nZXRfYWxsb2NhdGlvbl9mcm9tX2xpc3QoY29uc3Qg R1ZhbHVlICp2YWx1ZSkKK3sKKwlndWludCBzaXplID0gZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUo dmFsdWUpOworCXJldHVybiBnX3ZhbHVlX2dldF9zdHJpbmcoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3Zh bHVlKHZhbHVlLCBzaXplLTEpKTsKK30KKworCisvKgorICogU2VsZWN0cyBvbmUgbW9kZSBmcm9t IHRoZSBvbmVzIG9uIHRoZSBsaXN0CisgKiBUT0RPIC0gdXNlIGEgYmV0dGVyIGFwcm9hY2gKKyAq LworY29uc3QgZ2NoYXIqIGdzdF9zYmNfZ2V0X21vZGVfZnJvbV9saXN0KGNvbnN0IEdWYWx1ZSAq dmFsdWUpCit7CisJZ3VpbnQgc2l6ZSA9IGdzdF92YWx1ZV9saXN0X2dldF9zaXplKHZhbHVlKTsK KwlyZXR1cm4gZ192YWx1ZV9nZXRfc3RyaW5nKGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSh2YWx1 ZSwgc2l6ZS0xKSk7Cit9CisKK2dpbnQgZ3N0X3NiY19nZXRfYWxsb2NhdGlvbl9tb2RlX2ludChj b25zdCBnY2hhciogYWxsb2NhdGlvbikKK3sKKwlpZiAoZ19hc2NpaV9zdHJjYXNlY21wKGFsbG9j YXRpb24sICJsb3VkbmVzcyIpID09IDApIHsKKwkJcmV0dXJuIENGR19BTExPQ0FUSU9OX0xPVURO RVNTOworCX0gZWxzZSBpZiAoZ19hc2NpaV9zdHJjYXNlY21wKGFsbG9jYXRpb24sICJzbnIiKSA9 PSAwKSB7CisJCXJldHVybiBDRkdfQUxMT0NBVElPTl9TTlI7CisJfSBlbHNlIGlmIChnX2FzY2lp X3N0cmNhc2VjbXAoYWxsb2NhdGlvbiwgImF1dG8iKSA9PSAwKSB7CisJCXJldHVybiBDRkdfQUxM T0NBVElPTl9BVVRPOworCX0gZWxzZSB7CisJCXJldHVybiAtMTsKKwl9CQorfQorCisKKworZ2lu dCBnc3Rfc2JjX2dldF9tb2RlX2ludChjb25zdCBnY2hhciogbW9kZSkKK3sKKwlpZiAoZ19hc2Np aV9zdHJjYXNlY21wKG1vZGUsICJqb2ludCIpID09IDApIHsKKwkJcmV0dXJuIENGR19NT0RFX0pP SU5UX1NURVJFTzsKKwl9IGVsc2UgaWYgKGdfYXNjaWlfc3RyY2FzZWNtcChtb2RlLCAic3RlcmVv IikgPT0gMCkgeworCQlyZXR1cm4gQ0ZHX01PREVfU1RFUkVPOworCX0gZWxzZSBpZiAoZ19hc2Np aV9zdHJjYXNlY21wKG1vZGUsICJkdWFsIikgPT0gMCkgeworCQlyZXR1cm4gQ0ZHX01PREVfRFVB TF9DSEFOTkVMOworCX0gZWxzZSBpZiAoZ19hc2NpaV9zdHJjYXNlY21wKG1vZGUsICJtb25vIikg PT0gMCkgeworCQlyZXR1cm4gQ0ZHX01PREVfTU9OTzsKKwl9IGVsc2UgaWYgKGdfYXNjaWlfc3Ry Y2FzZWNtcChtb2RlLCAiYXV0byIpID09IDApIHsKKwkJcmV0dXJuIENGR19NT0RFX0FVVE87CisJ fSBlbHNlIHsKKwkJcmV0dXJuIC0xOworCX0KK30KKworY29uc3QgZ2NoYXIqIGdzdF9zYmNfZ2V0 X21vZGVfc3RyaW5nKGludCBqb2ludCkKK3sKKwlzd2l0Y2ggKGpvaW50KSB7CisJCWNhc2UgQ0ZH X01PREVfTU9OTzoKKwkJCXJldHVybiAibW9ubyI7CisJCWNhc2UgQ0ZHX01PREVfRFVBTF9DSEFO TkVMOgorCQkJcmV0dXJuICJkdWFsIjsKKwkJY2FzZSBDRkdfTU9ERV9TVEVSRU86CisJCQlyZXR1 cm4gInN0ZXJlbyI7CisJCWNhc2UgQ0ZHX01PREVfSk9JTlRfU1RFUkVPOgorCQkJcmV0dXJuICJq b2ludCI7CisJCWNhc2UgQ0ZHX01PREVfQVVUTzoKKwkJCXJldHVybiBOVUxMOyAvKiBUT0RPIHdo YXQgc2hvdWxkIGJlIHNlbGVjdGVkIGhlcmU/ICovCisJCWRlZmF1bHQ6CisJCQlyZXR1cm4gTlVM TDsKKwl9Cit9CisKK2NvbnN0IGdjaGFyKiBnc3Rfc2JjX2dldF9hbGxvY2F0aW9uX3N0cmluZyhp bnQgYWxsb2MpCit7CisJc3dpdGNoIChhbGxvYykgeworCQljYXNlIENGR19BTExPQ0FUSU9OX0xP VURORVNTOgorCQkJcmV0dXJuICJsb3VkbmVzcyI7CisJCWNhc2UgQ0ZHX0FMTE9DQVRJT05fU05S OgorCQkJcmV0dXJuICJzbnIiOworCQljYXNlIENGR19BTExPQ0FUSU9OX0FVVE86CisJCQlyZXR1 cm4gTlVMTDsgLyogVE9ETyB3aGF0IHNob3VsZCBiZSBzZWxlY3RlZCBoZXJlPyAqLworCQlkZWZh dWx0OgorCQkJcmV0dXJuIE5VTEw7CisJfQorCit9CisKKworCkluZGV4OiBhdWRpby9nc3RzYmN1 dGlsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogYXVkaW8vZ3N0c2JjdXRpbC5oCmRpZmYgLU4gYXVk aW8vZ3N0c2JjdXRpbC5oCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAor KysgYXVkaW8vZ3N0c2JjdXRpbC5oCTI0IFNlcCAyMDA3IDE5OjA3OjI1IC0wMDAwCkBAIC0wLDAg KzEsNTUgQEAKKy8qCisgKgorICogIEJsdWVaIC0gQmx1ZXRvb3RoIHByb3RvY29sIHN0YWNrIGZv ciBMaW51eAorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNyAgTWFyY2VsIEhvbHRtYW5u IDxtYXJjZWxAaG9sdG1hbm4ub3JnPgorICoKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK KyAqICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh bmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqCisg Ki8KKworCisvKiBjb21tb24gZnVuY3Rpb25zIGZvciBnc3RyZWFtZXIgc2JjIHJlbGF0ZWQgcGx1 Z2lucyAqLworCisjaW5jbHVkZSA8Z3N0L2dzdC5oPgorCisKKworZ2ludCBnc3Rfc2JjX3NlbGVj dF9yYXRlX2Zyb21fbGlzdChjb25zdCBHVmFsdWUgKnZhbHVlKTsKK2dpbnQgZ3N0X3NiY19zZWxl Y3RfcmF0ZV9mcm9tX3JhbmdlKGNvbnN0IEdWYWx1ZSAqdmFsdWUpOworCitnaW50IGdzdF9zYmNf c2VsZWN0X2NoYW5uZWxzX2Zyb21fbGlzdChjb25zdCBHVmFsdWUgKnZhbHVlKTsKK2dpbnQgZ3N0 X3NiY19zZWxlY3RfY2hhbm5lbHNfZnJvbV9yYW5nZShjb25zdCBHVmFsdWUgKnZhbHVlKTsKKwor Z2ludCBnc3Rfc2JjX3NlbGVjdF9ibG9ja3NfZnJvbV9saXN0KGNvbnN0IEdWYWx1ZSAqdmFsdWUp OworZ2ludCBnc3Rfc2JjX3NlbGVjdF9ibG9ja3NfZnJvbV9yYW5nZShjb25zdCBHVmFsdWUgKnZh bHVlKTsKKworZ2ludCBnc3Rfc2JjX3NlbGVjdF9zdWJiYW5kc19mcm9tX2xpc3QoY29uc3QgR1Zh bHVlICp2YWx1ZSk7CitnaW50IGdzdF9zYmNfc2VsZWN0X3N1YmJhbmRzX2Zyb21fcmFuZ2UoY29u c3QgR1ZhbHVlICp2YWx1ZSk7CisKK2NvbnN0IGdjaGFyKiBnc3Rfc2JjX2dldF9hbGxvY2F0aW9u X2Zyb21fbGlzdChjb25zdCBHVmFsdWUgKnZhbHVlKTsKK2dpbnQgZ3N0X3NiY19nZXRfYWxsb2Nh dGlvbl9tb2RlX2ludChjb25zdCBnY2hhciogYWxsb2NhdGlvbik7Citjb25zdCBnY2hhciogZ3N0 X3NiY19nZXRfYWxsb2NhdGlvbl9zdHJpbmcoaW50IGFsbG9jKTsKKworY29uc3QgZ2NoYXIqIGdz dF9zYmNfZ2V0X21vZGVfZnJvbV9saXN0KGNvbnN0IEdWYWx1ZSAqdmFsdWUpOworZ2ludCBnc3Rf c2JjX2dldF9tb2RlX2ludChjb25zdCBnY2hhciogbW9kZSk7Citjb25zdCBnY2hhciogZ3N0X3Ni Y19nZXRfbW9kZV9zdHJpbmcoaW50IGpvaW50KTsKKworCisKKworCisK ------=_Part_507_10542213.1190729913016 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_507_10542213.1190729913016 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_507_10542213.1190729913016--