From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 8575C4039B for ; Fri, 18 Feb 2022 23:20:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C819768B159; Sat, 19 Feb 2022 01:20:21 +0200 (EET) Received: from ssq0.pkh.me (laubervilliers-656-1-228-164.w92-154.abo.wanadoo.fr [92.154.28.164]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6979768AF5C for ; Sat, 19 Feb 2022 01:20:14 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pkh.me; s=selector1; t=1645226404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=l9Za0JINjBRSoj6uWFbTpDBrrc956210d2bZXawEEeo=; b=X0tN3PJnaVjlc5BMV0hoWQtS6r+4CcIAQql1QhuHI5iTG+lwdYjeY3K7mRf8GXtiXKAimT 7ZM8035IGkHG7sLnhuOFbMOaxeM0spKNu+/rAaPnq6D3Lg6d7DYpei1v0p9ioP3OxOEzvD fPFMj0gQw16bM+KcSOEHyjfnD/1uz/Q= Received: from localhost (ssq0.pkh.me [local]) by ssq0.pkh.me (OpenSMTPD) with ESMTPA id aacdbe36; Fri, 18 Feb 2022 23:20:04 +0000 (UTC) From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= To: ffmpeg-devel@ffmpeg.org Date: Sat, 19 Feb 2022 00:20:00 +0100 Message-Id: <20220218232001.345826-5-u@pkh.me> X-Mailer: git-send-email 2.34.0 In-Reply-To: <20220218232001.345826-1-u@pkh.me> References: <20220218232001.345826-1-u@pkh.me> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/5] avformat/mov: fix seeking with HEVC open GOP files X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: VGhpcyB3YXMgdGVzdGVkIHdpdGggbWVkaWFzIHJlY29yZGVkIGZyb20gYW4gaVBob25lIFhSIGFu ZCBhbiBpUGhvbmUgMTMuCgpIZXJlIGlzIGhvdyBhIHR5cGljYWwgc3RyZWFtIGxvb2tzIGxpa2Ug aW4gY29kaW5nIG9yZGVyOgoKICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKU gOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUkAogICAg4pSCIHNhbXBsZSB8IFBUUyB8IERUUyB8IGtleWZyYW1lIHwKICAgIOKUnOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKU gOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpAogICAg4pSKICAgICAgICDilIog ICAgIOKUiiAgICAg4pSKICAgICAgICAgIOKUigogICAg4pSCICAgNTMgICDilIIgNTYwIOKUgiA1 MTAg4pSCICAgIE5vICAgIOKUggogICAg4pSCICAgNTQgICDilIIgNTQwIOKUgiA1MjAg4pSCICAg IE5vICAgIOKUggogICAg4pSCICAgNTUgICDilIIgNTMwIOKUgiA1MzAg4pSCICAgIE5vICAgIOKU ggogICAg4pSCICAgNTYgICDilIIgNTUwIOKUgiA1NDAg4pSCICAgIE5vICAgIOKUggogICAg4pSC ICAgNTcgICDilIIgNjAwIOKUgiA1NTAg4pSCICAgIFllcyAgIOKUggogICAg4pSCICogNTggICDi lIIgNTgwIOKUgiA1NjAg4pSCICAgIE5vICAgIOKUggogICAg4pSCICogNTkgICDilIIgNTcwIOKU giA1NzAg4pSCICAgIE5vICAgIOKUggogICAg4pSCICogNjAgICDilIIgNTkwIOKUgiA1ODAg4pSC ICAgIE5vICAgIOKUggogICAg4pSCICAgNjEgICDilIIgNjQwIOKUgiA1OTAg4pSCICAgIE5vICAg IOKUggogICAg4pSCICAgNjIgICDilIIgNjIwIOKUgiA2MDAg4pSCICAgIE5vICAgIOKUggogICAg 4pSKICAgICAgICDilIogICAgIOKUiiAgICAg4pSKICAgICAgICAgIOKUigoKSW4gY29tcG9zaXRp b24vZGlzcGxheSBvcmRlcjoKCiAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDi lIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilJAKICAgIOKUgiBzYW1wbGUgfCBQVFMgfCBEVFMgfCBrZXlmcmFtZSB8CiAgICDilJzi lIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDi lIDilLzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQKICAgIOKUiiAgICAgICAg4pSK ICAgICDilIogICAgIOKUiiAgICAgICAgICDilIoKICAgIOKUgiAgIDU1ICAg4pSCIDUzMCDilIIg NTMwIOKUgiAgICBObyAgICDilIIKICAgIOKUgiAgIDU0ICAg4pSCIDU0MCDilIIgNTIwIOKUgiAg ICBObyAgICDilIIKICAgIOKUgiAgIDU2ICAg4pSCIDU1MCDilIIgNTQwIOKUgiAgICBObyAgICDi lIIKICAgIOKUgiAgIDUzICAg4pSCIDU2MCDilIIgNTEwIOKUgiAgICBObyAgICDilIIKICAgIOKU giAqIDU5ICAg4pSCIDU3MCDilIIgNTcwIOKUgiAgICBObyAgICDilIIKICAgIOKUgiAqIDU4ICAg 4pSCIDU4MCDilIIgNTYwIOKUgiAgICBObyAgICDilIIKICAgIOKUgiAqIDYwICAg4pSCIDU5MCDi lIIgNTgwIOKUgiAgICBObyAgICDilIIKICAgIOKUgiAgIDU3ICAg4pSCIDYwMCDilIIgNTUwIOKU giAgICBZZXMgICDilIIKICAgIOKUgiAgIDYzICAg4pSCIDYxMCDilIIgNjEwIOKUgiAgICBObyAg ICDilIIKICAgIOKUgiAgIDYyICAg4pSCIDYyMCDilIIgNjAwIOKUgiAgICBObyAgICDilIIKICAg IOKUiiAgICAgICAg4pSKICAgICDilIogICAgIOKUiiAgICAgICAgICDilIoKClNhbXBsZS9mcmFt ZSA1OCwgNTkgYW5kIDYwIGFyZSBCLWZyYW1lcyB3aGljaCBhY3R1YWxseSBkZXBlbmRzIG9uIHRo ZQprZXkgZnJhbWUgKDU3KS4gSGVyZSB0aGUga2V5IGZyYW1lIGlzIG5vdCBhbiBJRFIgYnV0IGEg IkNSQSIgKENsZWFuClJhbmRvbSBBY2Nlc3MpLgoKSW5pdGlhbGx5LCBJIHRob3VnaHQgSSBjb3Vs ZCByZWx5IG9uIHRoZSBzZHRwIGJveCAoaW5kZXBlbmRlbnQgYW5kCmRpc3Bvc2FibGUgc2FtcGxl cyksIGJ1dCB1bmZvcnR1bmF0ZWx5OgoKICAgIHNkdHBbNTRdIGlzX2xlYWRpbmc6MCBzYW1wbGVf ZGVwZW5kc19vbjoxIHNhbXBsZV9pc19kZXBlbmRlZF9vbjowIHNhbXBsZV9oYXNfcmVkdW5kYW5j eTowCiAgICBzZHRwWzU1XSBpc19sZWFkaW5nOjAgc2FtcGxlX2RlcGVuZHNfb246MSBzYW1wbGVf aXNfZGVwZW5kZWRfb246MiBzYW1wbGVfaGFzX3JlZHVuZGFuY3k6MAogICAgc2R0cFs1Nl0gaXNf bGVhZGluZzowIHNhbXBsZV9kZXBlbmRzX29uOjEgc2FtcGxlX2lzX2RlcGVuZGVkX29uOjIgc2Ft cGxlX2hhc19yZWR1bmRhbmN5OjAKICAgIHNkdHBbNTddIGlzX2xlYWRpbmc6MCBzYW1wbGVfZGVw ZW5kc19vbjoyIHNhbXBsZV9pc19kZXBlbmRlZF9vbjowIHNhbXBsZV9oYXNfcmVkdW5kYW5jeTow CiAgICBzZHRwWzU4XSBpc19sZWFkaW5nOjAgc2FtcGxlX2RlcGVuZHNfb246MSBzYW1wbGVfaXNf ZGVwZW5kZWRfb246MCBzYW1wbGVfaGFzX3JlZHVuZGFuY3k6MAogICAgc2R0cFs1OV0gaXNfbGVh ZGluZzowIHNhbXBsZV9kZXBlbmRzX29uOjEgc2FtcGxlX2lzX2RlcGVuZGVkX29uOjIgc2FtcGxl X2hhc19yZWR1bmRhbmN5OjAKICAgIHNkdHBbNjBdIGlzX2xlYWRpbmc6MCBzYW1wbGVfZGVwZW5k c19vbjoxIHNhbXBsZV9pc19kZXBlbmRlZF9vbjoyIHNhbXBsZV9oYXNfcmVkdW5kYW5jeTowCiAg ICBzZHRwWzYxXSBpc19sZWFkaW5nOjAgc2FtcGxlX2RlcGVuZHNfb246MSBzYW1wbGVfaXNfZGVw ZW5kZWRfb246MCBzYW1wbGVfaGFzX3JlZHVuZGFuY3k6MAogICAgc2R0cFs2Ml0gaXNfbGVhZGlu ZzowIHNhbXBsZV9kZXBlbmRzX29uOjEgc2FtcGxlX2lzX2RlcGVuZGVkX29uOjAgc2FtcGxlX2hh c19yZWR1bmRhbmN5OjAKClRoZSBpbmZvcm1hdGlvbiB0aGF0IG1pZ2h0IGhhdmUgYmVlbiB1c2Vm dWwgaGVyZSB3b3VsZCBoYXZlIGJlZW4KaXNfbGVhZGluZywgYnV0IGFsbCB0aGUgc2FtcGxlcyBh cmUgc2V0IHRvIDAgc28gdGhpcyB3YXMgdW51c2FibGUuCgpJbnN0ZWFkLCB3ZSBuZWVkIHRvIHJl bHkgb24gc2dwZC9zYmdwIHRhYmxlcy4gSW4gbXkgY2FzZSB0aGUgdmlkZW8gdHJhY2sKY29udGFp bmVkIDMgc2dwZCB0YWJsZXMgd2l0aCB0aGUgZm9sbG93aW5nIGdyb3VwaW5nIHR5cGVzOiB0c2Ns LCBzeW5jCmFuZCB0c2FzLiBJbiB0aGUgc3luYyB0YWJsZSB3ZSBoYXZlIHRoZSBmb2xsb3dpbmcg MiBlbnRyaWVzIChvbmx5KToKCiAgICBzZ3BkLnN5bmNbMV06IHN5bmMgbmFsX3VuaXRfdHlwZTow eDE0CiAgICBzZ3BkLnN5bmNbMl06IHN5bmMgbmFsX3VuaXRfdHlwZToweDE1CgooVGhlIGNvdW50 IHN0YXJ0cyBhdCAxIGJlY2F1c2UgMCBjYXJyaWVzIHRoZSB1bmRlZmluZWQgc2VtYW50aWMsIHdl J2xsCnNlZSB0aGF0IGxhdGVyIGluIHRoZSByZWZlcmVuY2UgdGFibGUpLgoKVGhlIE5BTCB1bml0 IHR5cGVzIHByZXNlbnRlZCBoZXJlIGNvcnJlc3BvbmQgdG86CgogICAgbGliYXZjb2RlYy9oZXZj Lmg6ICAgIEhFVkNfTkFMX0lEUl9OX0xQICAgICAgID0gMjAsCiAgICBsaWJhdmNvZGVjL2hldmMu aDogICAgSEVWQ19OQUxfQ1JBX05VVCAgICAgICAgPSAyMSwKCkluIHBhcmFsbGVsLCB0aGUgc2Jn cCBzeW5jIHRhYmxlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmc6CgogICAg4pSM4pSA4pSA4pSA4pSA 4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSQCiAgICDilIIgaWQg 4pSCIGNvdW50IOKUgiBnZGkg4pSCCiAgICDilJzilIDilIDilIDilIDilLzilIDilIDilIDilIDi lIDilIDilIDilLzilIDilIDilIDilIDilIDilKQKICAgIOKUgiAgMCDilIIgICAxICAg4pSCICAx ICDilIIKICAgIOKUgiAgMSDilIIgICA1NiAg4pSCICAwICDilIIKICAgIOKUgiAgMiDilIIgICAx ICAg4pSCICAyICDilIIKICAgIOKUgiAgMyDilIIgICA1OSAg4pSCICAwICDilIIKICAgIOKUgiAg NCDilIIgICAxICAg4pSCICAyICDilIIKICAgIOKUgiAgNSDilIIgICA1OSAg4pSCICAwICDilIIK ICAgIOKUgiAgNiDilIIgICAxICAg4pSCICAyICDilIIKICAgIOKUgiAgNyDilIIgICA1OSAg4pSC ICAwICDilIIKICAgIOKUgiAgOCDilIIgICAxICAg4pSCICAyICDilIIKICAgIOKUgiAgOSDilIIg ICA1OSAg4pSCICAwICDilIIKICAgIOKUgiAxMCDilIIgICAxICAg4pSCICAyICDilIIKICAgIOKU giAxMSDilIIgICAxMSAg4pSCICAwICDilIIKICAgIOKUlOKUgOKUgOKUgOKUgOKUtOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUmAoKVGhlIGdkaSBjb2x1bW4gKGdyb3Vw IGRlc2NyaXB0aW9uIGluZGV4KSBkaXJlY3RseSByZWZlcnMgdG8gdGhlIGluZGV4IGluCnRoZSBz Z3BkLnN5bmMgdGFibGUuIFRoaXMgbWVhbnMgdGhlIGZpcnN0IGZyYW1lIGlzIGFuIElEUiwgdGhl biB3ZSBoYXZlCmJhdGNoZXMgb2YgdW5kZWZpbmVkIGZyYW1lcyBpbnRlcmxhY2VkIHdpdGggQ1JB IGZyYW1lcy4gTm8gSURSIGV2ZXIKYXBwZWFycyBhZ2FpbiAodHJpZWQgb24gYSAzMCsgc2Vjb25k cyBzYW1wbGUpLgoKV2l0aCB0aGF0IGluZm9ybWF0aW9uLCB3ZSBjYW4gYnVpbGQgYW4gaGV1cmlz dGljIHVzaW5nIHRoZSBwcmVzZW50YXRpb24Kb3JkZXIuCgpBIGZldyB0aGluZ3MgbmVlZGVkIHRv IGJlIGludHJvZHVjZWQgaW4gdGhpcyBjb21taXQ6CgoxLiBtaW5fc2FtcGxlX2R1cmF0aW9uIGlz IGV4dHJhY3RlZCBmcm9tIHRoZSBzdHRzOiB3ZSBuZWVkIHRoZSBtaW5pbWFsCiAgIHN0ZXAgYmV0 d2VlbiBzYW1wbGUgaW4gb3JkZXIgdG8gUFRTLXN0ZXAgYmFja3dhcmQgdG8gYSB2YWxpZCBwb2lu dAoyLiBJbiBvcmRlciB0byBhdm9pZCBhIGxvb3Agb3ZlciB0aGUgY3R0cyB0YWJsZSBzeXN0ZW1h dGljYWxseSBkdXJpbmcgYQogICBzZWVrLCB3ZSBidWlsZCBhbiBleHBhbmRlZCBsaXN0IG9mIHNh bXBsZSBvZmZzZXRzIHdoaWNoIHdpbGwgYmUgdXNlZAogICB0byB0cmFuc2xhdGUgZnJvbSBEVFMg dG8gUFRTCjMuIEFuIG9wZW5fa2V5X3NhbXBsZXMgaW5kZXggdG8ga2VlcCB0cmFjayBvZiBhbGwg dGhlIG5vbi1JRFIga2V5CiAgIGZyYW1lczsgZm9yIG5vdyBpdCBvbmx5IHN1cHBvcnRzIEhFVkMg Q1JBIGZyYW1lcy4gV2Ugc2hvdWxkIHByb2JhYmx5CiAgIGFkZCBCTEEgZnJhbWVzIGFzIHdlbGws IGJ1dCBJIGRvbid0IGhhdmUgYW55IHNhbXBsZSBzbyBJIHByZWZlcmVkIHRvCiAgIGxlYXZlIHRo YXQgZm9yIGxhdGVyCgpJdCBpcyBlbnRpcmVseSBwb3NzaWJsZSBJIG1pc3NlZCBzb21ldGhpbmcg b2J2aW91cyBpbiBteSBhcHByb2FjaCwgYnV0IEkKY291bGRuJ3QgY29tZSB1cCB3aXRoIGEgYmV0 dGVyIHNvbHV0aW9uLiBBbHNvLCBhcyBtZW50aW9uZWQgaW4gdGhlIGRpZmYsCndlIGNvdWxkIG9w dGltaXplIGlzX29wZW5fa2V5X3NhbXBsZSgpLCBidXQgdGhlIGxpbmVhciBzY2FsaW5nIG92ZXJo ZWFkCnNob3VsZCBiZSBmaW5lIGZvciBub3cgc2luY2UgaXQgb25seSBoYXBwZW5zIGluIHNlZWsg ZXZlbnRzLgoKRml4aW5nIHRoaXMgaXNzdWUgcHJldmVudHMgc2VuZGluZyBicm9rZW4gcGFja2V0 cyB0byB0aGUgZGVjb2Rlci4gV2l0aApGRm1wZWcgaGV2YyBkZWNvZGVyIHRoZSBmcmFtZXMgYXJl IHNraXBwZWQsIHdpdGggVmlkZW9Ub29sYm94IHRoZSBmcmFtZXMKYXJlIGdsaXRjaGluZy4KLS0t CiBsaWJhdmZvcm1hdC9pc29tLmggfCAgIDUgKysKIGxpYmF2Zm9ybWF0L21vdi5jICB8IDEyMSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDIgZmlsZXMgY2hh bmdlZCwgMTI0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGli YXZmb3JtYXQvaXNvbS5oIGIvbGliYXZmb3JtYXQvaXNvbS5oCmluZGV4IGJiZTM5NWVlNGIuLjcz NjJjODc2YmUgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2lzb20uaAorKysgYi9saWJhdmZvcm1h dC9pc29tLmgKQEAgLTE2OSwxMSArMTY5LDE0IEBAIHR5cGVkZWYgc3RydWN0IE1PVlN0cmVhbUNv bnRleHQgewogICAgIGludDY0X3QgKmNodW5rX29mZnNldHM7CiAgICAgdW5zaWduZWQgaW50IHN0 dHNfY291bnQ7CiAgICAgTU9WU3R0cyAqc3R0c19kYXRhOworICAgIHVpbnQzMl90IG1pbl9zYW1w bGVfZHVyYXRpb247CiAgICAgdW5zaWduZWQgaW50IHNkdHBfY291bnQ7CiAgICAgdWludDhfdCAq c2R0cF9kYXRhOwogICAgIHVuc2lnbmVkIGludCBjdHRzX2NvdW50OwogICAgIHVuc2lnbmVkIGlu dCBjdHRzX2FsbG9jYXRlZF9zaXplOwogICAgIE1PVkN0dHMgKmN0dHNfZGF0YTsKKyAgICBpbnQz Ml90ICpzYW1wbGVfb2Zmc2V0czsKKyAgICBpbnQgc2FtcGxlX29mZnNldHNfY291bnQ7CiAgICAg dW5zaWduZWQgaW50IHN0c2NfY291bnQ7CiAgICAgTU9WU3RzYyAqc3RzY19kYXRhOwogICAgIHVu c2lnbmVkIGludCBzdHNjX2luZGV4OwpAQCAtMjIyLDYgKzIyNSw4IEBAIHR5cGVkZWYgc3RydWN0 IE1PVlN0cmVhbUNvbnRleHQgewogICAgIE1PVlNiZ3AgKnN5bmNfZ3JvdXA7CiAgICAgdWludDhf dCAqc2dwZF9zeW5jOwogICAgIHVpbnQzMl90IHNncGRfc3luY19jb3VudDsKKyAgICBpbnQgKm9w ZW5fa2V5X3NhbXBsZXM7CisgICAgaW50IG9wZW5fa2V5X3NhbXBsZXNfY291bnQ7CiAKICAgICBp bnQgbmJfZnJhbWVzX2Zvcl9mcHM7CiAgICAgaW50NjRfdCBkdXJhdGlvbl9mb3JfZnBzOwpkaWZm IC0tZ2l0IGEvbGliYXZmb3JtYXQvbW92LmMgYi9saWJhdmZvcm1hdC9tb3YuYwppbmRleCA2YjIy ZDhjNWY4Li45MTlkZDk0MGMwIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9tb3YuYworKysgYi9s aWJhdmZvcm1hdC9tb3YuYwpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9k b3ZpX21ldGEuaCIKICNpbmNsdWRlICJsaWJhdmNvZGVjL2FjM3RhYi5oIgogI2luY2x1ZGUgImxp YmF2Y29kZWMvZmxhYy5oIgorI2luY2x1ZGUgImxpYmF2Y29kZWMvaGV2Yy5oIgogI2luY2x1ZGUg ImxpYmF2Y29kZWMvbXBlZ2F1ZGlvZGVjaGVhZGVyLmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy9t bHBfcGFyc2UuaCIKICNpbmNsdWRlICJhdmZvcm1hdC5oIgpAQCAtMjk0OCw2ICsyOTQ5LDcgQEAg c3RhdGljIGludCBtb3ZfcmVhZF9zdHRzKE1PVkNvbnRleHQgKmMsIEFWSU9Db250ZXh0ICpwYiwg TU9WQXRvbSBhdG9tKQogICAgIGlmIChlbnRyaWVzID49IElOVF9NQVggLyBzaXplb2YoKnNjLT5z dHRzX2RhdGEpKQogICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwogCisgICAgc2MtPm1p bl9zYW1wbGVfZHVyYXRpb24gPSBJTlRfTUFYOwogICAgIGZvciAoaSA9IDA7IGkgPCBlbnRyaWVz ICYmICFwYi0+ZW9mX3JlYWNoZWQ7IGkrKykgewogICAgICAgICB1bnNpZ25lZCBpbnQgc2FtcGxl X2R1cmF0aW9uOwogICAgICAgICB1bnNpZ25lZCBpbnQgc2FtcGxlX2NvdW50OwpAQCAtMjk2Nyw2 ICsyOTY5LDcgQEAgc3RhdGljIGludCBtb3ZfcmVhZF9zdHRzKE1PVkNvbnRleHQgKmMsIEFWSU9D b250ZXh0ICpwYiwgTU9WQXRvbSBhdG9tKQogCiAgICAgICAgIHNjLT5zdHRzX2RhdGFbaV0uY291 bnQ9IHNhbXBsZV9jb3VudDsKICAgICAgICAgc2MtPnN0dHNfZGF0YVtpXS5kdXJhdGlvbj0gc2Ft cGxlX2R1cmF0aW9uOworICAgICAgICBzYy0+bWluX3NhbXBsZV9kdXJhdGlvbiA9IEZGTUlOKHNj LT5taW5fc2FtcGxlX2R1cmF0aW9uLCBzYW1wbGVfZHVyYXRpb24pOwogCiAgICAgICAgIGF2X2xv ZyhjLT5mYywgQVZfTE9HX1RSQUNFLCAic2FtcGxlX2NvdW50PSV1LCBzYW1wbGVfZHVyYXRpb249 JXVcbiIsCiAgICAgICAgICAgICAgICAgc2FtcGxlX2NvdW50LCBzYW1wbGVfZHVyYXRpb24pOwpA QCAtMzA2OSw2ICszMDcyLDcgQEAgc3RhdGljIGludCBtb3ZfcmVhZF9jdHRzKE1PVkNvbnRleHQg KmMsIEFWSU9Db250ZXh0ICpwYiwgTU9WQXRvbSBhdG9tKQogICAgIEFWU3RyZWFtICpzdDsKICAg ICBNT1ZTdHJlYW1Db250ZXh0ICpzYzsKICAgICB1bnNpZ25lZCBpbnQgaSwgZW50cmllcywgY3R0 c19jb3VudCA9IDA7CisgICAgaW50MzJfdCAqc2FtcGxlX29mZnNldHM7CiAKICAgICBpZiAoYy0+ ZmMtPm5iX3N0cmVhbXMgPCAxKQogICAgICAgICByZXR1cm4gMDsKQEAgLTMwOTAsNiArMzA5NCw3 IEBAIHN0YXRpYyBpbnQgbW92X3JlYWRfY3R0cyhNT1ZDb250ZXh0ICpjLCBBVklPQ29udGV4dCAq cGIsIE1PVkF0b20gYXRvbSkKICAgICBpZiAoIXNjLT5jdHRzX2RhdGEpCiAgICAgICAgIHJldHVy biBBVkVSUk9SKEVOT01FTSk7CiAKKyAgICBzYy0+c2FtcGxlX29mZnNldHNfY291bnQgPSAwOwog ICAgIGZvciAoaSA9IDA7IGkgPCBlbnRyaWVzICYmICFwYi0+ZW9mX3JlYWNoZWQ7IGkrKykgewog ICAgICAgICBpbnQgY291bnQgICAgPSBhdmlvX3JiMzIocGIpOwogICAgICAgICBpbnQgZHVyYXRp b24gPSBhdmlvX3JiMzIocGIpOwpAQCAtMzEwMSw4ICszMTA2LDkgQEAgc3RhdGljIGludCBtb3Zf cmVhZF9jdHRzKE1PVkNvbnRleHQgKmMsIEFWSU9Db250ZXh0ICpwYiwgTU9WQXRvbSBhdG9tKQog ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBhZGRfY3R0c19lbnRy eSgmc2MtPmN0dHNfZGF0YSwgJmN0dHNfY291bnQsICZzYy0+Y3R0c19hbGxvY2F0ZWRfc2l6ZSwK LSAgICAgICAgICAgICAgICAgICAgICAgY291bnQsIGR1cmF0aW9uKTsKKyAgICAgICAgaWYgKGFk ZF9jdHRzX2VudHJ5KCZzYy0+Y3R0c19kYXRhLCAmY3R0c19jb3VudCwgJnNjLT5jdHRzX2FsbG9j YXRlZF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQsIGR1cmF0aW9uKSA+ PSAwKQorICAgICAgICAgICAgc2MtPnNhbXBsZV9vZmZzZXRzX2NvdW50ICs9IGNvdW50OwogCiAg ICAgICAgIGF2X2xvZyhjLT5mYywgQVZfTE9HX1RSQUNFLCAiY291bnQ9JWQsIGR1cmF0aW9uPSVk XG4iLAogICAgICAgICAgICAgICAgIGNvdW50LCBkdXJhdGlvbik7CkBAIC0zMTI3LDYgKzMxMzMs MTUgQEAgc3RhdGljIGludCBtb3ZfcmVhZF9jdHRzKE1PVkNvbnRleHQgKmMsIEFWSU9Db250ZXh0 ICpwYiwgTU9WQXRvbSBhdG9tKQogCiAgICAgYXZfbG9nKGMtPmZjLCBBVl9MT0dfVFJBQ0UsICJk dHMgc2hpZnQgJWRcbiIsIHNjLT5kdHNfc2hpZnQpOwogCisgICAgYXZfZnJlZXAoJnNjLT5zYW1w bGVfb2Zmc2V0cyk7CisgICAgc2MtPnNhbXBsZV9vZmZzZXRzID0gYXZfY2FsbG9jKHNjLT5zYW1w bGVfb2Zmc2V0c19jb3VudCwgc2l6ZW9mKCpzYy0+c2FtcGxlX29mZnNldHMpKTsKKyAgICBpZiAo IXNjLT5zYW1wbGVfb2Zmc2V0cykKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAg ICBzYW1wbGVfb2Zmc2V0cyA9IHNjLT5zYW1wbGVfb2Zmc2V0czsKKyAgICBmb3IgKGludCBpID0g MDsgaSA8IHNjLT5jdHRzX2NvdW50OyBpKyspCisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwg c2MtPmN0dHNfZGF0YVtpXS5jb3VudDsgaisrKQorICAgICAgICAgICAgICpzYW1wbGVfb2Zmc2V0 cysrID0gc2MtPmN0dHNfZGF0YVtpXS5kdXJhdGlvbjsKKwogICAgIHJldHVybiAwOwogfQogCkBA IC0zODgyLDYgKzM4OTcsNTIgQEAgc3RhdGljIHZvaWQgbW92X2ZpeF9pbmRleChNT1ZDb250ZXh0 ICptb3YsIEFWU3RyZWFtICpzdCkKICAgICBtc2MtPmN1cnJlbnRfaW5kZXggPSBtc2MtPmluZGV4 X3Jhbmdlc1swXS5zdGFydDsKIH0KIAorc3RhdGljIHVpbnQzMl90IGdldF9zZ3BkX3N5bmNfaW5k ZXgoY29uc3QgTU9WU3RyZWFtQ29udGV4dCAqc2MsIGludCBuYWxfdW5pdF90eXBlKQoreworICAg IGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzYy0+c2dwZF9zeW5jX2NvdW50OyBpKyspCisgICAg ICAgIGlmIChzYy0+c2dwZF9zeW5jW2ldID09IEhFVkNfTkFMX0NSQV9OVVQpCisgICAgICAgICAg ICByZXR1cm4gaSArIDE7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYnVpbGRfb3Bl bl9nb3Bfa2V5X3BvaW50cyhBVlN0cmVhbSAqc3QpCit7CisgICAgaW50IGsgPSAwOworICAgIGlu dCBzYW1wbGVfaWQgPSAwOworICAgIGludCBvcGVuX3NhbXBsZV9jb3VudCA9IDA7CisgICAgdWlu dDMyX3QgY3JhX2luZGV4OworICAgIE1PVlN0cmVhbUNvbnRleHQgKnNjID0gc3QtPnByaXZfZGF0 YTsKKworICAgIGlmIChzdC0+Y29kZWNwYXItPmNvZGVjX2lkICE9IEFWX0NPREVDX0lEX0hFVkMg fHwgIXNjLT5zeW5jX2dyb3VwX2NvdW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8qIFRo ZSBmb2xsb3dpbmcgSEVWQyBOQUwgdHlwZSByZXZlYWwgdGhlIHVzZSBvZiBvcGVuIEdPUCBzeW5j IHBvaW50cworICAgICAqIChUT0RPOiBCTEEgdHlwZXMgbWF5IGFsc28gYmUgY29uY2VybmVkKSAq LworICAgIGNyYV9pbmRleCA9IGdldF9zZ3BkX3N5bmNfaW5kZXgoc2MsIEhFVkNfTkFMX0NSQV9O VVQpOyAvKiBDbGVhbiBSYW5kb20gQWNjZXNzICovCisgICAgaWYgKCFjcmFfaW5kZXgpCisgICAg ICAgIHJldHVybiAwOworCisgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHNjLT5zeW5jX2dy b3VwX2NvdW50OyBpKyspCisgICAgICAgIGlmIChzYy0+c3luY19ncm91cFtpXS5pbmRleCA9PSBj cmFfaW5kZXgpCisgICAgICAgICAgICBvcGVuX3NhbXBsZV9jb3VudCArPSBzYy0+c3luY19ncm91 cFtpXS5jb3VudDsKKworICAgIGF2X2ZyZWVwKCZzYy0+b3Blbl9rZXlfc2FtcGxlcyk7CisgICAg c2MtPm9wZW5fa2V5X3NhbXBsZXNfY291bnQgPSBvcGVuX3NhbXBsZV9jb3VudDsKKyAgICBzYy0+ b3Blbl9rZXlfc2FtcGxlcyA9IGF2X2NhbGxvYyhvcGVuX3NhbXBsZV9jb3VudCwgc2l6ZW9mKCpz Yy0+b3Blbl9rZXlfc2FtcGxlcykpOworICAgIGlmICghc2MtPm9wZW5fa2V5X3NhbXBsZXMpCisg ICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CisKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAw OyBpIDwgc2MtPnN5bmNfZ3JvdXBfY291bnQ7IGkrKykgeworICAgICAgICBjb25zdCBNT1ZTYmdw ICpzZyA9ICZzYy0+c3luY19ncm91cFtpXTsKKyAgICAgICAgaWYgKHNnLT5pbmRleCA9PSBjcmFf aW5kZXgpCisgICAgICAgICAgICBmb3IgKHVpbnQzMl90IGogPSAwOyBqIDwgc2ctPmNvdW50OyBq KyspCisgICAgICAgICAgICAgICAgc2MtPm9wZW5fa2V5X3NhbXBsZXNbaysrXSA9IHNhbXBsZV9p ZDsKKyAgICAgICAgc2FtcGxlX2lkICs9IHNnLT5jb3VudDsKKyAgICB9CisKKyAgICByZXR1cm4g MDsKK30KKwogc3RhdGljIHZvaWQgbW92X2J1aWxkX2luZGV4KE1PVkNvbnRleHQgKm1vdiwgQVZT dHJlYW0gKnN0KQogewogICAgIE1PVlN0cmVhbUNvbnRleHQgKnNjID0gc3QtPnByaXZfZGF0YTsK QEAgLTM4OTcsNiArMzk1OCwxMCBAQCBzdGF0aWMgdm9pZCBtb3ZfYnVpbGRfaW5kZXgoTU9WQ29u dGV4dCAqbW92LCBBVlN0cmVhbSAqc3QpCiAgICAgTU9WQ3R0cyAqY3R0c19kYXRhX29sZCA9IHNj LT5jdHRzX2RhdGE7CiAgICAgdW5zaWduZWQgaW50IGN0dHNfY291bnRfb2xkID0gc2MtPmN0dHNf Y291bnQ7CiAKKyAgICBpbnQgcmV0ID0gYnVpbGRfb3Blbl9nb3Bfa2V5X3BvaW50cyhzdCk7Cisg ICAgaWYgKHJldCA8IDApCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChzYy0+ZWxzdF9jb3Vu dCkgewogICAgICAgICBpbnQgaSwgZWRpdF9zdGFydF9pbmRleCA9IDAsIG11bHRpcGxlX2VkaXRz ID0gMDsKICAgICAgICAgaW50NjRfdCBlbXB0eV9kdXJhdGlvbiA9IDA7IC8vIGVtcHR5IGR1cmF0 aW9uIG9mIHRoZSBmaXJzdCBlZGl0IGxpc3QgZW50cnkKQEAgLTc3NzIsNiArNzgzNyw4IEBAIHN0 YXRpYyBpbnQgbW92X3JlYWRfY2xvc2UoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICBhdl9m cmVlcCgmc2MtPnJhcF9ncm91cCk7CiAgICAgICAgIGF2X2ZyZWVwKCZzYy0+c3luY19ncm91cCk7 CiAgICAgICAgIGF2X2ZyZWVwKCZzYy0+c2dwZF9zeW5jKTsKKyAgICAgICAgYXZfZnJlZXAoJnNj LT5vcGVuX2tleV9zYW1wbGVzKTsKKyAgICAgICAgYXZfZnJlZXAoJnNjLT5zYW1wbGVfb2Zmc2V0 cyk7CiAgICAgICAgIGF2X2ZyZWVwKCZzYy0+ZGlzcGxheV9tYXRyaXgpOwogICAgICAgICBhdl9m cmVlcCgmc2MtPmluZGV4X3Jhbmdlcyk7CiAKQEAgLTg0NDQsNiArODUxMSw0OSBAQCBzdGF0aWMg aW50IG1vdl9zZWVrX2ZyYWdtZW50KEFWRm9ybWF0Q29udGV4dCAqcywgQVZTdHJlYW0gKnN0LCBp bnQ2NF90IHRpbWVzdGFtcAogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGlzX29wZW5f a2V5X3NhbXBsZShjb25zdCBNT1ZTdHJlYW1Db250ZXh0ICpzYywgaW50IHNhbXBsZSkKK3sKKyAg ICAvLyBUT0RPOiBhIGJpc2VjdCBzZWFyY2ggd291bGQgc2NhbGUgbXVjaCBiZXR0ZXIKKyAgICBm b3IgKGludCBpID0gMDsgaSA8IHNjLT5vcGVuX2tleV9zYW1wbGVzX2NvdW50OyBpKyspIHsKKyAg ICAgICAgY29uc3QgaW50IG9rcyA9IHNjLT5vcGVuX2tleV9zYW1wbGVzW2ldOworICAgICAgICBp ZiAob2tzID09IHNhbXBsZSkKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBpZiAob2tz ID4gc2FtcGxlKSAvKiBsaXN0IGlzIG1vbm90aWNhbGx5IGluY3JlYXNpbmcgc28gd2UgY2FuIHN0 b3AgZWFybHkgKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gMDsKK30K KworLyoKKyAqIFNvbWUga2V5IHNhbXBsZSBtYXkgYmUga2V5IGZyYW1lcyBidXQgbm90IElEUiBm cmFtZXMsIHNvIGEgcmFuZG9tIGFjY2VzcyB0bworICogdGhlbSBtYXkgbm90IGJlIGFsbG93ZWQu CisgKi8KK3N0YXRpYyBpbnQgY2FuX3NlZWtfdG9fa2V5X3NhbXBsZShBVlN0cmVhbSAqc3QsIGlu dCBzYW1wbGUsIGludDY0X3QgcmVxdWVzdGVkX3B0cykKK3sKKyAgICBNT1ZTdHJlYW1Db250ZXh0 ICpzYyA9IHN0LT5wcml2X2RhdGE7CisgICAgRkZTdHJlYW0gKmNvbnN0IHN0aSA9IGZmc3RyZWFt KHN0KTsKKyAgICBpbnQ2NF90IGtleV9zYW1wbGVfZHRzLCBrZXlfc2FtcGxlX3B0czsKKworICAg IGlmIChzdC0+Y29kZWNwYXItPmNvZGVjX2lkICE9IEFWX0NPREVDX0lEX0hFVkMpCisgICAgICAg IHJldHVybiAxOworCisgICAgaWYgKHNhbXBsZSA+PSBzYy0+c2FtcGxlX29mZnNldHNfY291bnQp CisgICAgICAgIHJldHVybiAxOworCisgICAga2V5X3NhbXBsZV9kdHMgPSBzdGktPmluZGV4X2Vu dHJpZXNbc2FtcGxlXS50aW1lc3RhbXA7CisgICAga2V5X3NhbXBsZV9wdHMgPSBrZXlfc2FtcGxl X2R0cyArIHNjLT5zYW1wbGVfb2Zmc2V0c1tzYW1wbGVdICsgc2MtPmR0c19zaGlmdDsKKworICAg IC8qCisgICAgICogSWYgdGhlIHNhbXBsZSBuZWVkcyB0byBiZSBwcmVzZW50ZWQgYmVmb3JlIGFu IG9wZW4ga2V5IHNhbXBsZSwgdGhleSBtYXkKKyAgICAgKiBub3QgYmUgZGVjb2RhYmxlIHByb3Bl cmx5LCBldmVuIHRob3VnaCB0aGV5IGNvbWUgYWZ0ZXIgaW4gZGVjb2RpbmcKKyAgICAgKiBvcmRl ci4KKyAgICAgKi8KKyAgICBpZiAoaXNfb3Blbl9rZXlfc2FtcGxlKHNjLCBzYW1wbGUpICYmIGtl eV9zYW1wbGVfcHRzID4gcmVxdWVzdGVkX3B0cykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBy ZXR1cm4gMTsKK30KKwogc3RhdGljIGludCBtb3Zfc2Vla19zdHJlYW0oQVZGb3JtYXRDb250ZXh0 ICpzLCBBVlN0cmVhbSAqc3QsIGludDY0X3QgdGltZXN0YW1wLCBpbnQgZmxhZ3MpCiB7CiAgICAg TU9WU3RyZWFtQ29udGV4dCAqc2MgPSBzdC0+cHJpdl9kYXRhOwpAQCAtODQ1OSwxMiArODU2OSwx OSBAQCBzdGF0aWMgaW50IG1vdl9zZWVrX3N0cmVhbShBVkZvcm1hdENvbnRleHQgKnMsIEFWU3Ry ZWFtICpzdCwgaW50NjRfdCB0aW1lc3RhbXAsCiAgICAgaWYgKHJldCA8IDApCiAgICAgICAgIHJl dHVybiByZXQ7CiAKKyAgICBmb3IgKDs7KSB7CiAgICAgc2FtcGxlID0gYXZfaW5kZXhfc2VhcmNo X3RpbWVzdGFtcChzdCwgdGltZXN0YW1wLCBmbGFncyk7CiAgICAgYXZfbG9nKHMsIEFWX0xPR19U UkFDRSwgInN0cmVhbSAlZCwgdGltZXN0YW1wICUiUFJJZDY0Iiwgc2FtcGxlICVkXG4iLCBzdC0+ aW5kZXgsIHRpbWVzdGFtcCwgc2FtcGxlKTsKICAgICBpZiAoc2FtcGxlIDwgMCAmJiBzdGktPm5i X2luZGV4X2VudHJpZXMgJiYgdGltZXN0YW1wIDwgc3RpLT5pbmRleF9lbnRyaWVzWzBdLnRpbWVz dGFtcCkKICAgICAgICAgc2FtcGxlID0gMDsKICAgICBpZiAoc2FtcGxlIDwgMCkgLyogbm90IHN1 cmUgd2hhdCB0byBkbyAqLwogICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKwor ICAgICAgICBpZiAoIXNhbXBsZSB8fCBjYW5fc2Vla190b19rZXlfc2FtcGxlKHN0LCBzYW1wbGUs IHRpbWVzdGFtcCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgdGltZXN0YW1wIC09IEZG TUFYKHNjLT5taW5fc2FtcGxlX2R1cmF0aW9uLCAxKTsKKyAgICB9CisKICAgICBtb3ZfY3VycmVu dF9zYW1wbGVfc2V0KHNjLCBzYW1wbGUpOwogICAgIGF2X2xvZyhzLCBBVl9MT0dfVFJBQ0UsICJz dHJlYW0gJWQsIGZvdW5kIHNhbXBsZSAlZFxuIiwgc3QtPmluZGV4LCBzYy0+Y3VycmVudF9zYW1w bGUpOwogICAgIC8qIGFkanVzdCBjdHRzIGluZGV4ICovCi0tIAoyLjM1LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5n IGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4v bGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwg b3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVu c3Vic2NyaWJlIi4K