[FFmpeg-devel] [PATCH] examples/decoding_encoding: make operation logic more self-evident / predictable

Stefano Sabatini stefasab at gmail.com
Fri Aug 24 17:18:34 CEST 2012


Add a switch which control which operation to perform.  Useful to testing
only a single feature. Also the new behavior is globally more
self-consistent.
---
 doc/examples/decoding_encoding.c |   30 +++++++++++++++++++-----------
 1 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/doc/examples/decoding_encoding.c b/doc/examples/decoding_encoding.c
index 309342f..fb3854a 100644
--- a/doc/examples/decoding_encoding.c
+++ b/doc/examples/decoding_encoding.c
@@ -600,24 +600,32 @@ static void video_decode_example(const char *outfilename, const char *filename)
 
 int main(int argc, char **argv)
 {
-    const char *filename;
-
+    const char *output_type;
     /* register all the codecs */
     avcodec_register_all();
 
-    if (argc <= 1) {
-        audio_encode_example("test.mp2");
-        audio_decode_example("test.sw", "test.mp2");
+    if (argc < 2) {
+        printf("usage: %s output_type\n"
+               "API example program to decode/encode a media stream with libavcodec.\n"
+               "output_type must be choosen between 'mpg', 'mp2', 'h264'\n",
+               argv[0]);
+        return 1;
+    }
+    output_type = argv[1];
 
-        video_encode_example("test.h264", AV_CODEC_ID_H264);
+    if (!strcmp(output_type, "mpg")) {
         video_encode_example("test.mpg", AV_CODEC_ID_MPEG1VIDEO);
-        filename = "test.mpg";
+        video_decode_example("test%02d.pgm", "test.mpg");
+    } else if (!strcmp(output_type, "h264")) {
+        video_encode_example("test.h264", AV_CODEC_ID_H264);
+    } else if (!strcmp(output_type, "mp2")) {
+        audio_encode_example("test.mp2");
+        audio_decode_example("test.sw", "test.mp2");
     } else {
-        filename = argv[1];
+        fprintf(stderr, "Invalid output type '%s', choose between 'mpg', 'h264' or 'mp2'\n",
+                output_type);
+        return 1;
     }
 
-    //    audio_decode_example("test.sw", filename);
-    video_decode_example("test%02d.pgm", filename);
-
     return 0;
 }
-- 
1.7.5.4



More information about the ffmpeg-devel mailing list