diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
index 9b7e8c74b9523df7274bafecfd84097895ff37a8..989391bb34f582e30bbf7227c20e914e0207f03d 100644
--- a/ffmpeg_opt.c
+++ b/ffmpeg_opt.c
@@ -3072,7 +3072,7 @@ static int opt_timecode(void *optctx, const char *opt, const char *arg)
     if (ret >= 0)
         ret = av_dict_set(&o->g->codec_opts, "gop_timecode", arg, 0);
     av_free(tcr);
-    return 0;
+    return ret;
 }
 
 static int opt_channel_layout(void *optctx, const char *opt, const char *arg)