diff --git a/src/voip/videostream.c b/src/voip/videostream.c index 88d1f7554c8f2e6b721ec8eab820fc0232d88add..e5b61728c6130a104fb8588767e2265cbaceac45 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);