From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 59B0D4B80F for ; Thu, 26 Jun 2025 00:42:49 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id E52A568DC9F; Thu, 26 Jun 2025 03:42:44 +0300 (EEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2053.outbound.protection.outlook.com [40.92.89.53]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 1C0E268DC21 for ; Thu, 26 Jun 2025 03:42:38 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vT9bpRN4z3O28c3IT+koTylDDl1/ZFBvcySlTQPg8c4aXLAqxZ7WVsrry3Lcvor8IZtzFSBRyWmIs6sfHfquxqaHFeBUHPzeU12zREJ0Wkkzdf5daSLozmyt0nfA1wnNiwnp4XoGFCuv44HvIR5gBhl1nBhPz+TQ6XX/7jrOmu+bi6i5yshweNjoqoUz1I8pMzVNk1fTOUD8wZPR0NkcoswdzjNMOQIzB7mQczJjecQ0pQp0VbnZ/j9ymNW2mLvtuvrjQPfi9htDY/YXE2/Er+Qos5pj8KAh5vvcOwjFyKahlrxWhOy0XVnJ9R0NsdODbPpczzQDGUsjgAqSOkATcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=83/QvyvaAVm1/flrTuWbgCWs9Sbfd5+qa123Ri5qfo0=; b=s5ng0Dp9/Dh44ETxFdtFnXOw73yxLxRh+hZAoZkng52NApbdomZ7zT2zUpKZMEW6RukTxKyxK4/f2j6C5l22qdm+rAxXS7Rxi2TsGPb2xa8z1HMJwjslFDWgXrC5hhaaWzmioPRKXSJY40QpF5tAcX6f3cR2DHnBbM0qthAYh7u5zWA1lMPVgqaq71jsiDt+8c53tpJDa1KXxS8qmyoPDyMWfZFOkL/60K8HNhWNPGJPTg7+BAwHnIY8LL99jRKv3Ru81UBpk2/S5voFmnQjSBgOTKj5EDXHOa576CfeHxXZkzPmmPCAG+4EhUDUhS5xpc/TPX3+XRkFBm7x01RBJA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=83/QvyvaAVm1/flrTuWbgCWs9Sbfd5+qa123Ri5qfo0=; b=KbVzRJu8dRZl62IMj7G6/lvueAtpQ42NPqEHVMtOQgLSluMPbFuqJfr+2NY4cDY8vnDaCN6Uhb1ovQ6VY/ShHHU+hNokqHCQSdIHKZ6fun30b7aCki47o09M1vAC6peoShnQCVE9Nnp5jqn5RNAP1NA/XsijdfJW96CHVWthuTbLHLOwGSA/ys/jCrn4IZPfb7zMpRAK8n/air2L3TG7DJBghYjA62Bmhe7du/suwD5Kn3yHZKyu0a/WAdhxaUWITOKxqGR6l2lF+6ch9/EN0YBat1641UTXnMbNV/lEOIWJGo4gglGxVYEHk6CTWljj/yxTdoT1nL5aMF27wgYa9w== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU7PPFEB0D49F29.EURP250.PROD.OUTLOOK.COM (2603:10a6:18:3::b67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.18; Thu, 26 Jun 2025 00:42:35 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4bfc:40d7:f620:ee41]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4bfc:40d7:f620:ee41%2]) with mapi id 15.20.8857.026; Thu, 26 Jun 2025 00:42:35 +0000 Message-ID: Date: Thu, 26 Jun 2025 02:42:33 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20250624061959.23577-1-roslypav@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20250624061959.23577-1-roslypav@gmail.com> X-ClientProxiedBy: FR2P281CA0041.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:92::12) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <0c5d8da5-c36a-4aef-98e9-80eafe2bba69@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU7PPFEB0D49F29:EE_ X-MS-Office365-Filtering-Correlation-Id: ff5cb64d-50c2-45ed-bdd9-08ddb44a578c X-MS-Exchange-SLBlob-MailProps: AZnQBsB9Xmp/7aeJmYG0A5MEUGr3+KVDZquG0MwCEb4k5ob+/5JWQJHdr+ctimEo8lwDFwAaC8kPouSXdpKSquJA+QPqlG8Lp9MtPQVOGh8aZ3gdWGtr0fvWrchql6Pyiu/m9En1xtodR7Tsxud3Eb2OZJC91t0XaJGaWC33PjPsghGnvul/5XcIVGLhbAUuTGWDEgXjXFUW7AFJPbkNCLPVx/3mxrVRJ8Z+z/3fbyKGSFbM3o7mb6AvHQYAPb+o/LNVSShMPjdD5os6SMaGKKjP9J//ie9PI/KznoalmjazlEgIpnWRxwwkjye9/GGZbiYETeh8GBzyrSx930XOphp6betcgD9dIXu7bf0oP+p7yVARC3XqaMTQb0rEvfoEcAYQ4LirIHSFZ//pzAVXEKL8B7IFOB/JhL1CEP93bWqXNGVKMzQSWUzxAUbPX8q4PHN8ira2uySWkoEf8CWwgGmSkpD1pbHBO4VOwHkG5pqPou4QxCIuWDgCuz2/XG1KGXVxHI5IpTzRM09vRBSw9Q4kPMdGA98KMV+FhqwGJNMejIgrNUTzkLG+GIFDPIsTD+Ms+T1TeV0spYkEetNsaDR/n1MygyJMEuc3OdDaeQnc+jc6ldHN+G+G/K+2OHEUoLAVHyfr7uJkCmQkgJyeH0m57a2AFbtqxY7yN8LUM1imJXu3zOthczFmYGQscFUf4GN2l09jrhrisdrGt1e5YF1nPTWd57C/12jNPX17/0YZVZy3K0Il97s6/XbOLJ//hzMsRxdCjXw= X-Microsoft-Antispam: BCL:0; ARA:14566002|7092599006|15080799009|41001999006|8060799009|6090799003|19110799006|5072599009|461199028|3412199025|440099028|40105399003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VnN3QVhPWjRCRXBmT1lDOTJ3aVJLUnBPVkk4V0t2cnBraFA2SkNyc0R4ZUJt?= =?utf-8?B?VnVtYUhEVENkTjdvTjgzQkI0cUlGUU1vb3pXV0dZaURmcHVOM1RuemRoMDZX?= =?utf-8?B?M2VwbURqZ0hueE5xelBmSW03UmdOb2tPaXF0MHpkbmErVFk5RXg2bFBhbGxI?= =?utf-8?B?d1g5amxRd1Uzd0o1S243bmR2OEs0aWdYQmphMmdOK2p4dG9BaEN5RHptOUZi?= =?utf-8?B?eXhrTlNRZkdGanpnQnE4d01pbnkrcnlmcXh6V0RyV01MdWtFSkNPTGdtUnNU?= =?utf-8?B?VmlETHo1RWtOeml5cWJINWVVeHIxSTUyK0prSUYwU0VGS1V0dkJVZlRzQnZB?= =?utf-8?B?ZmVqQ3BLNFNjUUxaSHJtRWJaUzhFVlNreGpUS0ZZVUQ2Y2pBYjNXYlphTDR6?= =?utf-8?B?dHB1V1lLWlgvbVZUVFVIWWVCNGwvbW1rRVloUHF5WlJha1FZVFdLcVN0S3hz?= =?utf-8?B?Vk9jTHJtS2Q0dG8zVVZQNEt5VDJvQnlGV1VseEhKYmR5UlVhQWIxc2JaQk5X?= =?utf-8?B?amlXRDlYYUVodndVb2JpQ2JuaTlEL0pVd1NZODdVUzRWOWFOSWxYYTUrTDZE?= =?utf-8?B?dGphQlVGRndJZkxlMEQwYnZOelFuTm9CVTJUWGg0V0ZHbFVhNU9WMHhybW1B?= =?utf-8?B?bmdYaEUvWmZoOU5QbUhqcW84UTczbGYwc3dacGkxWjJTclJhSnEvOTcvVnV0?= =?utf-8?B?aUZKR2JQTGVlWFF6M3k1VElZUC9QL0dlYXFSRDVVZ1J6Z28vZ2dhOU03RUJH?= =?utf-8?B?MnBoWER5RzVGRmROcTZ1SnNyRjJxMFU1MXdHcWZvcVlGODUvYUVVeGlaUFoz?= =?utf-8?B?MVdKUFBXbzRDWnhuRnNuclk2clY3ZWJUT0VqakM3Uno4VnlENjFmNm1ab2Fl?= =?utf-8?B?N1l3NEdCd2ZTQ3NrOWZRNW1TMFFxYzhRTWU4anpDOENqSGpPMTM1bEUzWm1l?= =?utf-8?B?R3d1RCtVUGJHUzFFRmxYdklNbFNkemhLVHNwa25DR3FsdmtYUEZqTnNOT2Rs?= =?utf-8?B?dktseHBRZTNLVU1NZUlaMTlLZUJYVHhwWlhadVBienBqN24zcllOQks3NjNO?= =?utf-8?B?T200WUV4QnBaTWY0UjlGTVVwcERSclNTQUU4VFViZFpBRFFLQzdBeDZBKzBR?= =?utf-8?B?bnlVZ1JsTTFBS1ZYQStyd1F5WFJxcmJXN1dMaUg2c3hxUTFqbUhsTkQyNGJt?= =?utf-8?B?MVhBYWR0MmlyTGFDUVBXL2s2Q1VVZmRoSlJpYVppNFhwbmxnZU5McUVPcE1C?= =?utf-8?B?OWlRcEdjbGJ3S0NEQ3lRZlh1UXpGdStqN2ZzN2VjNHE1WkpkbWtyUGpjbmti?= =?utf-8?B?a0hsTkVoMHArTWtjaHhyNWZSRkp5SXMwalVsdW0xd2piZ285RkZiK1Y0dkg1?= =?utf-8?B?NDVLd0Q4Z09XOVp1ZGw2K0lBaVZPb0JOTDIyTC9mV1phZDZtVHJsbnUyUWRz?= =?utf-8?B?a2JsYldZS3k3T2N6bU02VHJRZy9ocnFJbExQQlQya21jNjJqTEQwT2ROOEI3?= =?utf-8?B?aEExTmlzZVo5d1h3eE02dG1Lb0Rqc2tUcldDakZJM28zSG50bGhmOUIxSHdX?= =?utf-8?B?V1VUNkdLWnlDR3JWS3VLTFYrQm5tWGtnZ2JoZ0x6Y0cxNUNOdExqMVVjU1R6?= =?utf-8?B?UFVqMUdvY0hmQ1JtSzFUQWJUT2ljL1E9PQ==?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y3JSRW5UdjBGbnQrcGxFUUFiWGp1dVVJR0dlL3gvL3Jld3UxR3dOTFRaSVNi?= =?utf-8?B?OUtLL2YyVGRycndWK2xKY2JqTUJ0MVNRMUJodXVwem5pWkU5ZEhIeW9QYllJ?= =?utf-8?B?eG02Q3lQallWSWdnNFhobUdoTVkzNmlhNFFOU21aTk9rWVZzMEdTMHk0THFw?= =?utf-8?B?OGhWY2tNMHlQT2N0bFVhazBjeUFrVGxmZjhsRDh6a1lVTUtqdnlFM21pUXJ4?= =?utf-8?B?T1p6UWlnOVNYTVVWU0FZYk56TU5pZWJGVEM2NUNuR0hhV0NibVF2U3VoalVt?= =?utf-8?B?Sm1qOXZnTFI2YjUzZFM4M1p3UkdBT2svbjFiZ0Z4UVo5YlJ2bEp3MXU2UmQz?= =?utf-8?B?OCtzb0gzVy9TV1ZVR2RBdWRpK0RJSWVuOXlnWE16Wnl3cW1qaTYwcVR1a2Vp?= =?utf-8?B?TXFaMWFCZ090cUNJVksxSTdVMHVkeGw3d0NoNzh5NmpMQ1hUUjQxYmdyZ1Y0?= =?utf-8?B?czdMUllXS2Z6bHJra0xveTdNb3BpWG1uMW9Fd0VnVzJ5K2ZFbzE4NTRJS1J2?= =?utf-8?B?eTZrR1NtVkJ3TC9RbVYwVy9hWit2dFo1YmVSb3UvOVZGVEJTclIrK25ENkdr?= =?utf-8?B?d3FTeXZ0V3RaaFd5amsxb1UxM2VDMXdpRU5oQm5rck1TSmYzVk1MQmU5MmNa?= =?utf-8?B?K1VUQ2JONHcwZ0JNbnc1N3lJa2wrSEJySGFoQ2daYXgvcnpSQ0l0UCtnQnJv?= =?utf-8?B?aGRWYVpRcHMvTmVvamFSeUhrelcweU1OUlUvU3lYVUdxcWE3eVBXdHZicW1R?= =?utf-8?B?L205UDhtSHRNZEZjblpvZmhTd2JuWXBPY05uR0tCdHkwQmN6bklOUDlKUUNE?= =?utf-8?B?NFFQMk1MWGlGQjc4L0svT2NGeEdqVkorSzFYWG1VeG53MDZndzJzUFcrSEpH?= =?utf-8?B?UkNMUG04Q0NSdFJsSHdXeVU5VzFaZG1NYTRhMktzSlY2elV5Q2NjQWp4UDR4?= =?utf-8?B?aU5Ua0NmdnhmT1F4dWdYUnYyVEc0dTE3TUlqTERYVFplTWRCWmdGYkpjRTAy?= =?utf-8?B?RnhJL2g1K3F3cUhSaXloSmN6dlR4ZlV3OStzUUNNcjBZb0RlR3JtTFlXOHc3?= =?utf-8?B?d3N0YnZtby9vSWIyMTY3UUE4RUp0QTJxaHB5V3NoV1VlU1ZjTVFlREhiTnlx?= =?utf-8?B?bkhDSXNra0hMTFo3enRmRk9vK3lQQUw5T2dXNDJzUWE0b2RwM0NtU0ZMTXJI?= =?utf-8?B?VVZkWmphd0JIZW5pa3Q5aTNRd2VQMHpYSEtQOGhuU0FkSTNWeVJhWnR6VlBs?= =?utf-8?B?UlU2czdaK0ZIQlVaMjhuMTVEWDUxbnBqZ1Z3K04vS1hTZ1VaZ3UyZUZpTHlF?= =?utf-8?B?c3cxV0ozbENZd2NERkN3L2kydUhTRjBmV3R6SmdTRkVTcFpuSldMSmxsbmVt?= =?utf-8?B?SEVaU1Y0b1RXaEdPUmd2NG9tQmt5dmQwSWhhN2NscVZBQWNXTTVTVi9lcXgv?= =?utf-8?B?bHJiTkg2VEZSU3loSU5LUGI5K2Ruek81ekFjVkxNUUQrNzFLSzVFNFVwcE5B?= =?utf-8?B?TzZodXVNbmhyOHpZOGZnRHBBTk9Jc3I3bVV1Z1BLdWRyNEJ1YlhBeC9MdWsw?= =?utf-8?B?TjZCeEhZZG1VZXZJZmE5b2Y0TUFOSU11UTNHcmpiNGVvbVRyVmg2VzY2SmZr?= =?utf-8?B?a1ViQVFMS280ZkRkcWYyR21lZWI1cm96TWNHSkR3SU1kelVST1luQzRmWW1j?= =?utf-8?B?QXJ1SnFjYS9kYjVRZVRuZHZWbzNxV2hCWWNHMnJ2ZU5CM1R4eW5KaXkvRkRu?= =?utf-8?Q?FAVQ7QB+1xMyoGfrpPSjkupUBDY5tu5M7zHm+y3?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff5cb64d-50c2-45ed-bdd9-08ddb44a578c X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jun 2025 00:42:35.3477 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU7PPFEB0D49F29 Subject: Re: [FFmpeg-devel] [PATCH] libavformat/usmdec: add support for HCA stream decryption 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Pavel Roslyy: > --- > libavformat/usmdec.c | 53 +++++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 50 insertions(+), 3 deletions(-) > > diff --git a/libavformat/usmdec.c b/libavformat/usmdec.c > index fd28e935ce..c5f2e208df 100644 > --- a/libavformat/usmdec.c > +++ b/libavformat/usmdec.c > @@ -19,6 +19,7 @@ > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA > */ > > +#include "libavutil/opt.h" > #include "libavutil/intfloat.h" > #include "libavutil/intreadwrite.h" > #include "libavutil/mem.h" > @@ -47,10 +48,14 @@ typedef struct USMChannel { > } USMChannel; > > typedef struct USMDemuxContext { > + const AVClass *class; > USMChannel ch[4][256]; > int nb_channels[4]; > uint8_t *header; > unsigned header_size; > + int64_t hca_keyl; > + int64_t hca_keyh; > + int hca_subkey; > } USMDemuxContext; > > static int usm_probe(const AVProbeData *p) > @@ -314,6 +319,7 @@ static int64_t parse_chunk(AVFormatContext *s, AVIOContext *pb, > par->sample_rate = ch->rate.num; > par->ch_layout.nb_channels = ch->nb_channels; > st->duration = ch->duration; > + get_extradata = 1; > break; > } > > @@ -323,7 +329,6 @@ static int64_t parse_chunk(AVFormatContext *s, AVIOContext *pb, > avpriv_set_pts_info(st, 64, ch->rate.den, ch->rate.num); > > ffstream(st)->need_parsing = AVSTREAM_PARSE_TIMESTAMPS; > - get_extradata = ch->codec_id == AV_CODEC_ID_ADPCM_ADX; > ch->extradata_pos = avio_tell(pb); > } > > @@ -333,10 +338,29 @@ static int64_t parse_chunk(AVFormatContext *s, AVIOContext *pb, > > pkt_size = chunk_size - (ret - chunk_start) - padding_size; > if (get_extradata) { > - if ((ret = ff_get_extradata(s, st->codecpar, pb, pkt_size)) < 0) > + AVCodecParameters *par; > + par = st->codecpar; > + > + // HCA decoder expects last 10 bytes to contain decryption keys > + int key_buf = ch->codec_id == AV_CODEC_ID_HCA ? 10 : 0; > + ret = ff_alloc_extradata(par, pkt_size + key_buf); > + if (ret < 0) > return ret; > + > + ret = avio_read(pb, par->extradata, pkt_size); > + if (ret < pkt_size) { > + av_freep(&par->extradata); > + par->extradata_size = 0; > + return AVERROR(EIO); > + } > + > + if (ch->codec_id == AV_CODEC_ID_HCA) { > + AV_WB32(par->extradata + par->extradata_size - 10, usm->hca_keyh); > + AV_WB32(par->extradata + par->extradata_size - 6, usm->hca_keyl); > + AV_WB16(par->extradata + par->extradata_size - 2, usm->hca_subkey); > + } > } else { > - if (ret == ch->extradata_pos && ch->codec_id == AV_CODEC_ID_ADPCM_ADX) { > + if (ret == ch->extradata_pos && ch->type == AVMEDIA_TYPE_AUDIO) { > avio_skip(pb, pkt_size); > ret = 0; > } else { > @@ -416,10 +440,33 @@ static int usm_read_close(AVFormatContext *s) > return 0; > } > > +#define OFFSET(x) offsetof(USMDemuxContext, x) > +#define FLAGS AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_DECODING_PARAM > +static const AVOption usm_options[] = { > + { "hca_lowkey", > + "Low key used for handling CRI HCA streams", OFFSET(hca_keyl), > + AV_OPT_TYPE_INT64, {.i64=0}, .min = 0, .max = UINT32_MAX, .flags = FLAGS, }, > + { "hca_highkey", > + "High key used for handling CRI HCA streams", OFFSET(hca_keyh), > + AV_OPT_TYPE_INT64, {.i64=0}, .min = 0, .max = UINT32_MAX, .flags = FLAGS, }, Why are these two options instead of one? The HCA decoder also treats it as 64bit value. > + { "hca_subkey", > + "Subkey used for handling CRI HCA streams", OFFSET(hca_subkey), > + AV_OPT_TYPE_INT, {.i64=0}, .min = 0, .max = UINT16_MAX, .flags = FLAGS }, > + { NULL }, > +}; > + > +static const AVClass usm_class = { > + .class_name = "usm", > + .item_name = av_default_item_name, > + .option = usm_options, > + .version = LIBAVUTIL_VERSION_INT, > +}; > + > const FFInputFormat ff_usm_demuxer = { > .p.name = "usm", > .p.long_name = NULL_IF_CONFIG_SMALL("CRI USM"), > .p.extensions = "usm", > + .p.priv_class = &usm_class, > .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOBINSEARCH, > .priv_data_size = sizeof(USMDemuxContext), > .read_probe = usm_probe, _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".