-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use ffmpeg for Windows Video Dumping instead of VFW #3451
Conversation
Please rebase this PR -- it has merge conflicts according to Github. @JMC47 please do some testing. |
</Link> | ||
<ResourceCompile> | ||
<AdditionalIncludeDirectories>$(ExternalsDir)wxWidgets3\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||
</ResourceCompile> | ||
<ClCompile /> |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
@RisingFog Are we rendering with a lossy codec by default now? That's the only way I can explain the fifoci diffs. |
@delroth by default it's mpeg-4, but we have the option to use FFV1 (lossless) in the advanced graphics configuration, which is the same as Linux. |
Ah, I see -- I never added the option to use FFV1 since it was previously unsupported. dolphin-emu/fifoci@3fdc5eb should fix that. @dolphin-emu-bot rebuild |
Alright, looks like the left side is now compressed losslessly (I can't see artifacts, at least). Now just needs user testing and I'm fine with merging this. |
@@ -615,3 +611,15 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, const | |||
XFBWrited = false; | |||
} | |||
|
|||
void Renderer::FlipImageData(u8* data, int w, int h, int pixel_width) |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
About all of those "#if defined(HAVE_LIBAV) || defined (_WIN32)", may you define the HAVE_LIBAV macro on windows, too? |
@@ -150,9 +152,8 @@ class Renderer | |||
|
|||
#if defined _WIN32 || defined HAVE_LIBAV |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
Video recording is actually pretty nice with this. Smaller video sizes are especially nice. I can't load these videos into my editor, but, I think that's more a problem for me than it is a problem with the video dumping. |
Why are we using fmp4? Can we use h.264 somehow? Or at least some format that's widely supported? |
@delroth fmp4 is the ffmpeg version of XviD/DivX. They should be supported by most video editors (they work for me in Adobe Premiere) |
Well clearly Vegas doesn't support it. That's kind of annoying. I'd rather we use a more widely supported format. |
If you're transitioning from fmp4 to x264, it would probably also help to transition away from avi containers to mp4 containers. |
The last commit now forces the XVID FourCC to replace the existing FMP4 FourCC. This should fool video editors to open it as an XviD video file instead of getting choked up by the FMP4 FourCC. |
Alright. JMC, can you confirm this works? On Fri, Jan 8, 2016 at 8:20 PM Chris Burgener notifications@github.com
|
Yep, works. |
I've also tested it and can confirm that it works. |
Will there be a consideration for changing to ffv1 level 3 as it's multithreaded. |
@ZephyrSurfer I believe this is FFV1 level 3 by default, but I'll check on that. |
@RisingFog I still want to have the HAVE_LIBAV macro on windows ;) |
@degasus let's leave that for a future cleanup -- I'd like this merged ASAP. |
Use ffmpeg for Windows Video Dumping instead of VFW
FifoCI detected that this change impacts graphical rendering. Here are the behavior differences detected by the system:
automated-fifoci-reporter |
With the ffmpeg Windows libraries cherry picked, I'm re-creating this PR. This will allow Windows to use built-in ffmpeg support to dump video in the AVI container with either the FFV1 codec or the FMP4 (MPEG4) Codec. This is equivalent to what is currently supported by Linux video dumping. This also finally provides some stability in video dumping code and combines all operating systems under a single code base.