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 0631440E20 for ; Fri, 31 Dec 2021 12:30:47 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0797068AFD1; Fri, 31 Dec 2021 14:30:45 +0200 (EET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2081.outbound.protection.outlook.com [40.92.89.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A1E8068A92E for ; Fri, 31 Dec 2021 14:30:37 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GhRtOVJ+AX98OzwBxGIVUiowLFtcXlsWB7OJ6cf23v2WLTf85m6JWMnIyQIYODMCBrl4SZJxRgxLuYSe7N7CqZIyNVHxpRoRGk9PILd7DEpdcqORoNUBiHUmgMFk1jayhTFgYI7UKszV4cXqcPf/EhTZ0kTGok1EL5cVwb8eMB5quyksP1NPBvpNAmFVkHz/gbRYbbPB9pTPnGI6oVCc4Vg1niWx++uJF+ZywjTBKvIGLPNmv+wC3yarmaEO258ZriRsKmUPzRvdWvyWtlpvXsKBatBgloWFQ/Ed/XJab+KuUpoqecNyhbPRoGsRs+ZYglvc9GJU34VCk/j6V8Uaaw== 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=py/YBeFdeIYyccgPn3eWmcpZBjThAumKXR2TcAwKgek=; b=KP/mHgjDn4bx8hKKAo4Wvg+hrJ5BTKBRSq4bfxDud6wWfVvmonb9EnDzY+CrnRKkITh3/8yQKlC9hHlfB/Cr5AI1dWrEohDZriLMjhS8+u0ZswQNu2xM4Ss4X66236Mo4LwdaaKvWHG4JgrpMRIKCVujHbmzUqncxzkpaGf7FQE6swF8s6BwzeuJjNqfN70OOgL4xVbP6oO5ZvmTX0clS/xUt0/9wrcm1kXC0RM8MmoHS+MRsMRaFvJS9xyN1HuHrOoD/u+y9v4jzeTrCvRdVlrwnbfgBz2d/mOIZaIBYhrC2wE1nGuqYIutgr90rYH+6nY5N0O74idsMX7cBj0Q6A== 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=py/YBeFdeIYyccgPn3eWmcpZBjThAumKXR2TcAwKgek=; b=vRU8DnPmhaZLvMUIdg9RIBaOAzec6X9ueZ5WSMf8eoiaSZriwYt8abk5iUyEl7H4zjLepBfJFWfs3YhXCB0XB0OUqf/RCjzIZ+yUNGh7LDVCeMY1TJVl1eepdUgXWMZirMUwEyYMASzXy2YLLiAc1IA1v3QR06ODIPxi3ceEbiv2DqhVqfrgwHlyPUjsek6QtGfequPEhRLYKoxt3fsO9kuuO0Ohv/rGMGElBwZpUONkT+o8wRixoHWmse0JqUBbS59JmOoz/Xos8yb1ZMbvIraJ1klqsA+sdHb0E2qOLqCAzodanobPmVtFhVeU/MIgZOy2XkCoro0LKB5zeOmgpQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5377.eurprd03.prod.outlook.com (2603:10a6:20b:cc::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Fri, 31 Dec 2021 12:30:35 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%6]) with mapi id 15.20.4844.014; Fri, 31 Dec 2021 12:30:35 +0000 Message-ID: Date: Fri, 31 Dec 2021 13:30:34 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20211227002613.25069-1-cus@passwd.hu> <20211227002613.25069-4-cus@passwd.hu> From: Andreas Rheinhardt In-Reply-To: <20211227002613.25069-4-cus@passwd.hu> X-TMN: [5LAc1XUXBO18wK8rcAy1pPcYfJxY6SqG] X-ClientProxiedBy: AM0PR04CA0072.eurprd04.prod.outlook.com (2603:10a6:208:1::49) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 27ac06a5-0845-44ba-cc50-08d9cc595833 X-MS-TrafficTypeDiagnostic: AM6PR03MB5377:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XfeHIRKySc4n0CWODxpjLwNelUZWVxq6KY4UrwxuLW7C0DJVnGjipYovAX0V+ymyrwXhXhkeC/uLEQPAOMW35hdRRyal4FYVE1zcPho9z3b9BCp8X1ckzYvHanzpFf1WccG2V394/dEscWzafBUeRx4aR/i2nR96vjL9pVciTJj/f0IHZEm/n0itbbSzaXrlHeLizrw37qNvcqDAWpu7SHmHHsX6zG5ySqJpII7KxOG6yTQmLrO/oLNwZqLmOYZOR180JHBmN2CBoauTfry2fvWVkjWxGnmsQLIHGwlI8laP5ECEUumQL+j0x6vLYFWZrIv+aZDHdYchrrtRiLMEXImR3tnPRNElZjP8EqK4i9RW/FVpdDHiKnBg/k20bnWP5+OJLvAtde1gv04MA7QCjcdlvOqyuXYW6sdiIvKrcZWZcRrQyyjMXcK6kSrC9MdjbmBIizbddIbkEJTCyzgimd3c/WDmu7vtZrlylUei9n7zbZyoeAnfAR7d+yz/n0+f8WS7R726AS6pa9H+pjPnS17EPffbB/1q79SAtbvFs+/gG1Kp8bGspt7+5PMK4PoxcEhudX9u8MnQCmXuDtqPVg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c0k1Z2JzeExxc1YwQVVOU3AvNklzMVBsc0Fza0EvTXZyS216VUhoMjF0bVZz?= =?utf-8?B?T1dLTm1PWllBZHR3aXl0cU1JRDFSeDNSWiswcUxHdWU3Qlk1ajY5QUozc3ov?= =?utf-8?B?R2tFWmt3dEUySzcvdGc2OVhmS00yVlFJbUVNdlhZdlRJajkza2NnWlpBN3hw?= =?utf-8?B?TzNMZGkvZWt5NS9iL0trREFpbW1nN2p5ODdDTWk5MVBjMkhMd3hnSDJDY0JD?= =?utf-8?B?RVlTMnNTVkxRV0RWTWk5ZWVHaCtWUk9XekJETFpBQ0pLVXpLOUdRQ2VWR2hw?= =?utf-8?B?czJ3YkhDWG5nSXhCbHJ5cjlVdUZ6OHNMZkJvTVZicm43ZlNiMWgzN0pPSTJQ?= =?utf-8?B?dytoT2k0YjRWbnR5WU4vai9ZTWhxRzNVbEdEVFlHRVZzaEM3NzhHeW5sUmsy?= =?utf-8?B?eWRhbmJuU1djdGJab3BMVG5PRVljeXQzVS9IVnRnQjNLZlJCSEE0Y0dYTDV6?= =?utf-8?B?K05vNjZhQlBsdXptdEcxNXZBWVVmV0UraGJiRWovWUs5WmRBSmVwalhhOENj?= =?utf-8?B?T3FLZHh4bWxrMnNJanhnc0ZlWGp4czErbkZMQ2NqUVhNUUJEUElQblhBM0NP?= =?utf-8?B?K1dKZlB3K1dVdCtsQUhMMVpZeUZpQUQrbDZXdER2WENXbUsrRkVHZ3RhVWZN?= =?utf-8?B?amNFSFdqb3p1Ylp4Yzd2azZPR3ZZV1JNWDh1ckRDTml5NVdjbW1XcjdKaGlv?= =?utf-8?B?TDJqNlJHVmo1ZEFqc292Vys3azllMHd6L1c1bEpQQjV5cUcrVWozbTRiV2Yr?= =?utf-8?B?ZWs2cjRLQWdHdW1DK1RESzNQQ3RTVVVkbzQ5bFdZdGkvWTZ2UGhGRHJXNCtC?= =?utf-8?B?SENNS2x5Y3JJZWU2d0pvS09OTjJpTkh0R05QUjgyS0Y1VmxvSFJwMTBPMjJw?= =?utf-8?B?Q0hVelUrSmR4QUMwcVU0VUJBTmFkRlI2aHFyYVhieXNseFV5MGZicmtqQVNR?= =?utf-8?B?dlRIUjJaU0xVYVlTKzhya3NveVlUVVBnbnZIOTV6TGY5MkRxeWlVbE1TQ1BR?= =?utf-8?B?TlRDQ01zS04xdXFOaEpZek1MTm5Xb3NaZEM5ZnloOUk5YUNSUTBqYXRpSENv?= =?utf-8?B?RnZEeCtxTS82dEdpdTlJbE02c01lZ21VZmVwQWpnb1h2a0pPdnpoRk41ZmFo?= =?utf-8?B?bWNaOGtvVjRMUkw3dzBOOVVFNm5aQmRkVU0xQzFReU96Q3loTnNqNUYzSldv?= =?utf-8?B?MDdySHB6OUdvd3hPLzBWWjdPdUhCZ0pXZWpIcWdNbUdrbmtndEk1eGJpR0dC?= =?utf-8?B?N2VzTDZsb3ZNUUVaTTlwYTNtbHZLY3djMEs4SW5sT3NpSHFxUT09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 27ac06a5-0845-44ba-cc50-08d9cc595833 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2021 12:30:35.5768 (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: AM6PR03MB5377 Subject: Re: [FFmpeg-devel] [PATCH 4/5] avformat/segafilmenc: use ff_format_shift_data for shifting 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: Marton Balint: > Signed-off-by: Marton Balint > --- > libavformat/segafilmenc.c | 51 ++++----------------------------------- > 1 file changed, 5 insertions(+), 46 deletions(-) > > diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c > index ff8cb66aca..737805faa6 100644 > --- a/libavformat/segafilmenc.c > +++ b/libavformat/segafilmenc.c > @@ -170,54 +170,13 @@ static int film_init(AVFormatContext *format_context) > static int write_header(AVFormatContext *format_context, uint8_t *header, > unsigned header_size) > { > - int ret = 0; > - int64_t pos, pos_end; > - uint8_t *buf, *read_buf[2]; > - int read_buf_id = 0; > - int read_size[2]; > - AVIOContext *read_pb; > - > - buf = av_malloc(header_size); > - if (!buf) > - return AVERROR(ENOMEM); > - read_buf[0] = buf; > - read_buf[1] = header; > - read_size[1] = header_size; > - > - /* Write the header at the beginning of the file, shifting all content as necessary; > - * based on the approach used by MOV faststart. */ > - avio_flush(format_context->pb); > - ret = format_context->io_open(format_context, &read_pb, format_context->url, AVIO_FLAG_READ, NULL); > - if (ret < 0) { > - av_log(format_context, AV_LOG_ERROR, "Unable to re-open %s output file to " > - "write the header\n", format_context->url); > - av_free(buf); > + int ret = ff_format_shift_data(format_context, 0, header_size); > + if (ret < 0) > return ret; > - } > > - /* Mark the end of the shift to up to the last data we are going to write, > - * and get ready for writing */ > - pos_end = avio_tell(format_context->pb) + header_size; > - pos = avio_seek(format_context->pb, 0, SEEK_SET); > - > - /* start reading at where the new header will be placed */ > - avio_seek(read_pb, 0, SEEK_SET); > - > - /* shift data by chunk of at most header_size */ > - do { > - int n; > - read_size[read_buf_id] = avio_read(read_pb, read_buf[read_buf_id], > - header_size); > - read_buf_id ^= 1; > - n = read_size[read_buf_id]; > - if (n <= 0) > - break; > - avio_write(format_context->pb, read_buf[read_buf_id], n); > - pos += n; > - } while (pos < pos_end); > - ff_format_io_close(format_context, &read_pb); > - > - av_free(buf); > + avio_seek(format_context->pb, 0, SEEK_SET); This adds a new seek; this could be easily avoided if ff_format_shift_data() would be changed to add a buffer parameter which if != NULL would need to point to a buffer of size equal to shift_size that is directly written at read_start. > + avio_write(format_context->pb, header, header_size); > + > return 0; > } > > _______________________________________________ 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".