- Jan 11, 2022
-
-
-
-
This keeps the C prefix for Chinese for consistency with the existing AVS mapping. Another option would be to drop the C, and rename the rare legacy video game coding also called AVS. The AVI mapping is taken from libavformat's RIFF parser.
-
module_list type in config_chain was raising the log: unhandled config var type (134)
-
-
It's usually 0 but just in case it isn't, that's how it should be allocated.
-
-
* MF_E_TRANSFORM_STREAM_CHANGE was added in 4.0 * MF_E_TRANSFORM_NEED_MORE_INPUT was added in 4.0 * MF_EVENT_FLAG_NO_WAIT was added in 4.0
-
There is only but that's the proper way to release it.
-
Otherwise we lose the beginning of the file.
-
-
- only set COBJMACROS before the MediaFoundation includes - use initguid.h as in the rest of the code - STDCALL is not used
-
We already link to it. The API calls are supported since Vista and in UWP on Win10, except MFTEnumEx which is available since Win7 and in UWP on Windows 10 1709/16299.
-
The MFT_ENUM_FLAG_TRANSCODE_ONLY is not needed in our case, we don't want decoders tuned for that.
-
Not available on WinXP.
-
Asynchronous decoders need to send MFT_MESSAGE_NOTIFY_START_OF_STREAM afterwards.
-
-
No functional changes.
-
There can be more than one output available at a time.
-
And enqueue the audio/video output right after.
-
The buffer lock is done earlier so that audio/video copies have the proper buffer to write to. + only call IMFSample_GetTotalLength when we are going to use the result (audio)
-
-
Like ComPtr::Reset() would do.
-
No need for else cases when the previous call returned or jump to an error. Only push picture/audio buffers where they we actually created.
-
+ more logs
-
-
Push the PPS/SPS/VPS once
-
Rémi Denis-Courmont authored
They were always zeroes.
-
Rémi Denis-Courmont authored
No functional changes.
-
Rémi Denis-Courmont authored
...rather than cfg.window_props. cfg.display was unused (always zeroes) on vout_display_New() until this change. This is consistent with vout_display_SetSize() affecting cfg.display rather than cfg.window_props.
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
Only from vout_display_New() can (and should) the window size be used rather than the ideal default display size. In the other call sites, we actually want to compute the ideal size regardless of the actual window size. Take that case out of vout_display_GetDefaultDisplaySize() to enable further refactoring. This is a non-functional change, except for the added run-time warning.
-
Rémi Denis-Courmont authored
This is no longer necessary.
-
Rémi Denis-Courmont authored
In practice, this function is used to compensate mismatches between the source format SAR and the display PAR and should only be based on those parameters and the source format visible dimensions. Indeed, in the two call sites of the function pass 0x0 as the display size. In the vout_display_New() call site, the function is used to work-around semi-broken window providers that do not provision a window size, or only do so with a delay. Normally, it just copies the dimensions from window_props. Either way cfg->display dimensions are always zeroes. Furthermore, the 3 hereto unused and hereby removed cases failed to account for orientation correctly: from_source should have been false.
-
Rémi Denis-Courmont authored
So far, the display was created without a requested size. Then its size was immediately changed to that of the window. With this change, the display is created directly with the correct size. This matches the core video output behaviour.
-
Rémi Denis-Courmont authored
As of the last rework, ownership of the original format has already been passed to the video output by the point of enabling the window. It is kept until the next format change, or the destruction of the video output. So it shall not be freed if enabling the window fails.
-
- Jan 10, 2022
-
-
-
the display can be created when the application state is active or inactive inactive state actually happens when the application comes back from background and becomes active just after a very short amount of time hence we should allow vout initialization only when application state is not background
-
The MediaLib object can perform ML requests itself, this would register an event called on object destruction, that would callback on itself but the MediaLib would be in an invalid state (partially destroyed). Anyway we shouldn't handle object destruction events after ML task is done or canceled fix: #26448
-
-