diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000000000000000000000000000000000000..48c3b212edabd3bf135f3b6f491a8c38540d1362 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,6 @@ + +#[source.crates-io] +#replace-with = "vendored-sources" + +#[source.vendored-sources] +#directory = "mp4" diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..d30f01663492a4bbb32d4dc6834b40921b800be8 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,2 @@ +# Contributions # +...are welcome later. \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 1d06ad083cc8dc771fcb1d2318194f75c85dda3d..53bd40c5681e3997250bfae4054720a2920d93b9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -29,9 +29,9 @@ dependencies = [ [[package]] name = "sprintf" -version = "0.4.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46781e6f401f1557f5b4560284baf7268bd9ca531e9e387120a8695fe5bc1fb1" +checksum = "39b60413e681681e22dfe3966674082c075c5f6ed73c3900b95dd19eb9e0181d" dependencies = [ "thiserror", ] diff --git a/Cargo.toml b/Cargo.toml index c69912c63f2bbe0478204ab9f77f363718166647..1fdedb9acf205f69f831ece737ca6eca2485c58c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,62 @@ [package] name = "mp4duration2" -version = "0.1.0" +# build = "src/build.rs" +# mods = "src/mods.rs" +authors = ["Abigoven Vandrhall <abigoven@tutanota.com>"] +categories = ["command-line-utilities", "mediafiles", "mp4", "m4a"] +description = "A Rust application that collects the durations of some given MP4 files and shows them in a human readable format." edition = "2021" +exclude = ["/devtools/*", "/Justfile", "/Vagrantfile", "/screenshots.png"] +homepage = "https://www.opencode.net/abigoven/" +license = "MIT" +# Don't publish on crates.io! +publish = false +repository = "https://www.opencode.net/abigoven/mp4duration" +version = "0.1.0" + +[[bin]] +name = "mp4duration2" + +#[lib] +#crate-type = ["rlib", "staticlib", "cdylib"] + +[profile.dev] +debug = true +debug-assertions = true +incremental = false +lto = false +opt-level = 0 +overflow-checks = true +panic = "abort" + +[profile.release] +codegen-units = 1 +debug = false +debug-assertions = false +incremental = false +lto = true +opt-level = 3 +overflow-checks = true +panic = "abort" + +[lints.rust] +unsafe_code = "forbid" +unstable_features = "forbid" +dead_code = "allow" +unused_variables = "forbid" +unused_mut = "forbid" + +[lints.clippy] +todo = "forbid" +empty_loop = "allow" +infinite_loop = "deny" +mem_forget = "deny" +disallowed_methods = "warn" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +# https://github.com/alfg/mp4-rust +# https://crates.io/crates/mp4 +# https://docs.rs/mp4/ [dependencies] -sprintf = "0.4.0" +sprintf = "0.3.0" diff --git a/README.md b/README.md index 57fd007ac02dfde648a93d4152a46bfdd56d2ae5..d04af5016055941fb9662e8a5229f87d00601351 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,29 @@ # MP4-Duration 2 # -[MP4-Duration 2](https://www.opencode.net/abigoven/mp4duration2) (is a similar tool to [MP3-Duration](https://www.opencode.net/abigoven/mp3duration) for MP3-files) is a Rust CLI ("Command Line Interface") application that collects the durations of some given MP4 files and shows them in a human readable format. It uses my own functionality without usage of mp4 crate. +[MP4-Duration 2](https://www.opencode.net/abigoven/mp4duration2) (is a +similar tool to +[MP3-Duration](https://www.opencode.net/abigoven/mp3duration) for +MP3-files) is a Rust CLI ("Command Line Interface") application that +collects the durations of some given MP4 files and shows them in a human +readable format. It uses my own functionality without usage of mp4 +crate. ## Installation ## -The executable files for 32bit-versions are stored in i686-\* and 64bit-versions are stored in x86_64-\* +The executable files for 32bit-versions are stored in i686-\* and +64bit-versions are stored in x86_64-\* Download the fitting binary (32/64bit) for your Linux distribution. -Copy the binary to /usr/local/bin/ for local users or and not additionally to /usr/bin/ for systemwide usage. -<br/>*Do copy to one path only and not to both!* +Copy the binary to /usr/local/bin/ for local users or and not +additionally to /usr/bin/ for systemwide usage.<br/> +*Do copy to one path only and not to both!* ```bash cp -fv -- mp4duration2 /usr/local/bin/ sudo cp -fv -- mp4duration2 /usr/bin/ ``` -Download the fitting Windows-exe for your Windows version (32/64bit) and copy it to %PROGRAMFILES%. +Download the fitting Windows-exe for your Windows version (32/64bit) and +copy it to %PROGRAMFILES%. ``` COPY /B mp4duration2.exe %PROGRAMFILES% @@ -25,10 +34,15 @@ COPY /B mp4duration2.exe %PROGRAMFILES% mp4duration2 [-n] [-s] <filename(s)> ``` --- -### Test Output if filenames were given ### +### Test Outputs ### ``` +mp4duration2 + +Usage: mp4duration2 [-n] [-s] <filename(s)> + +--- + mp4duration2 *Directors_Cut*.mp4 --------------------------------- 00:01:33:56 01_Abigoven_Vandrhall_Q.U.B.E._Directors_Cut_Q.U.B.E._Directors_Cut_01_UYHHihhPI6g.mp4 00:00:37:56 02_Abigoven_Vandrhall_Q.U.B.E._Directors_Cut_Q.U.B.E._Directors_Cut_02_V1fmPCYQpT4.mp4 @@ -39,8 +53,9 @@ mp4duration2 *Directors_Cut*.mp4 00:00:37:45 Q_U_B_E_Directors_Cut_03.mp4 00:01:11:44 Q_U_B_E_Directors_Cut_04.mp4 +--- + mp4duration2 -n *Directors_Cut*.mp4 ------------------------------------ 1/8 00:01:33:56 01_Abigoven_Vandrhall_Q.U.B.E._Directors_Cut_Q.U.B.E._Directors_Cut_01_UYHHihhPI6g.mp4 2/8 00:00:37:56 02_Abigoven_Vandrhall_Q.U.B.E._Directors_Cut_Q.U.B.E._Directors_Cut_02_V1fmPCYQpT4.mp4 @@ -52,7 +67,6 @@ mp4duration2 -n *Directors_Cut*.mp4 8/8 00:01:11:44 Q_U_B_E_Directors_Cut_04.mp4 mp4duration2 -s *Directors_Cut*.mp4 ------------------------------------ 00:01:33:56 01_Abigoven_Vandrhall_Q.U.B.E._Directors_Cut_Q.U.B.E._Directors_Cut_01_UYHHihhPI6g.mp4 00:00:37:56 02_Abigoven_Vandrhall_Q.U.B.E._Directors_Cut_Q.U.B.E._Directors_Cut_02_V1fmPCYQpT4.mp4 @@ -65,7 +79,6 @@ mp4duration2 -s *Directors_Cut*.mp4 all 00:08:02:42 mp4duration2 -n -s *Directors_Cut*.mp4 --------------------------------------- 1/8 00:01:33:56 01_Abigoven_Vandrhall_Q.U.B.E._Directors_Cut_Q.U.B.E._Directors_Cut_01_UYHHihhPI6g.mp4 2/8 00:00:37:56 02_Abigoven_Vandrhall_Q.U.B.E._Directors_Cut_Q.U.B.E._Directors_Cut_02_V1fmPCYQpT4.mp4 @@ -77,16 +90,9 @@ mp4duration2 -n -s *Directors_Cut*.mp4 8/8 00:01:11:44 Q_U_B_E_Directors_Cut_04.mp4 all 00:08:02:42 ``` -If you are interested in the video files then you can [watch them here on Peertube](https://vid.northbound.online/a/abigoven/video-channels). - -### Output if no filenames were given ### +If you are interested in the video files then you can [watch them here +on [Peertube](https://vid.northbound.online/a/abigoven/video-channels). -``` -mp4duration2 ------------- - -Usage: mp4duration2 [-n] [-s] <filename(s)> -``` --- ## License ## diff --git a/doc/mp4duration2/fn.f_convertsecs.html b/doc/mp4duration2/fn.f_convertsecs.html index 2a96f5814a51f19c1c50c03ffce56a56999f511c..f221b56f8ddd5cdcf5eaffb617624962183a0178 100644 --- a/doc/mp4duration2/fn.f_convertsecs.html +++ b/doc/mp4duration2/fn.f_convertsecs.html @@ -1 +1 @@ -<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `f_convertsecs` fn in crate `mp4duration2`."><title>f_convertsecs in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">f_convertsecs</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#90-109">source</a> </span></div><pre class="rust item-decl"><code>pub(crate) fn f_convertsecs(seconds: <a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.u64.html">u64</a>)</code></pre></section></div></main></body></html> \ No newline at end of file +<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `f_convertsecs` fn in crate `mp4duration2`."><title>f_convertsecs in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">f_convertsecs</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#92-111">source</a> </span></div><pre class="rust item-decl"><code>pub(crate) fn f_convertsecs(seconds: <a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.u64.html">u64</a>)</code></pre></section></div></main></body></html> \ No newline at end of file diff --git a/doc/mp4duration2/fn.get_video_duration.html b/doc/mp4duration2/fn.get_video_duration.html index a8933a3586217fb8bf3cb3ee6f7bead106342bb8..f2b26f505617fc9cf5319b471e0ed889abb8d652 100644 --- a/doc/mp4duration2/fn.get_video_duration.html +++ b/doc/mp4duration2/fn.get_video_duration.html @@ -1 +1 @@ -<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `get_video_duration` fn in crate `mp4duration2`."><title>get_video_duration in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">get_video_duration</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#21-88">source</a> </span></div><pre class="rust item-decl"><code>pub fn get_video_duration(path: &<a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.83.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.f64.html">f64</a>, <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a>></code></pre></section></div></main></body></html> \ No newline at end of file +<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `get_video_duration` fn in crate `mp4duration2`."><title>get_video_duration in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">get_video_duration</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#21-90">source</a> </span></div><pre class="rust item-decl"><code>pub fn get_video_duration(path: &<a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.str.html">str</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.83.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.83.0/std/primitive.f64.html">f64</a>, <a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a>></code></pre></section></div></main></body></html> \ No newline at end of file diff --git a/doc/mp4duration2/fn.main.html b/doc/mp4duration2/fn.main.html index d121ba673a0c3459b55a0d0ce11d9728fe26d697..731caa6dfc103d4f8448b4b0ddfaad4989d6ca78 100644 --- a/doc/mp4duration2/fn.main.html +++ b/doc/mp4duration2/fn.main.html @@ -1 +1 @@ -<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `mp4duration2`."><title>main in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">main</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#111-196">source</a> </span></div><pre class="rust item-decl"><code>pub(crate) fn main()</code></pre></section></div></main></body></html> \ No newline at end of file +<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `main` fn in crate `mp4duration2`."><title>main in mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="index.html">mp4duration2</a></span><h1>Function <span class="fn">main</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#113-199">source</a> </span></div><pre class="rust item-decl"><code>pub(crate) fn main()</code></pre></section></div></main></body></html> \ No newline at end of file diff --git a/doc/mp4duration2/index.html b/doc/mp4duration2/index.html index 79cef01259c2258740dd1f3955d9149f65eb5ac1..1914e2e463cb2c48ed4692673e957ec630bc14db 100644 --- a/doc/mp4duration2/index.html +++ b/doc/mp4duration2/index.html @@ -1 +1 @@ -<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `mp4duration2` crate."><title>mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#enums">Crate Items</a></h3><ul class="block"><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <span>mp4duration2</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#1-196">source</a> </span></div><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.f_convertsecs.html" title="fn mp4duration2::f_convertsecs">f_<wbr>convertsecs</a><span title="Restricted Visibility"> 🔒</span> </div></li><li><div class="item-name"><a class="fn" href="fn.get_video_duration.html" title="fn mp4duration2::get_video_duration">get_<wbr>video_<wbr>duration</a></div></li><li><div class="item-name"><a class="fn" href="fn.main.html" title="fn mp4duration2::main">main</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul></section></div></main></body></html> \ No newline at end of file +<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `mp4duration2` crate."><title>mp4duration2 - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="mp4duration2" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../mp4duration2/index.html">mp4duration2</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#enums">Crate Items</a></h3><ul class="block"><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <span>mp4duration2</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/mp4duration2/main.rs.html#1-199">source</a> </span></div><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.Mp4Error.html" title="enum mp4duration2::Mp4Error">Mp4Error</a></div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.f_convertsecs.html" title="fn mp4duration2::f_convertsecs">f_<wbr>convertsecs</a><span title="Restricted Visibility"> 🔒</span> </div></li><li><div class="item-name"><a class="fn" href="fn.get_video_duration.html" title="fn mp4duration2::get_video_duration">get_<wbr>video_<wbr>duration</a></div></li><li><div class="item-name"><a class="fn" href="fn.main.html" title="fn mp4duration2::main">main</a><span title="Restricted Visibility"> 🔒</span> </div></li></ul></section></div></main></body></html> \ No newline at end of file diff --git a/doc/search-index.js b/doc/search-index.js index aada71a8f57fef5bce5f3c2124b6f9bf716740d6..445711d2b819951784239d07bb3a230f9b99d145 100644 --- a/doc/search-index.js +++ b/doc/search-index.js @@ -1,4 +1,4 @@ -var searchIndex = new Map(JSON.parse('[["mp4duration2",{"t":"PPPPPGNNHNNNHNHNNN","n":["InvalidAtom","InvalidAtomSize","InvalidDuration","InvalidMp4Format","IoError","Mp4Error","borrow","borrow_mut","f_convertsecs","fmt","from","","get_video_duration","into","main","try_from","try_into","type_id"],"q":[[0,"mp4duration2"],[18,"core::fmt"],[19,"std::io::error"],[20,"core::result"],[21,"core::any"]],"i":"j0000`00`000`0`000","f":"``````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{fh}{{{b{j}}{b{dl}}}n}{cc{}}{A`j}{{{b{Ab}}}{{Af{Adj}}}}{{}c{}}{{}h}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}","D":"d","p":[[1,"reference"],[0,"mut"],[1,"u64"],[1,"unit"],[6,"Mp4Error",0],[5,"Formatter",18],[8,"Result",18],[5,"Error",19],[1,"str"],[1,"f64"],[6,"Result",20],[5,"TypeId",21]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABAAAwAAAAoADAABAA8AAwA="}]]')); +var searchIndex = new Map(JSON.parse('[["mp4duration2",{"t":"PPPPPGNNHNNNHNHNNN","n":["InvalidAtom","InvalidAtomSize","InvalidDuration","InvalidMp4Format","IoError","Mp4Error","borrow","borrow_mut","f_convertsecs","fmt","from","","get_video_duration","into","main","try_from","try_into","type_id"],"q":[[0,"mp4duration2"],[18,"core::fmt"],[19,"std::io::error"],[20,"core::result"],[21,"core::any"]],"i":"j0000`00`000`0`000","f":"``````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{fh}{{{b{j}}{b{dl}}}n}{cc{}}{A`j}{{{b{Ab}}}{{Af{Adj}}}}{{}c{}}{{}h}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}","D":"d","p":[[1,"reference"],[0,"mut"],[1,"u64"],[1,"unit"],[6,"Mp4Error",0],[5,"Formatter",18],[8,"Result",18],[5,"Error",19],[1,"str"],[1,"f64"],[6,"Result",20],[5,"TypeId",21]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABAAAwAAAAoADAABAA8AAwA="}],["mp4duration2",{"t":"PPPPPGPNNHNNNHNHNNN","n":["InvalidAtom","InvalidAtomSize","InvalidDuration","InvalidMp4Format","IoError","Mp4Error","None","borrow","borrow_mut","f_convertsecs","fmt","from","","get_video_duration","into","main","try_from","try_into","type_id"],"q":[[0,"mp4duration2"],[19,"core::fmt"],[20,"std::io::error"],[21,"core::result"],[22,"core::any"]],"i":"j0000`000`000`0`000","f":"```````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{fh}{{{b{j}}{b{dl}}}n}{cc{}}{A`j}{{{b{Ab}}}{{Af{Adj}}}}{{}c{}}{{}h}{c{{Af{e}}}{}{}}{{}{{Af{c}}}{}}{bAh}","D":"d","p":[[1,"reference"],[0,"mut"],[1,"u64"],[1,"unit"],[6,"Mp4Error",0],[5,"Formatter",19],[8,"Result",19],[5,"Error",20],[1,"str"],[1,"f64"],[6,"Result",21],[5,"TypeId",22]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABEAAwAAAAsADQABABAAAwA="}]]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); -//{"start":39,"fragment_lengths":[788]} \ No newline at end of file +//{"start":39,"fragment_lengths":[788,799]} \ No newline at end of file diff --git a/doc/src/mp4duration2/main.rs.html b/doc/src/mp4duration2/main.rs.html index b11d891e457a2d51b1143c75940d6e06fced3a67..5a21d5bb355a18d8bf0e379a80e74c458517aad1 100644 --- a/doc/src/mp4duration2/main.rs.html +++ b/doc/src/mp4duration2/main.rs.html @@ -194,7 +194,10 @@ <a href="#193" id="193">193</a> <a href="#194" id="194">194</a> <a href="#195" id="195">195</a> -<a href="#196" id="196">196</a></pre></div><pre class="rust"><code><span class="kw">use </span>sprintf::sprintf; +<a href="#196" id="196">196</a> +<a href="#197" id="197">197</a> +<a href="#198" id="198">198</a> +<a href="#199" id="199">199</a></pre></div><pre class="rust"><code><span class="kw">use </span>sprintf::sprintf; <span class="kw">use </span>std::env; <span class="kw">use </span>std::fs::File; <span class="kw">use </span>std::io::{<span class="self">self</span>, Read}; @@ -273,7 +276,9 @@ <span class="kw">let </span>video_duration = duration <span class="kw">as </span>f64 / timescale <span class="kw">as </span>f64; <span class="kw">return </span><span class="prelude-val">Ok</span>(video_duration); } <span class="kw">else </span>{ - <span class="kw">return </span><span class="prelude-val">Err</span>(Mp4Error::InvalidAtom); + <span class="comment">// return Err(Mp4Error::InvalidAtom); + </span><span class="kw">let </span>video_duration = <span class="number">0.0_f64</span>; + <span class="kw">return </span><span class="prelude-val">Ok</span>(video_duration); } } @@ -377,7 +382,8 @@ } f_convertsecs(get_video_duration(arg).unwrap() <span class="kw">as </span>u64); <span class="kw">if </span>show_summary { - wholetime += get_video_duration(arg).unwrap() <span class="kw">as </span>u64; + wholetime += + get_video_duration(arg).unwrap() <span class="kw">as </span>u64; } <span class="macro">println!</span>(<span class="string">"\t{}"</span>, arg); } diff --git a/mp4duration2.git b/mp4duration2.git deleted file mode 100644 index 0d366cd69114e09edfc443e22e7413c0d927c7f3..0000000000000000000000000000000000000000 --- a/mp4duration2.git +++ /dev/null @@ -1,90 +0,0 @@ - - - - -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <meta name="description" content=""> - <meta name="author" content=""> - - <title>Login</title> - - <link href="/assets/css/bootstrap.min.css" rel="stylesheet"> - <link href="/assets/css/font-awesome.min.css" rel="stylesheet"> - <link href="/assets/css/bootstrap-social.css" rel="stylesheet"> - <link href="/assets/css/main.css" rel="stylesheet"> - <link rel="shortcut icon" type="image/png" href="/assets/images/favicon.png"> - - <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> - - <script src='https://www.google.com/recaptcha/api.js'></script> -</head> -<body> - <header id="page_header" xmlns="http://www.w3.org/1999/html"> - <div class="container header" style="position: relative;background-image: url('https://www.opendesktop.org/images_sys/store_kde/kde-bg.png');background-color: #aaa;color: #0A0A0A;height: 90px; width: 100%;padding-top: 8px;margin-top: 15px;"> - - <section class="container" style="width:100%;"> - <section class="wrapper" style="padding-left: 40px;"> - - <section> - - <figure class="logo-header"> - <a href="https://www.opendesktop.org"> - <img width="400px" border="0" - src="https://www.opendesktop.org/images_sys/store_opendesktop/logo.png"> - </a> - </figure> - - </section> - - </section> - </section> - - </div> - </header> - - <div class="container"> - - - -<form action="/login?next=%2Foauth%2Fauthorize%3Fclient_id%3DBzeY4MotIOUTXTzPwbhw%26redirect_uri%3Dhttps%253A%252F%252Fwww.opencode.net%252Fusers%252Fauth%252Foauth_opendesktop%252Fcallback%26response_type%3Dcode%26scope%3Dopenid%2520profile%2520email%26state%3Da9145002f9d5aed296a28d93479bd6fe840999115323475a" method="POST" class="form-signin"> - - - - - - - - <input type="hidden" name="csrfToken" value="08d679c1c7164f37a166f42eb09719f038eee6d5-1735814909141-45067fa00e51fa53dde74324"/> - <h2 class="form-heading">Please Log In</h2> - <div class="form-group"> - <input name="email" type="text" class="form-control input-lg" placeholder="Username or Email" autofocus/> - </div> - <div class="form-group"> - <input name="password" type="password" class="form-control input-lg" placeholder="Password"/> - </div> - <button class="btn btn-lg btn-primary btn-block" type="submit">Log In</button> - <h4 class="text-center"><a href="https://www.opendesktop.org/register">Register new account</a></h4> - <h4 class="text-center"><a href="https://www.opendesktop.org/password/request">Reset password</a></h4> - <hr> - - -</form> - - - </div> - <script src="/assets/js/jquery.min.js" type="text/javascript"></script> - <script src="/assets/js/bootstrap.min.js" type="text/javascript"></script> - <script src="/assets/js/bootstrap-show-password.min.js" type="text/javascript"></script> - <script src="/assets/js/main.js" type="text/javascript"></script> -</body> -</html> - diff --git a/mp4duration2_git_wget.txt b/mp4duration2_git_wget.txt deleted file mode 100644 index 12774b7fe6875ed75627889b90ade6bb8292c774..0000000000000000000000000000000000000000 --- a/mp4duration2_git_wget.txt +++ /dev/null @@ -1,20 +0,0 @@ -HSTS in effect for www.opencode.net:80 -[0] Downloading 'https://git@www.opencode.net:abigoven/mp4duration2.git' ... -HTTP response 302 [https://git@www.opencode.net:abigoven/mp4duration2.git] -Adding URL: https://www.opencode.net/users/sign_in -[0] Downloading 'https://www.opencode.net/users/sign_in' ... -HTTP response 302 [https://www.opencode.net/users/sign_in] -Adding URL: https://www.opencode.net/users/auth/oauth_opendesktop -[0] Downloading 'https://www.opencode.net/users/auth/oauth_opendesktop' ... -HTTP response 302 [https://www.opencode.net/users/auth/oauth_opendesktop] -Adding URL: https://id.opendesktop.org/oauth/authorize?client_id=BzeY4MotIOUTXTzPwbhw&redirect_uri=https%3A%2F%2Fwww.opencode.net%2Fusers%2Fauth%2Foauth_opendesktop%2Fcallback&response_type=code&scope=openid+profile+email&state=a9145002f9d5aed296a28d93479bd6fe840999115323475a -[0] Downloading 'https://id.opendesktop.org/oauth/authorize?client_id=BzeY4MotIOUTXTzPwbhw&redirect_uri=https%3A%2F%2Fwww.opencode.net%2Fusers%2Fauth%2Foauth_opendesktop%2Fcallback&response_type=code&scope=openid+profile+email&state=a9145002f9d5aed296a28d93479bd6fe840999115323475a' ... -HTTP response 303 See Other [https://id.opendesktop.org/oauth/authorize?client_id=BzeY4MotIOUTXTzPwbhw&redirect_uri=https%3A%2F%2Fwww.opencode.net%2Fusers%2Fauth%2Foauth_opendesktop%2Fcallback&response_type=code&scope=openid+profile+email&state=a9145002f9d5aed296a28d93479bd6fe840999115323475a] -Adding URL: https://id.opendesktop.org/login?next=%2Foauth%2Fauthorize%3Fclient_id%3DBzeY4MotIOUTXTzPwbhw%26redirect_uri%3Dhttps%253A%252F%252Fwww.opencode.net%252Fusers%252Fauth%252Foauth_opendesktop%252Fcallback%26response_type%3Dcode%26scope%3Dopenid%2520profile%2520email%26state%3Da9145002f9d5aed296a28d93479bd6fe840999115323475a -[0] Downloading 'https://id.opendesktop.org/login?next=%2Foauth%2Fauthorize%3Fclient_id%3DBzeY4MotIOUTXTzPwbhw%26redirect_uri%3Dhttps%253A%252F%252Fwww.opencode.net%252Fusers%252Fauth%252Foauth_opendesktop%252Fcallback%26response_type%3Dcode%26scope%3Dopenid%2520profile%2520email%26state%3Da9145002f9d5aed296a28d93479bd6fe840999115323475a' ... -Saving 'mp4duration2.git' -HTTP response 200 OK [https://id.opendesktop.org/login?next=%2Foauth%2Fauthorize%3Fclient_id%3DBzeY4MotIOUTXTzPwbhw%26redirect_uri%3Dhttps%253A%252F%252Fwww.opencode.net%252Fusers%252Fauth%252Foauth_opendesktop%252Fcallback%26response_type%3Dcode%26scope%3Dopenid%2520profile%2520email%26state%3Da9145002f9d5aed296a28d93479bd6fe840999115323475a] -HSTS in effect for www.opencode.net:80 -Nothing to do - goodbye -HSTS in effect for www.opencode.net:80 -Nothing to do - goodbye diff --git a/src/main.rs b/src/main.rs index b055a1c1b22b48b109c3ecd26b001d3cc658a6cd..ad1a2e140647b6ca453389cf6dcb75056b89e240 100644 --- a/src/main.rs +++ b/src/main.rs @@ -77,7 +77,9 @@ pub fn get_video_duration(path: &str) -> Result<f64, Mp4Error> { let video_duration = duration as f64 / timescale as f64; return Ok(video_duration); } else { - return Err(Mp4Error::InvalidAtom); + // return Err(Mp4Error::InvalidAtom); + let video_duration = 0.0_f64; + return Ok(video_duration); } } diff --git a/x86_64-pc-windows-gnu/mp4duration2.exe b/x86_64-pc-windows-gnu/mp4duration2.exe index 536004e40d74cda68642196b7a4b00a9aa498841..f500e1ff7a9c5db2119dedf9bea59f2f870366c4 100755 Binary files a/x86_64-pc-windows-gnu/mp4duration2.exe and b/x86_64-pc-windows-gnu/mp4duration2.exe differ diff --git a/x86_64-unknown-linux-gnu/mp4duration2 b/x86_64-unknown-linux-gnu/mp4duration2 index b8f6dfa12840bb5fdbcaf57d7d20d86b6083c1f4..c038959eb5ab1f86c181e18fefe503e0f197168f 100755 Binary files a/x86_64-unknown-linux-gnu/mp4duration2 and b/x86_64-unknown-linux-gnu/mp4duration2 differ