am7xxx-play: get the framerate from the video stream
[libam7xxx.git] / examples / am7xxx-play.c
index b28ecec..8a52ae0 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+/**
+ * @example examples/am7xxx-play.c
+ * am7xxx-play uses libavdevice, libavformat, libavcodec and libswscale to
+ * decode the input, encode it to jpeg and display it with libam7xxx.
+ */
+
 #include <stdio.h>
 #include <stdint.h>
 #include <string.h>
@@ -193,8 +199,10 @@ static int video_output_init(struct video_output_ctx *output_ctx,
        output_codec_ctx->bit_rate   = (input_ctx->codec_ctx)->bit_rate;
        output_codec_ctx->width      = new_output_width;
        output_codec_ctx->height     = new_output_height;
-       output_codec_ctx->time_base.num  = (input_ctx->codec_ctx)->time_base.num;
-       output_codec_ctx->time_base.den  = (input_ctx->codec_ctx)->time_base.den;
+       output_codec_ctx->time_base.num  =
+               (input_ctx->format_ctx)->streams[input_ctx->video_stream_index]->time_base.num;
+       output_codec_ctx->time_base.den  =
+               (input_ctx->format_ctx)->streams[input_ctx->video_stream_index]->time_base.den;
 
        /* When the raw format is requested we don't actually need to setup
         * and open a decoder
@@ -598,7 +606,7 @@ int main(int argc, char *argv[])
        am7xxx_context *ctx;
        am7xxx_device *dev;
 
-       while ((opt = getopt(argc, argv, "f:i:o:s:uF:q:l:hp:")) != -1) {
+       while ((opt = getopt(argc, argv, "f:i:o:s:uF:q:l:p:h")) != -1) {
                switch (opt) {
                case 'f':
                        input_format_string = strdup(optarg);
@@ -678,11 +686,6 @@ int main(int argc, char *argv[])
                                log_level = AM7XXX_LOG_ERROR;
                        }
                        break;
-               case 'h':
-                       usage(argv[0]);
-                       ret = 0;
-                       goto out;
-                       break;
                case 'p':
                        power_mode = atoi(optarg);
                        switch(power_mode) {
@@ -699,6 +702,11 @@ int main(int argc, char *argv[])
                                goto out;
                        }
                        break;
+               case 'h':
+                       usage(argv[0]);
+                       ret = 0;
+                       goto out;
+                       break;
                default: /* '?' */
                        usage(argv[0]);
                        ret = -EINVAL;