am7xxx: implement support for the AM7XXX_PACKET_TYPE_ZOOM
[libam7xxx.git] / examples / am7xxx-play.c
index 2fc8763..324ed89 100644 (file)
 
 #include <am7xxx.h>
 
+/* On some systems ENOTSUP is not defined, fallback to its value on
+ * linux which is equal to EOPNOTSUPP which is 95
+ */
+#ifndef ENOTSUP
+#define ENOTSUP 95
+#endif
+
 static unsigned int run = 1;
 
 struct video_input_ctx {
@@ -199,8 +206,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
@@ -530,6 +539,7 @@ static void unset_run(int signo)
        run = 0;
 }
 
+#ifdef HAVE_SIGACTION
 static int set_signal_handler(void (*signal_handler)(int))
 {
        struct sigaction new_action;
@@ -557,6 +567,15 @@ static int set_signal_handler(void (*signal_handler)(int))
 out:
        return ret;
 }
+#else
+static int set_signal_handler(void (*signal_handler)(int))
+{
+       (void)signal_handler;
+       fprintf(stderr, "set_signal_handler() not implemented, sigaction not available\n");
+       return 0;
+}
+#endif
+
 
 static void usage(char *name)
 {
@@ -613,6 +632,7 @@ int main(int argc, char *argv[])
                        input_path = strdup(optarg);
                        break;
                case 'o':
+#ifdef HAVE_STRTOK_R
                        /*
                         * parse suboptions, the expected format is something
                         * like:
@@ -629,6 +649,9 @@ int main(int argc, char *argv[])
                                av_dict_set(&options, subopt_name, subopt_value, 0);
                        }
                        free(subopts_saved);
+#else
+                       fprintf(stderr, "Option '-o' not implemented\n");
+#endif
                        break;
                case 's':
                        rescale_method = atoi(optarg);