summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Schmidt <jan@centricular.com>2014-10-07 16:33:07 +1100
committerJan Schmidt <jan@centricular.com>2015-06-11 12:25:45 +1000
commit1f1e24f63f98bb552af49de68121946f5c624943 (patch)
tree49587761b35a48c63455c8278c722e79cc0bfdd2
parent0fc0584210d4bc50233865e67f4debdb87c8666f (diff)
viddec: Replicate any 3D/multiview info from input caps onto output
-rw-r--r--ext/libav/gstavviddec.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c
index 94bd368639..0521aecc47 100644
--- a/ext/libav/gstavviddec.c
+++ b/ext/libav/gstavviddec.c
@@ -1026,6 +1026,7 @@ gst_ffmpegviddec_negotiate (GstFFMpegVidDec * ffmpegdec,
fps_d = 1;
}
}
+
GST_LOG_OBJECT (ffmpegdec, "setting framerate: %d/%d", fps_n, fps_d);
out_info->fps_n = fps_n;
out_info->fps_d = fps_d;
@@ -1033,6 +1034,14 @@ gst_ffmpegviddec_negotiate (GstFFMpegVidDec * ffmpegdec,
/* calculate and update par now */
gst_ffmpegviddec_update_par (ffmpegdec, in_info, out_info);
+ /* Copy stereo/multiview info from upstream if set */
+ if (GST_VIDEO_INFO_MULTIVIEW_MODE (in_info) != GST_VIDEO_MULTIVIEW_MODE_NONE) {
+ GST_VIDEO_INFO_MULTIVIEW_MODE (out_info) =
+ GST_VIDEO_INFO_MULTIVIEW_MODE (in_info);
+ GST_VIDEO_INFO_MULTIVIEW_FLAGS (out_info) =
+ GST_VIDEO_INFO_MULTIVIEW_FLAGS (in_info);
+ }
+
if (!gst_video_decoder_negotiate (GST_VIDEO_DECODER (ffmpegdec)))
goto negotiate_failed;