浏览代码

Merge pull request #2010 from wanhongqing123/master

win-dshow: fix H264 to mjpeg issue
Jim 6 年之前
父节点
当前提交
22bddd0270
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      plugins/win-dshow/win-dshow.cpp

+ 6 - 0
plugins/win-dshow/win-dshow.cpp

@@ -468,6 +468,12 @@ static inline enum speaker_layout convert_speaker_layout(uint8_t channels)
 void DShowInput::OnEncodedVideoData(enum AVCodecID id, unsigned char *data,
 				    size_t size, long long ts)
 {
+	/* If format changes, free and allow it to recreate the decoder */
+	if (ffmpeg_decode_valid(video_decoder) &&
+	    video_decoder->codec->id != id) {
+		ffmpeg_decode_free(video_decoder);
+	}
+
 	if (!ffmpeg_decode_valid(video_decoder)) {
 		/* Only use MJPEG hardware decoding on resolutions higher
 		 * than 1920x1080.  The reason why is because we want to strike