From 19c0f9c23990af686b4ad470d286ad339369cf75 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Mon, 2 Jun 2014 11:08:19 +0200 Subject: [PATCH] videostream: add pixconv filter iff encoder doesn't support source pixmt --- src/voip/videostream.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/voip/videostream.c b/src/voip/videostream.c index 88d1f755..e5b61728 100644 --- a/src/voip/videostream.c +++ b/src/voip/videostream.c @@ -316,6 +316,7 @@ static void configure_video_source(VideoStream *stream){ float fps=15; MSPixFmt format; MSVideoEncoderPixFmt encoder_supports_source_format; + int ret; /* transmit orientation to source filter */ ms_filter_call_method(stream->source,MS_VIDEO_CAPTURE_SET_DEVICE_ORIENTATION,&stream->device_orientation); @@ -361,7 +362,12 @@ static void configure_video_source(VideoStream *stream){ encoder_supports_source_format.supported = FALSE; encoder_supports_source_format.pixfmt = format; - ms_filter_call_method(stream->ms.encoder, MS_VIDEO_ENCODER_SUPPORTS_PIXFMT, &encoder_supports_source_format); + ret = ms_filter_call_method(stream->ms.encoder, MS_VIDEO_ENCODER_SUPPORTS_PIXFMT, &encoder_supports_source_format); + + if (ret == -1) { + // Encoder doesn't have MS_VIDEO_ENCODER_SUPPORTS_PIXFMT method + encoder_supports_source_format.supported = (format == MS_YUV420P); + } if ((encoder_supports_source_format.supported == TRUE) || (stream->source_performs_encoding == TRUE)) { ms_filter_call_method(stream->ms.encoder, MS_FILTER_SET_PIX_FMT, &format); -- 2.21.0