win-dshow: Fix format switching issue
If the format was one encoded format and changes to another encoded format, it could cause it to continue to treat it as the old format.
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user