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 ESMTPS id 860EA4AFA1 for ; Fri, 28 Feb 2025 22:47:07 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5038D68DB56; Sat, 1 Mar 2025 00:47:02 +0200 (EET) Received: from btbn.de (btbn.de [144.76.60.213]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6FAEE68DCAD for ; Sat, 1 Mar 2025 00:46:56 +0200 (EET) Received: from [authenticated] by btbn.de (Postfix) with ESMTPSA id 9554C2819FD04; Fri, 28 Feb 2025 23:46:53 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rothenpieler.org; s=mail; t=1740782813; 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; bh=hFKEarkTHoUFIvxNxnevK7Ud8cFEfvsqv/UQQ+7neMQ=; b=dc2+wF9nh73b8cxSQ6WtMOJxTwqXFG4uF1BdRwCG22eL8gBLIfIFFu+y0osLTU77hV+S4t puttndt+ETy5hanElmVwgD0z4JgxNzJSOtgxIivoEQQKJXfGMKgHOiJWuXL4QnyI+AljGr O0H2tBUQNcqE2NqhrrxJCYdxVDVKuJpsAMuPGcTevkTbgaSZ9tmPl6VDtkAW8Y/oYGRTfL uVAr+JZ0UCBNogMvXjr7UNS7lperNjtfVa6fK5WXTpOI/mlxRnLzwa/VFPq6zauGT1EYxn maygUVMDMub8XaujO5TE5dpxZ3o5MsxQBLGxZ05IrUGW9QftbZ3cHhsvgpuPRw== From: Timo Rothenpieler To: ffmpeg-devel@ffmpeg.org Date: Fri, 28 Feb 2025 23:46:11 +0100 Message-ID: <20250228224640.30747-1-timo@rothenpieler.org> X-Mailer: git-send-email 2.45.3 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 1/3] avutil/timecode: add ff_timecode_set_smpte 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: Timo Rothenpieler 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: LS0tCiBsaWJhdnV0aWwvdGltZWNvZGUuYyAgICAgICAgICB8IDI3ICsrKy0tLS0tLS0tLS0tLS0t LS0KIGxpYmF2dXRpbC90aW1lY29kZV9pbnRlcm5hbC5jIHwgNTEgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIGxpYmF2dXRpbC90aW1lY29kZV9pbnRlcm5hbC5oIHwgNTEgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTA1IGlu c2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2dXRp bC90aW1lY29kZV9pbnRlcm5hbC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZ1dGlsL3RpbWVj b2RlX2ludGVybmFsLmgKCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvdGltZWNvZGUuYyBiL2xpYmF2 dXRpbC90aW1lY29kZS5jCmluZGV4IGY0NTQ0NjZmOTcuLmJjYTE2YjZhYzIgMTAwNjQ0Ci0tLSBh L2xpYmF2dXRpbC90aW1lY29kZS5jCisrKyBiL2xpYmF2dXRpbC90aW1lY29kZS5jCkBAIC0yOSw2 ICsyOSw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlICJjb21tb24uaCIKICNpbmNs dWRlICJ0aW1lY29kZS5oIgorI2luY2x1ZGUgInRpbWVjb2RlX2ludGVybmFsLmgiCiAjaW5jbHVk ZSAibG9nLmgiCiAjaW5jbHVkZSAiZXJyb3IuaCIKIApAQCAtMTI3LDMyICsxMjgsMTAgQEAgY2hh ciAqYXZfdGltZWNvZGVfbWFrZV9zdHJpbmcoY29uc3QgQVZUaW1lY29kZSAqdGMsIGNoYXIgKmJ1 ZiwgaW50IGZyYW1lbnVtX2FyZykKICAgICByZXR1cm4gYnVmOwogfQogCi1zdGF0aWMgdW5zaWdu ZWQgYmNkMnVpbnQodWludDhfdCBiY2QpCi17Ci0gICB1bnNpZ25lZCBsb3cgID0gYmNkICYgMHhm OwotICAgdW5zaWduZWQgaGlnaCA9IGJjZCA+PiA0OwotICAgaWYgKGxvdyA+IDkgfHwgaGlnaCA+ IDkpCi0gICAgICAgcmV0dXJuIDA7Ci0gICByZXR1cm4gbG93ICsgMTAqaGlnaDsKLX0KLQogY2hh ciAqYXZfdGltZWNvZGVfbWFrZV9zbXB0ZV90Y19zdHJpbmcyKGNoYXIgKmJ1ZiwgQVZSYXRpb25h bCByYXRlLCB1aW50MzJfdCB0Y3NtcHRlLCBpbnQgcHJldmVudF9kZiwgaW50IHNraXBfZmllbGQp CiB7Ci0gICAgdW5zaWduZWQgaGggICA9IGJjZDJ1aW50KHRjc21wdGUgICAgICYgMHgzZik7ICAg IC8vIDYtYml0IGhvdXJzCi0gICAgdW5zaWduZWQgbW0gICA9IGJjZDJ1aW50KHRjc21wdGU+Pjgg ICYgMHg3Zik7ICAgIC8vIDctYml0IG1pbnV0ZXMKLSAgICB1bnNpZ25lZCBzcyAgID0gYmNkMnVp bnQodGNzbXB0ZT4+MTYgJiAweDdmKTsgICAgLy8gNy1iaXQgc2Vjb25kcwotICAgIHVuc2lnbmVk IGZmICAgPSBiY2QydWludCh0Y3NtcHRlPj4yNCAmIDB4M2YpOyAgICAvLyA2LWJpdCBmcmFtZXMK LSAgICB1bnNpZ25lZCBkcm9wID0gdGNzbXB0ZSAmIDE8PDMwICYmICFwcmV2ZW50X2RmOyAgLy8g MS1iaXQgZHJvcCBpZiBub3QgYXJiaXRyYXJ5IGJpdAotCi0gICAgaWYgKGF2X2NtcF9xKHJhdGUs IChBVlJhdGlvbmFsKSB7MzAsIDF9KSA9PSAxKSB7Ci0gICAgICAgIGZmIDw8PSAxOwotICAgICAg ICBpZiAoIXNraXBfZmllbGQpIHsKLSAgICAgICAgICAgIGlmIChhdl9jbXBfcShyYXRlLCAoQVZS YXRpb25hbCkgezUwLCAxfSkgPT0gMCkKLSAgICAgICAgICAgICAgICBmZiArPSAhISh0Y3NtcHRl ICYgMSA8PCA3KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmZiArPSAhISh0 Y3NtcHRlICYgMSA8PCAyMyk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgdW5zaWduZWQgaGgsIG1t LCBzcywgZmYsIGRyb3A7CisgICAgZmZfdGltZWNvZGVfc2V0X3NtcHRlKCZkcm9wLCAmaGgsICZt bSwgJnNzLCAmZmYsIHJhdGUsIHRjc21wdGUsIHByZXZlbnRfZGYsIHNraXBfZmllbGQpOwogCiAg ICAgc25wcmludGYoYnVmLCBBVl9USU1FQ09ERV9TVFJfU0laRSwgIiUwMnU6JTAydTolMDJ1JWMl MDJ1IiwKICAgICAgICAgICAgICBoaCwgbW0sIHNzLCBkcm9wID8gJzsnIDogJzonLCBmZik7CmRp ZmYgLS1naXQgYS9saWJhdnV0aWwvdGltZWNvZGVfaW50ZXJuYWwuYyBiL2xpYmF2dXRpbC90aW1l Y29kZV9pbnRlcm5hbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjI1 OWViZjE2NjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdnV0aWwvdGltZWNvZGVfaW50ZXJuYWwu YwpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA2IFNtYXJ0am9nIFMu QS5TLCBCYXB0aXN0ZSBDb3VkdXJpZXIgPGJhcHRpc3RlLmNvdWR1cmllckBnbWFpbC5jb20+Cisg KiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMiBTbWFydGpvZyBTLkEuUywgQ2zDqW1lbnQgQsWTc2No IDxjbGVtZW50LmJvZXNjaEBzbWFydGpvZy5jb20+CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQg b2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZt cGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZG bXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxIFVTQQorICovCisKKyNpbmNsdWRlICJ0aW1lY29kZV9pbnRlcm5hbC5oIgorCitzdGF0aWMg dW5zaWduZWQgYmNkMnVpbnQodWludDhfdCBiY2QpCit7CisgICB1bnNpZ25lZCBsb3cgID0gYmNk ICYgMHhmOworICAgdW5zaWduZWQgaGlnaCA9IGJjZCA+PiA0OworICAgaWYgKGxvdyA+IDkgfHwg aGlnaCA+IDkpCisgICAgICAgcmV0dXJuIDA7CisgICByZXR1cm4gbG93ICsgMTAqaGlnaDsKK30K Kwordm9pZCBmZl90aW1lY29kZV9zZXRfc21wdGUodW5zaWduZWQgKmRyb3AsIHVuc2lnbmVkICpo aCwgdW5zaWduZWQgKm1tLCB1bnNpZ25lZCAqc3MsIHVuc2lnbmVkICpmZiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFWUmF0aW9uYWwgcmF0ZSwgdWludDMyX3QgdGNzbXB0ZSwgaW50IHBy ZXZlbnRfZGYsIGludCBza2lwX2ZpZWxkKQoreworICAgICpoaCAgID0gYmNkMnVpbnQodGNzbXB0 ZSAgICAgJiAweDNmKTsgICAgLy8gNi1iaXQgaG91cnMKKyAgICAqbW0gICA9IGJjZDJ1aW50KHRj c21wdGU+PjggICYgMHg3Zik7ICAgIC8vIDctYml0IG1pbnV0ZXMKKyAgICAqc3MgICA9IGJjZDJ1 aW50KHRjc21wdGU+PjE2ICYgMHg3Zik7ICAgIC8vIDctYml0IHNlY29uZHMKKyAgICAqZmYgICA9 IGJjZDJ1aW50KHRjc21wdGU+PjI0ICYgMHgzZik7ICAgIC8vIDYtYml0IGZyYW1lcworICAgICpk cm9wID0gdGNzbXB0ZSAmIDE8PDMwICYmICFwcmV2ZW50X2RmOyAgLy8gMS1iaXQgZHJvcCBpZiBu b3QgYXJiaXRyYXJ5IGJpdAorCisgICAgaWYgKGF2X2NtcF9xKHJhdGUsIChBVlJhdGlvbmFsKSB7 MzAsIDF9KSA9PSAxKSB7CisgICAgICAgICpmZiA8PD0gMTsKKyAgICAgICAgaWYgKCFza2lwX2Zp ZWxkKSB7CisgICAgICAgICAgICBpZiAoYXZfY21wX3EocmF0ZSwgKEFWUmF0aW9uYWwpIHs1MCwg MX0pID09IDApCisgICAgICAgICAgICAgICAgKmZmICs9ICEhKHRjc21wdGUgJiAxIDw8IDcpOwor ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICpmZiArPSAhISh0Y3NtcHRlICYgMSA8 PCAyMyk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvdGltZWNv ZGVfaW50ZXJuYWwuaCBiL2xpYmF2dXRpbC90aW1lY29kZV9pbnRlcm5hbC5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjhlZjQzZDFmOTgKLS0tIC9kZXYvbnVsbAorKysg Yi9saWJhdnV0aWwvdGltZWNvZGVfaW50ZXJuYWwuaApAQCAtMCwwICsxLDUxIEBACisvKgorICog Q29weXJpZ2h0IChjKSAyMDA2IFNtYXJ0am9nIFMuQS5TLCBCYXB0aXN0ZSBDb3VkdXJpZXIgPGJh cHRpc3RlLmNvdWR1cmllckBnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMiBT bWFydGpvZyBTLkEuUywgQ2zDqW1lbnQgQsWTc2NoIDxjbGVtZW50LmJvZXNjaEBzbWFydGpvZy5j b20+CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUg RnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKy8qKgorICogQGZp bGUKKyAqIFRpbWVjb2RlIGhlbHBlcnMgaGVhZGVyCisgKi8KKworI2lmbmRlZiBBVlVUSUxfVElN RUNPREVfSU5URVJOQUxfSAorI2RlZmluZSBBVlVUSUxfVElNRUNPREVfSU5URVJOQUxfSAorCisj aW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSAicmF0aW9uYWwuaCIKKworLyoqCisgKiBDb252 ZXJ0IFNNUFRFIDEyTSBiaW5hcnkgcmVwcmVzZW50YXRpb24gdG8gc2VpIGluZm8uCisgKgorICog QHBhcmFtIGRyb3AgICAgICAgZHJvcCBmbGFnIG91dHB1dAorICogQHBhcmFtIGhoICAgICAgICAg aG91ciBvdXRwdXQKKyAqIEBwYXJhbSBtbSAgICAgICAgIG1pbnV0ZSBvdXRwdXQKKyAqIEBwYXJh bSBzcyAgICAgICAgIHNlY29uZCBvdXRwdXQKKyAqIEBwYXJhbSBmZiAgICAgICAgIGZyYW1lIG51 bWJlciBvdXRwdXQKKyAqIEBwYXJhbSByYXRlICAgICAgIGZyYW1lIHJhdGUgb2YgdGhlIHRpbWVj b2RlCisgKiBAcGFyYW0gdGNzbXB0ZSAgICB0aGUgMzItYml0IFNNUFRFIHRpbWVjb2RlCisgKiBA cGFyYW0gcHJldmVudF9kZiBwcmV2ZW50IHRoZSB1c2Ugb2YgYSBkcm9wIGZsYWcgd2hlbiBpdCBp cyBrbm93biB0aGUgREYgYml0CisgKiAgICAgICAgICAgICAgICAgICBpcyBhcmJpdHJhcnkKKyAq IEBwYXJhbSBza2lwX2ZpZWxkIHByZXZlbnQgdGhlIHVzZSBvZiBhIGZpZWxkIGZsYWcgd2hlbiBp dCBpcyBrbm93biB0aGUgZmllbGQKKyAqICAgICAgICAgICAgICAgICAgIGJpdCBpcyBhcmJpdHJh cnkgKGUuZy4gYmVjYXVzZSBpdCBpcyB1c2VkIGFzIFBDIGZsYWcpCisgKi8KK3ZvaWQgZmZfdGlt ZWNvZGVfc2V0X3NtcHRlKHVuc2lnbmVkICpkcm9wLCB1bnNpZ25lZCAqaGgsIHVuc2lnbmVkICpt bSwgdW5zaWduZWQgKnNzLCB1bnNpZ25lZCAqZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBBVlJhdGlvbmFsIHJhdGUsIHVpbnQzMl90IHRjc21wdGUsIGludCBwcmV2ZW50X2RmLCBpbnQg c2tpcF9maWVsZCk7CisKKyNlbmRpZiAvKiBBVlVUSUxfVElNRUNPREVfSU5URVJOQUxfSCAqLwot LSAKMi40NS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBz Oi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3Jp YmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBl Zy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==