From 071d353e57497f0955fa592fa5866be80a8c4386 Mon Sep 17 00:00:00 2001
From: Kostya Shishkov <kostya.shishkov@gmail.com>
Date: Sun, 19 Jul 2020 12:13:48 +0200
Subject: [PATCH] add help

---
 src/main.rs | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/src/main.rs b/src/main.rs
index de13de9..6b9086f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -653,7 +653,30 @@ fn main() {
     let args: Vec<_> = env::args().collect();
 
     if args.len() == 1 {
-        println!("usage: nihav-encoder [-noout] [-vn] [-an] input [lastpts]");
+        println!("usage: nihav-encoder [options] --input inputfile --output outputfile");
+        println!(" use nihav-encoder --help to list all available options");
+        return;
+    }
+    if args.len() == 2 && (args[1] == "--help" || args[1] == "-h") {
+        println!("usage: nihav-encoder [options] --input inputfile --output outputfile");
+        println!(" query options:");
+        println!("  --list-{{decoders,encoders,demuxers,muxers}} - lists all available decoders/encoders/demuxers/muxers");
+        println!("  --query-{{decoder,encoder,demuxer,muxer}}-options name - lists all options recognized by that decoder/encoder/demuxer/muxer");
+        println!(" processing options:");
+        println!("  --input inputfile           - set input file");
+        println!("  --input-format fmt          - force input format");
+        println!("  --demuxer-options options   - set input demuxer options");
+        println!("  --output outputfile         - set output file");
+        println!("  --output-format fmt         - force output format");
+        println!("  --muxer-options options     - set output muxer options");
+        println!("  --no-audio                  - do not decode audio streams");
+        println!("  --no-video                  - do not decode video streams");
+        println!("  --start starttime           - start decoding from given position");
+        println!("  --end endtime               - end decoding at given position");
+        println!("  --istreamX options          - set options for input stream X");
+        println!("  --ostreamX options          - set options for output stream X");
+        println!();
+        println!(" (de)muxer and stream options are passed as comma-separated list e.g. --ostream0 width=320,height=240,flip");
         return;
     }
 
-- 
2.39.5