diff options
| -rw-r--r-- | externals/ffmpeg/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/video_core/host1x/codecs/codec.cpp | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/externals/ffmpeg/CMakeLists.txt b/externals/ffmpeg/CMakeLists.txt index 0a926e399..f2886eb6c 100644 --- a/externals/ffmpeg/CMakeLists.txt +++ b/externals/ffmpeg/CMakeLists.txt | |||
| @@ -164,7 +164,7 @@ if (NOT WIN32 AND NOT ANDROID) | |||
| 164 | --enable-decoder=h264 | 164 | --enable-decoder=h264 |
| 165 | --enable-decoder=vp8 | 165 | --enable-decoder=vp8 |
| 166 | --enable-decoder=vp9 | 166 | --enable-decoder=vp9 |
| 167 | --enable-filter=yadif | 167 | --enable-filter=yadif,scale |
| 168 | --cc="${FFmpeg_CC}" | 168 | --cc="${FFmpeg_CC}" |
| 169 | --cxx="${FFmpeg_CXX}" | 169 | --cxx="${FFmpeg_CXX}" |
| 170 | ${FFmpeg_HWACCEL_FLAGS} | 170 | ${FFmpeg_HWACCEL_FLAGS} |
| @@ -254,7 +254,7 @@ elseif(ANDROID) | |||
| 254 | set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE) | 254 | set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE) |
| 255 | elseif(WIN32) | 255 | elseif(WIN32) |
| 256 | # Use yuzu FFmpeg binaries | 256 | # Use yuzu FFmpeg binaries |
| 257 | set(FFmpeg_EXT_NAME "ffmpeg-5.1.3") | 257 | set(FFmpeg_EXT_NAME "ffmpeg-6.0") |
| 258 | set(FFmpeg_PATH "${CMAKE_BINARY_DIR}/externals/${FFmpeg_EXT_NAME}") | 258 | set(FFmpeg_PATH "${CMAKE_BINARY_DIR}/externals/${FFmpeg_EXT_NAME}") |
| 259 | download_bundled_external("ffmpeg/" ${FFmpeg_EXT_NAME} "") | 259 | download_bundled_external("ffmpeg/" ${FFmpeg_EXT_NAME} "") |
| 260 | set(FFmpeg_FOUND YES) | 260 | set(FFmpeg_FOUND YES) |
diff --git a/src/video_core/host1x/codecs/codec.cpp b/src/video_core/host1x/codecs/codec.cpp index 220cce28a..8d7da50fc 100644 --- a/src/video_core/host1x/codecs/codec.cpp +++ b/src/video_core/host1x/codecs/codec.cpp | |||
| @@ -319,6 +319,7 @@ void Codec::Decode() { | |||
| 319 | LOG_WARNING(Service_NVDRV, "Zero width or height in frame"); | 319 | LOG_WARNING(Service_NVDRV, "Zero width or height in frame"); |
| 320 | return; | 320 | return; |
| 321 | } | 321 | } |
| 322 | bool is_interlaced = initial_frame->interlaced_frame != 0; | ||
| 322 | if (av_codec_ctx->hw_device_ctx) { | 323 | if (av_codec_ctx->hw_device_ctx) { |
| 323 | final_frame = AVFramePtr{av_frame_alloc(), AVFrameDeleter}; | 324 | final_frame = AVFramePtr{av_frame_alloc(), AVFrameDeleter}; |
| 324 | ASSERT_MSG(final_frame, "av_frame_alloc final_frame failed"); | 325 | ASSERT_MSG(final_frame, "av_frame_alloc final_frame failed"); |
| @@ -334,7 +335,7 @@ void Codec::Decode() { | |||
| 334 | UNIMPLEMENTED_MSG("Unexpected video format: {}", final_frame->format); | 335 | UNIMPLEMENTED_MSG("Unexpected video format: {}", final_frame->format); |
| 335 | return; | 336 | return; |
| 336 | } | 337 | } |
| 337 | if (!final_frame->interlaced_frame) { | 338 | if (!is_interlaced) { |
| 338 | av_frames.push(std::move(final_frame)); | 339 | av_frames.push(std::move(final_frame)); |
| 339 | } else { | 340 | } else { |
| 340 | if (!filters_initialized) { | 341 | if (!filters_initialized) { |