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 D3B904932D for ; Sat, 9 Mar 2024 12:06:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 63CE168CAFD; Sat, 9 Mar 2024 14:06:42 +0200 (EET) Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02olkn2046.outbound.protection.outlook.com [40.92.48.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3AF7C68C607 for ; Sat, 9 Mar 2024 14:06:36 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MkJJB8mfoCKFOIxEDFwcRPivB5CAauPq6KDCk8QO1pYEtEHjou7GMCNDXfgaOKo8hK2R1pDrmJ6kFhSLg5s9UrAKqomOv2kbwCLo05pM2MgtCLILv7/y25XvPUz6YCr5nWy1o1eVq5jvbg4HU0RewF9CnUr0PpTLvB22M4eNDRULURJ8jwZphfAtl5paCSh07bmB3PuaGJF/fu16gJ+/LqKpQhlz96E6bXI6cp92l50pdoP/KU5vTfZ1ykMBrVsjKBBp7uiBupDWa3hrsfRgEcfebvEQcVfBi9xPgJTP7Rc1l0qpWVree6iDk7oMQl+4N772syPco9vpCe6BfrL/wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Cb5OOVHLwZTyRlVFf9K/SJs8Rn2QBUS9e5sZhKCgB7k=; b=cUJsHtPBaj1kZVvwrPqHMd1+U/RZcg1VWZEv4V7Tsh0kWmIS/eESnn+x+AyqsMbFdBRQWUKUyz/bJYAFMzwqvmLunRgWWimTP2IciG7qKlAnVl7/xMnHA/3ozM6dNuKBoidpc1xbqfWyjIFveGQGRAyjGUcMet4c6GZ7eG9hrQ1sk7jmoxSS7h283VP4GjIH5KLtSTPNcKECjhPHD7HteJ/lSDZXLORa09/OJRzoMmVdt6ISiudSnt+ui1Qdu7lvpWTkNxTzS+yD+3kXqLhf21VVMQBRSHHb/jG6J6erpqxPIzrn/vEsn4hmd1ndLJWGvCqKGyp5WO5IZ5ffbCJUrA== 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=Cb5OOVHLwZTyRlVFf9K/SJs8Rn2QBUS9e5sZhKCgB7k=; b=VYMdexHfl1jOaJAAjLxMN8tTFe94+aLeWCnc3C2E+1jRtjmbnXdtORjxrmFWtV68zFB8qKxdADzMA8wQQJLabYM2PPs3QFh4RfT8S2JvarLkuud/NKpTo6qG5lRS8nQKwBg/BdZkGOb6Og00ewV+wBlkc/ZUdwY+qjSL0HAiWF1ggc/F+J5APigEzYGSlh1ux9dUDefhi+IArtI2xDFNNLBZzGUSHyoZskM7iP3uWpgVFauidFv7wM3qgm0ntioZrpuGJjORGf2RycePcboA/G89Qt97N8UN8TxpAkyVBdn9EIbjAEnIdv0KxFrWyhYOad7Ed+qXZDdq8R9sBNGQ/A== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0093.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:238::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.32; Sat, 9 Mar 2024 12:06:34 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::228d:8c6f:ed10:82eb]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::228d:8c6f:ed10:82eb%7]) with mapi id 15.20.7362.024; Sat, 9 Mar 2024 12:06:34 +0000 Message-ID: Date: Sat, 9 Mar 2024 13:06:32 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [oy2724MWRB6aBTO9BBFNNyT51cq3j2VS3MgrmFe1pHU=] X-ClientProxiedBy: ZR0P278CA0201.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:6a::14) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <06991b43-9ba5-4c0a-b186-a6d2ae2dcc4f@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0093:EE_ X-MS-Office365-Filtering-Correlation-Id: e2d3a95a-ef91-4105-b09f-08dc40315d60 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AiV8Ru6Xw0XqEptaApZ89nTf/R5BAjfEds3TAaHjplu0ACcQy8JPP8vetf7/nGrlKqiyCwBRpMqdkrw8rRr+sxXe9QknA2BWziX+JcSG4zTE356lQYuPtH8J3jzQ0VBiM+NjCOi79jqWiCD7E3yQWvtsopwmua3wt3c/wAWB78oXjWdyye6jOmG/czBPHlI5vtEVUe3AXVYKF4prmunU8aQHCeVJTYI69fCcjFGyn37vQ+xXNbl3U6YD43qdtqhg7jvdMNh9Gmb4CihHl6ynLmc/Mf75CnUfWA7VRETeFH4tqq9KUE02mn7fgB1ijfvyyVPFb/6nmoiMF2yWA2bWwCdm0jp8Q8po1lBmwLjUtQt+Q1vHRQo61Rp9lPzjhbvrzKxItX+wEiwIfkvidbu6xVESIWUzjcXg5rv7zJNTujqLR6g9tQzF5E66ZRLq8LuYij+H20V7LYVP7zrTKQ1rJei4Z2RKBB/4NHJQvVT0tC7vEN45vP80H6c/4V9IPHrQaqGS4fx9BnHX0RVXMqSb7TFrktDQo9hQYoT8RjuIiDJ20bjMHnCAltVxU0H96PA7 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bUhMQ2lmdWxDRGszRGM1T3gvOTNNbDhUcmpIdW5aNHkwT2k3SUJUQTdSU2lV?= =?utf-8?B?MGNMRWNEMUN2cldSaXJUbzNFVUNyQXhwV1h3Mzd5V2pXaWJ1UjJOekkyMnVt?= =?utf-8?B?VHRBZ1Y0VEQwd1lpK1J2eFg5R2dkaERCVUliVkxSMkVtWG9ZWjR4K3hEdnc0?= =?utf-8?B?WWVtTzV4bUpuTUZiWHo4eFpYbC9rbWtBc013eGRDeEFCOGlzMlowL3hkL2J2?= =?utf-8?B?Mk9rOGVXbVY1YlpXMnlkWlFQWXg5Qmx2SE5ZZlgzSmxZYlJWaUVpbWRRUVBV?= =?utf-8?B?Znl4TG03UDVrWnNYVFRZYWlEb1VLZEM4bE1sUVN0a1R5RjlLNFFiU1NJaElO?= =?utf-8?B?VGthNFRZbk8xM3hlZDU2TTRDZnhVcG1OcFJPZ0lvdUtVWGtnZTdVQVUrY2tW?= =?utf-8?B?YTZNcWFrejdvczE5dHNFRnhYZU1EVnVzeFNxTC8xT3Fyb3VlUHpRdi9vRHRE?= =?utf-8?B?cWdtUXNPN3c4a3I4NEJVVysvS1NHTUJTV2VINHRvN0VlbXNCNnUwQStXZW83?= =?utf-8?B?cEo1NXdmVThudS9yMzlqbUdVUjNlVVU5SmZNeXgwdlBQRzZSK09Dazd4RkFl?= =?utf-8?B?KzdZR1ZVZE5CSDM5L0lEd29YWHFPK0JXeWJ4SkRrdG9XOEN6NVplMFpLZzFm?= =?utf-8?B?Z3MzSk9Dc1kyaWZnUkdTVjZMTEw0aG91YzBwZGpZMmZPbzBhUmJiRDFlOUJo?= =?utf-8?B?S0V5emJyek9ZZFZ0TFgwYlhkeFY1Mkd5MDdsTVZNbHR3b3pjWnJmbmtidlFj?= =?utf-8?B?VktPUjdiOTFBRTFWNU1XMVNhNGp3V0Vrbk1JbWJlbHNnRjZRclBod1R3c283?= =?utf-8?B?azd1MVdHdjRQYVBTSmp5VVZyOHgyUWxCN3dYSTZRNGlycFJpcWxDdWFNZEZQ?= =?utf-8?B?OVVzMHkrSGV0QjUrQXRXbGNOcWd6ZVFuWHFOZVgzOEJydHozMnFRSnFRSE9C?= =?utf-8?B?RnhsZ01nN0ZMeHRwNk5pajRlOXBUWFpCKzJZVGUyeVlYQjJGRnB3K29PVFJn?= =?utf-8?B?RmVVNHJndDZuckMvUDFCdlRXcjVJMFRqUzR6Z3FJRUJKcERySzVSNENoc0w3?= =?utf-8?B?OWZUV2Vma2dUaGhIYmZSci9EN200NmF4QVJLL1lWSFFmMWZkcTQzbWtDVy8r?= =?utf-8?B?QmtsUkJBZGFrLzdVakNYb0FZOUx4SUF5S3l5QjBLV3B2aWlLWkJQN0xNWDlM?= =?utf-8?B?SVQrQ3VDRldIMGR4UDFmY215elY4bnZqbmNNS1ZsZk10QXhwUDZtQlo4V3Rk?= =?utf-8?B?M2VNMnJTYUpVOUFpTHBXUk5WZ3RlNnhuY2RaZWxCQ2FNbWhXK2pCZHhLUDda?= =?utf-8?B?MGN2WFdFQjdwcGcvUGE4cnFVaWk2NU1tM1JMa3IvY1QwZUFlZ01hckt5cmhR?= =?utf-8?B?NnBaMkNjZ3pzd0haeEJxRHBHOHJxUUR5dVRXNmN0Ly8rdjBobEFOTGhxZGhF?= =?utf-8?B?TEZLVGFFZjJzR1N0bC9JTVAxUUt0UTFueFptNFUzMU5jdDBxMkZBOHNnNmNw?= =?utf-8?B?OEtVZEJORWZLQXU5R0U5THY4NVZ6aDRrTnFhc3Ntd1VxK0JWUFRFSmpKSzg1?= =?utf-8?B?SkdHeTE1a0NiUmgxalFDVzBHVWlqNGlZaWU3ZlVENmN5blYrOHdoQVhTMklv?= =?utf-8?B?M3BLMlZMbW9wam5TcS9TT2pCaWFhdGozRklFMDJUUnJyeTYrMTZ2OHByNmJW?= =?utf-8?B?bkltNzREbzRFTVNJaFgxNThuNkZMZU1LQ21ZMVdhcUsrR0ljYkxZZ1NRPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2d3a95a-ef91-4105-b09f-08dc40315d60 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2024 12:06:34.5514 (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: DU2P250MB0093 Subject: Re: [FFmpeg-devel] [PATCH] avformat/aea: Add aea muxer 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: asivery via ffmpeg-devel: > +#include "libavutil/intreadwrite.h" > +#include "libavutil/avstring.h" These two headers seem unused. > +#include "avformat.h" > +#include "avio_internal.h" > +#include "rawenc.h" > +#include "mux.h" > + > +static int aea_write_header(AVFormatContext *s) > +{ > + const AVDictionaryEntry *title_entry; > + int title_length = 0; > + char* title_contents; const please. Also we put the * to the variable (because "char* foo, bar" still only declares one pointer to char). Furthermore, the scope for this should be the block below. > + AVStream *st; > + > + if (s->nb_streams > 1) { > + av_log(s, AV_LOG_WARNING, "Got more than one stream to encode. This is not supported.\n"); > + return AVERROR(EINVAL); > + } > + > + st = s->streams[0]; > + if (st->codecpar->ch_layout.nb_channels != 1 && st->codecpar->ch_layout.nb_channels != 2) { > + av_log(s, AV_LOG_ERROR, "Invalid amount of channels to mux (%d).\n", st->codecpar->ch_layout.nb_channels); > + return AVERROR(EINVAL); > + } > + > + if (st->codecpar->sample_rate != 44100) { > + av_log(s, AV_LOG_ERROR, "Invalid sample rate (%d) AEA only supports 44.1kHz.\n", st->codecpar->sample_rate); > + return AVERROR(EINVAL); > + } > + > + /* Write magic */ > + avio_wl32(s->pb, 2048); > + > + /* Write AEA title */ > + title_entry = av_dict_get(st->metadata, "title", NULL, 0); > + if (title_entry) { > + title_contents = title_entry->value; > + title_length = strlen(title_contents); Possible truncation here. > + title_length = FFMIN(256, title_length); > + avio_write(s->pb, title_contents, title_length); > + } > + > + ffio_fill(s->pb, 0, 256 - title_length); > + > + /* Write number of frames (zero at header-writing time, will seek later), number of channels */ > + avio_wl32(s->pb, 0); > + avio_w8(s->pb, st->codecpar->ch_layout.nb_channels); > + avio_w8(s->pb, 0); > + > + /* Pad the header to 2048 bytes */ > + ffio_fill(s->pb, 0, 1782); > + > + return 0; > +} > + > +static int aea_write_trailer(struct AVFormatContext *s) > +{ > + AVIOContext *pb = s->pb; > + AVStream *st = s->streams[0]; > + if (pb->seekable & AVIO_SEEKABLE_NORMAL) { > + /* Seek to rewrite the block count. */ > + avio_seek(pb, 260, SEEK_SET); > + avio_wl32(pb, st->nb_frames * st->codecpar->ch_layout.nb_channels); I don't see anything guaranteeing that the result fits into 32 bits. > + } else { > + av_log(s, AV_LOG_WARNING, "unable to rewrite AEA header.\n"); > + } > + > + return 0; > +} > + > +const FFOutputFormat ff_aea_muxer = { > + .p.name = "aea", > + .p.long_name = NULL_IF_CONFIG_SMALL("MD STUDIO audio"), > + .p.extensions = "aea", > + .p.audio_codec = AV_CODEC_ID_ATRAC1, > + > + .write_header = aea_write_header, > + .write_packet = ff_raw_write_packet, > + .write_trailer = aea_write_trailer, > +}; _______________________________________________ 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".