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 E131940537 for ; Thu, 24 Feb 2022 11:50:03 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6A86F68B339; Thu, 24 Feb 2022 13:49:25 +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 4589E68B333 for ; Thu, 24 Feb 2022 13:49:17 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pkh.me; s=selector1; t=1645703347; 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=dPAAPYpZOBhPZGyIoZhXU+/6k7pl2W1viI2sCbOCpbg=; b=XS7D79ht1mP1MFhwWUXHKGvhOCEAdyunK3MVJGwQEsdDmlJ02tzrceCuvK8jpKhWt0/Ooj j7kB2w0fHM7PBF5R8XLblGtuxQWpvzgtpk/RmRsGGObsWidd9FuNxungtkpM6mu9Jqss7Y cZkWIEvS4HteR5Raxf5sTzI5gr2R/m4= Received: from localhost (ssq0.pkh.me [local]) by ssq0.pkh.me (OpenSMTPD) with ESMTPA id 8529ccf9; Thu, 24 Feb 2022 11:49:07 +0000 (UTC) From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= To: ffmpeg-devel@ffmpeg.org Date: Thu, 24 Feb 2022 12:49:02 +0100 Message-Id: <20220224114903.251006-5-u@pkh.me> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220224114903.251006-1-u@pkh.me> References: <20220224114903.251006-1-u@pkh.me> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 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 CiBsaWJhdmZvcm1hdC9pc29tLmggfCAgIDUgKysKIGxpYmF2Zm9ybWF0L21vdi5jICB8IDEyMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hh bmdlZCwgMTI1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9pc29tLmgg Yi9saWJhdmZvcm1hdC9pc29tLmgKaW5kZXggYmJlMzk1ZWU0Yi4uNWNhZjQyYjE1ZCAxMDA2NDQK LS0tIGEvbGliYXZmb3JtYXQvaXNvbS5oCisrKyBiL2xpYmF2Zm9ybWF0L2lzb20uaApAQCAtMjIy LDYgKzIyMiwxMSBAQCB0eXBlZGVmIHN0cnVjdCBNT1ZTdHJlYW1Db250ZXh0IHsKICAgICBNT1ZT YmdwICpzeW5jX2dyb3VwOwogICAgIHVpbnQ4X3QgKnNncGRfc3luYzsKICAgICB1aW50MzJfdCBz Z3BkX3N5bmNfY291bnQ7CisgICAgaW50MzJfdCAqc2FtcGxlX29mZnNldHM7CisgICAgaW50IHNh bXBsZV9vZmZzZXRzX2NvdW50OworICAgIGludCAqb3Blbl9rZXlfc2FtcGxlczsKKyAgICBpbnQg b3Blbl9rZXlfc2FtcGxlc19jb3VudDsKKyAgICB1aW50MzJfdCBtaW5fc2FtcGxlX2R1cmF0aW9u OwogCiAgICAgaW50IG5iX2ZyYW1lc19mb3JfZnBzOwogICAgIGludDY0X3QgZHVyYXRpb25fZm9y X2ZwczsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L21vdi5jIGIvbGliYXZmb3JtYXQvbW92LmMK aW5kZXggNmIyMmQ4YzVmOC4uNTczZWU4YmRhMyAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvbW92 LmMKKysrIGIvbGliYXZmb3JtYXQvbW92LmMKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJs aWJhdnV0aWwvZG92aV9tZXRhLmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy9hYzN0YWIuaCIKICNp bmNsdWRlICJsaWJhdmNvZGVjL2ZsYWMuaCIKKyNpbmNsdWRlICJsaWJhdmNvZGVjL2hldmMuaCIK ICNpbmNsdWRlICJsaWJhdmNvZGVjL21wZWdhdWRpb2RlY2hlYWRlci5oIgogI2luY2x1ZGUgImxp YmF2Y29kZWMvbWxwX3BhcnNlLmgiCiAjaW5jbHVkZSAiYXZmb3JtYXQuaCIKQEAgLTM4ODIsNiAr Mzg4Myw2OSBAQCBzdGF0aWMgdm9pZCBtb3ZfZml4X2luZGV4KE1PVkNvbnRleHQgKm1vdiwgQVZT dHJlYW0gKnN0KQogICAgIG1zYy0+Y3VycmVudF9pbmRleCA9IG1zYy0+aW5kZXhfcmFuZ2VzWzBd LnN0YXJ0OwogfQogCitzdGF0aWMgdWludDMyX3QgZ2V0X3NncGRfc3luY19pbmRleChjb25zdCBN T1ZTdHJlYW1Db250ZXh0ICpzYywgaW50IG5hbF91bml0X3R5cGUpCit7CisgICAgZm9yICh1aW50 MzJfdCBpID0gMDsgaSA8IHNjLT5zZ3BkX3N5bmNfY291bnQ7IGkrKykKKyAgICAgICAgaWYgKHNj LT5zZ3BkX3N5bmNbaV0gPT0gSEVWQ19OQUxfQ1JBX05VVCkKKyAgICAgICAgICAgIHJldHVybiBp ICsgMTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBidWlsZF9vcGVuX2dvcF9rZXlf cG9pbnRzKEFWU3RyZWFtICpzdCkKK3sKKyAgICBpbnQgazsKKyAgICBpbnQgc2FtcGxlX2lkID0g MDsKKyAgICB1aW50MzJfdCBjcmFfaW5kZXg7CisgICAgTU9WU3RyZWFtQ29udGV4dCAqc2MgPSBz dC0+cHJpdl9kYXRhOworCisgICAgaWYgKHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgIT0gQVZfQ09E RUNfSURfSEVWQyB8fCAhc2MtPnN5bmNfZ3JvdXBfY291bnQpCisgICAgICAgIHJldHVybiAwOwor CisgICAgLyogQnVpbGQgYW4gdW5yb2xsZWQgaW5kZXggb2YgdGhlIHNhbXBsZXMgKi8KKyAgICBz Yy0+c2FtcGxlX29mZnNldHNfY291bnQgPSAwOworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkg PCBzYy0+Y3R0c19jb3VudDsgaSsrKQorICAgICAgICBzYy0+c2FtcGxlX29mZnNldHNfY291bnQg Kz0gc2MtPmN0dHNfZGF0YVtpXS5jb3VudDsKKyAgICBhdl9mcmVlcCgmc2MtPnNhbXBsZV9vZmZz ZXRzKTsKKyAgICBzYy0+c2FtcGxlX29mZnNldHMgPSBhdl9jYWxsb2Moc2MtPnNhbXBsZV9vZmZz ZXRzX2NvdW50LCBzaXplb2YoKnNjLT5zYW1wbGVfb2Zmc2V0cykpOworICAgIGlmICghc2MtPnNh bXBsZV9vZmZzZXRzKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworICAgIGsgPSAw OworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzYy0+Y3R0c19jb3VudDsgaSsrKQorICAg ICAgICBmb3IgKGludCBqID0gMDsgaiA8IHNjLT5jdHRzX2RhdGFbaV0uY291bnQ7IGorKykKKyAg ICAgICAgICAgICBzYy0+c2FtcGxlX29mZnNldHNbaysrXSA9IHNjLT5jdHRzX2RhdGFbaV0uZHVy YXRpb247CisKKyAgICAvKiBUaGUgZm9sbG93aW5nIEhFVkMgTkFMIHR5cGUgcmV2ZWFsIHRoZSB1 c2Ugb2Ygb3BlbiBHT1Agc3luYyBwb2ludHMKKyAgICAgKiAoVE9ETzogQkxBIHR5cGVzIG1heSBh bHNvIGJlIGNvbmNlcm5lZCkgKi8KKyAgICBjcmFfaW5kZXggPSBnZXRfc2dwZF9zeW5jX2luZGV4 KHNjLCBIRVZDX05BTF9DUkFfTlVUKTsgLyogQ2xlYW4gUmFuZG9tIEFjY2VzcyAqLworICAgIGlm ICghY3JhX2luZGV4KQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8qIEJ1aWxkIGEgbGlzdCBv ZiBvcGVuLUdPUCBrZXkgc2FtcGxlcyAqLworICAgIHNjLT5vcGVuX2tleV9zYW1wbGVzX2NvdW50 ID0gMDsKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc2MtPnN5bmNfZ3JvdXBfY291bnQ7 IGkrKykKKyAgICAgICAgaWYgKHNjLT5zeW5jX2dyb3VwW2ldLmluZGV4ID09IGNyYV9pbmRleCkK KyAgICAgICAgICAgIHNjLT5vcGVuX2tleV9zYW1wbGVzX2NvdW50ICs9IHNjLT5zeW5jX2dyb3Vw W2ldLmNvdW50OworICAgIGF2X2ZyZWVwKCZzYy0+b3Blbl9rZXlfc2FtcGxlcyk7CisgICAgc2Mt Pm9wZW5fa2V5X3NhbXBsZXMgPSBhdl9jYWxsb2Moc2MtPm9wZW5fa2V5X3NhbXBsZXNfY291bnQs IHNpemVvZigqc2MtPm9wZW5fa2V5X3NhbXBsZXMpKTsKKyAgICBpZiAoIXNjLT5vcGVuX2tleV9z YW1wbGVzKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworICAgIGsgPSAwOworICAg IGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzYy0+c3luY19ncm91cF9jb3VudDsgaSsrKSB7Cisg ICAgICAgIGNvbnN0IE1PVlNiZ3AgKnNnID0gJnNjLT5zeW5jX2dyb3VwW2ldOworICAgICAgICBp ZiAoc2ctPmluZGV4ID09IGNyYV9pbmRleCkKKyAgICAgICAgICAgIGZvciAodWludDMyX3QgaiA9 IDA7IGogPCBzZy0+Y291bnQ7IGorKykKKyAgICAgICAgICAgICAgICBzYy0+b3Blbl9rZXlfc2Ft cGxlc1trKytdID0gc2FtcGxlX2lkOworICAgICAgICBzYW1wbGVfaWQgKz0gc2ctPmNvdW50Owor ICAgIH0KKworICAgIC8qIElkZW50aWZ5IHRoZSBtaW5pbWFsIHRpbWUgc3RlcCBiZXR3ZWVuIHNh bXBsZXMgKi8KKyAgICBzYy0+bWluX3NhbXBsZV9kdXJhdGlvbiA9IFVJTlRfTUFYOworICAgIGZv ciAodWludDMyX3QgaSA9IDA7IGkgPCBzYy0+c3R0c19jb3VudDsgaSsrKQorICAgICAgICBzYy0+ bWluX3NhbXBsZV9kdXJhdGlvbiA9IEZGTUlOKHNjLT5taW5fc2FtcGxlX2R1cmF0aW9uLCBzYy0+ c3R0c19kYXRhW2ldLmR1cmF0aW9uKTsKKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgdm9p ZCBtb3ZfYnVpbGRfaW5kZXgoTU9WQ29udGV4dCAqbW92LCBBVlN0cmVhbSAqc3QpCiB7CiAgICAg TU9WU3RyZWFtQ29udGV4dCAqc2MgPSBzdC0+cHJpdl9kYXRhOwpAQCAtMzg5Nyw2ICszOTYxLDEw IEBAIHN0YXRpYyB2b2lkIG1vdl9idWlsZF9pbmRleChNT1ZDb250ZXh0ICptb3YsIEFWU3RyZWFt ICpzdCkKICAgICBNT1ZDdHRzICpjdHRzX2RhdGFfb2xkID0gc2MtPmN0dHNfZGF0YTsKICAgICB1 bnNpZ25lZCBpbnQgY3R0c19jb3VudF9vbGQgPSBzYy0+Y3R0c19jb3VudDsKIAorICAgIGludCBy ZXQgPSBidWlsZF9vcGVuX2dvcF9rZXlfcG9pbnRzKHN0KTsKKyAgICBpZiAocmV0IDwgMCkKKyAg ICAgICAgcmV0dXJuOworCiAgICAgaWYgKHNjLT5lbHN0X2NvdW50KSB7CiAgICAgICAgIGludCBp LCBlZGl0X3N0YXJ0X2luZGV4ID0gMCwgbXVsdGlwbGVfZWRpdHMgPSAwOwogICAgICAgICBpbnQ2 NF90IGVtcHR5X2R1cmF0aW9uID0gMDsgLy8gZW1wdHkgZHVyYXRpb24gb2YgdGhlIGZpcnN0IGVk aXQgbGlzdCBlbnRyeQpAQCAtNzc3Miw2ICs3ODQwLDggQEAgc3RhdGljIGludCBtb3ZfcmVhZF9j bG9zZShBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgIGF2X2ZyZWVwKCZzYy0+cmFwX2dyb3Vw KTsKICAgICAgICAgYXZfZnJlZXAoJnNjLT5zeW5jX2dyb3VwKTsKICAgICAgICAgYXZfZnJlZXAo JnNjLT5zZ3BkX3N5bmMpOworICAgICAgICBhdl9mcmVlcCgmc2MtPnNhbXBsZV9vZmZzZXRzKTsK KyAgICAgICAgYXZfZnJlZXAoJnNjLT5vcGVuX2tleV9zYW1wbGVzKTsKICAgICAgICAgYXZfZnJl ZXAoJnNjLT5kaXNwbGF5X21hdHJpeCk7CiAgICAgICAgIGF2X2ZyZWVwKCZzYy0+aW5kZXhfcmFu Z2VzKTsKIApAQCAtODQ0NCw2ICs4NTE0LDQ5IEBAIHN0YXRpYyBpbnQgbW92X3NlZWtfZnJhZ21l bnQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlN0cmVhbSAqc3QsIGludDY0X3QgdGltZXN0YW1wCiAg ICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgaXNfb3Blbl9rZXlfc2FtcGxlKGNvbnN0IE1P VlN0cmVhbUNvbnRleHQgKnNjLCBpbnQgc2FtcGxlKQoreworICAgIC8vIFRPRE86IGEgYmlzZWN0 IHNlYXJjaCB3b3VsZCBzY2FsZSBtdWNoIGJldHRlcgorICAgIGZvciAoaW50IGkgPSAwOyBpIDwg c2MtPm9wZW5fa2V5X3NhbXBsZXNfY291bnQ7IGkrKykgeworICAgICAgICBjb25zdCBpbnQgb2tz ID0gc2MtPm9wZW5fa2V5X3NhbXBsZXNbaV07CisgICAgICAgIGlmIChva3MgPT0gc2FtcGxlKQor ICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGlmIChva3MgPiBzYW1wbGUpIC8qIGxpc3Qg aXMgbW9ub3RpY2FsbHkgaW5jcmVhc2luZyBzbyB3ZSBjYW4gc3RvcCBlYXJseSAqLworICAgICAg ICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisvKgorICogU29tZSBrZXkg c2FtcGxlIG1heSBiZSBrZXkgZnJhbWVzIGJ1dCBub3QgSURSIGZyYW1lcywgc28gYSByYW5kb20g YWNjZXNzIHRvCisgKiB0aGVtIG1heSBub3QgYmUgYWxsb3dlZC4KKyAqLworc3RhdGljIGludCBj YW5fc2Vla190b19rZXlfc2FtcGxlKEFWU3RyZWFtICpzdCwgaW50IHNhbXBsZSwgaW50NjRfdCBy ZXF1ZXN0ZWRfcHRzKQoreworICAgIE1PVlN0cmVhbUNvbnRleHQgKnNjID0gc3QtPnByaXZfZGF0 YTsKKyAgICBGRlN0cmVhbSAqY29uc3Qgc3RpID0gZmZzdHJlYW0oc3QpOworICAgIGludDY0X3Qg a2V5X3NhbXBsZV9kdHMsIGtleV9zYW1wbGVfcHRzOworCisgICAgaWYgKHN0LT5jb2RlY3Bhci0+ Y29kZWNfaWQgIT0gQVZfQ09ERUNfSURfSEVWQykKKyAgICAgICAgcmV0dXJuIDE7CisKKyAgICBp ZiAoc2FtcGxlID49IHNjLT5zYW1wbGVfb2Zmc2V0c19jb3VudCkKKyAgICAgICAgcmV0dXJuIDE7 CisKKyAgICBrZXlfc2FtcGxlX2R0cyA9IHN0aS0+aW5kZXhfZW50cmllc1tzYW1wbGVdLnRpbWVz dGFtcDsKKyAgICBrZXlfc2FtcGxlX3B0cyA9IGtleV9zYW1wbGVfZHRzICsgc2MtPnNhbXBsZV9v ZmZzZXRzW3NhbXBsZV0gKyBzYy0+ZHRzX3NoaWZ0OworCisgICAgLyoKKyAgICAgKiBJZiB0aGUg c2FtcGxlIG5lZWRzIHRvIGJlIHByZXNlbnRlZCBiZWZvcmUgYW4gb3BlbiBrZXkgc2FtcGxlLCB0 aGV5IG1heQorICAgICAqIG5vdCBiZSBkZWNvZGFibGUgcHJvcGVybHksIGV2ZW4gdGhvdWdoIHRo ZXkgY29tZSBhZnRlciBpbiBkZWNvZGluZworICAgICAqIG9yZGVyLgorICAgICAqLworICAgIGlm IChpc19vcGVuX2tleV9zYW1wbGUoc2MsIHNhbXBsZSkgJiYga2V5X3NhbXBsZV9wdHMgPiByZXF1 ZXN0ZWRfcHRzKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiAxOworfQorCiBzdGF0 aWMgaW50IG1vdl9zZWVrX3N0cmVhbShBVkZvcm1hdENvbnRleHQgKnMsIEFWU3RyZWFtICpzdCwg aW50NjRfdCB0aW1lc3RhbXAsIGludCBmbGFncykKIHsKICAgICBNT1ZTdHJlYW1Db250ZXh0ICpz YyA9IHN0LT5wcml2X2RhdGE7CkBAIC04NDU5LDEyICs4NTcyLDE5IEBAIHN0YXRpYyBpbnQgbW92 X3NlZWtfc3RyZWFtKEFWRm9ybWF0Q29udGV4dCAqcywgQVZTdHJlYW0gKnN0LCBpbnQ2NF90IHRp bWVzdGFtcCwKICAgICBpZiAocmV0IDwgMCkKICAgICAgICAgcmV0dXJuIHJldDsKIAorICAgIGZv ciAoOzspIHsKICAgICBzYW1wbGUgPSBhdl9pbmRleF9zZWFyY2hfdGltZXN0YW1wKHN0LCB0aW1l c3RhbXAsIGZsYWdzKTsKICAgICBhdl9sb2cocywgQVZfTE9HX1RSQUNFLCAic3RyZWFtICVkLCB0 aW1lc3RhbXAgJSJQUklkNjQiLCBzYW1wbGUgJWRcbiIsIHN0LT5pbmRleCwgdGltZXN0YW1wLCBz YW1wbGUpOwogICAgIGlmIChzYW1wbGUgPCAwICYmIHN0aS0+bmJfaW5kZXhfZW50cmllcyAmJiB0 aW1lc3RhbXAgPCBzdGktPmluZGV4X2VudHJpZXNbMF0udGltZXN0YW1wKQogICAgICAgICBzYW1w bGUgPSAwOwogICAgIGlmIChzYW1wbGUgPCAwKSAvKiBub3Qgc3VyZSB3aGF0IHRvIGRvICovCiAg ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworCisgICAgICAgIGlmICghc2FtcGxl IHx8IGNhbl9zZWVrX3RvX2tleV9zYW1wbGUoc3QsIHNhbXBsZSwgdGltZXN0YW1wKSkKKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICB0aW1lc3RhbXAgLT0gRkZNQVgoc2MtPm1pbl9zYW1wbGVf ZHVyYXRpb24sIDEpOworICAgIH0KKwogICAgIG1vdl9jdXJyZW50X3NhbXBsZV9zZXQoc2MsIHNh bXBsZSk7CiAgICAgYXZfbG9nKHMsIEFWX0xPR19UUkFDRSwgInN0cmVhbSAlZCwgZm91bmQgc2Ft cGxlICVkXG4iLCBzdC0+aW5kZXgsIHNjLT5jdXJyZW50X3NhbXBsZSk7CiAgICAgLyogYWRqdXN0 IGN0dHMgaW5kZXggKi8KLS0gCjIuMzUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxA ZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2 ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2 ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=