[vlc-devel] [PATCH 0/3] Bug when converting with both deinterlace checked and codec options
software at froissart.eu
Thu Sep 19 22:44:51 CEST 2019
When converting a video, an MRL is poorly handled.
When the user checks the "deinterlace" statement, convert.cpp inserts this
statement after removing closing braces to the MRL (using "mrl.remove( '}'
This causes issues in case the passed mrl already contains closing braces
(which is the case when the selected profile has custom video codec
A quick-and-dirty fix would be to remove only the latest brace before
inserting the "deinterlace" statement, but, well...that would be
I rather send you a more object-oriented implementation of SoutMrl, that
avoids problems because it better handles "modules" and "options" within
The first and second patches are drop-in replacement for the current
Then the thirs patch actually fixes the bug.
To reproduce the bug:
* open VLC, then "Open capture device" (I am not using the English version,
my description can be slightly wrong)
* Choose whatever source you want, e.g. screen
* Choose "convert"
* Choose a profile, and edit it. In the "video codec" tab, add a custom
argument (e.g. "preset=faster", which makes sense with the x264 codec)
* Start the process. VLC will fail because the MRL will lack a closing
You can see the MRL in the "messages" dialog.
Without my patch, the MRL may look like
whereas my patch correctly handles the closing brace
Sorry, I did not know what to put in the .hpp header, I could have
copied/pasted the GPL license, but I do not know how to properly set the
copyright. Maybe you'll know this better than I do.
These patches can be applied (almost painlessly) to the 3.0.8 branch (there
may only be slight issues with a Makefile.am and a convert.cpp that was
Jérôme Froissart (3):
Re-implemented SoutMrl in a more object-oriented way
Additions to the new SoutMrl implementation
Deinterlace can be associated with codec arguments
modules/gui/qt/Makefile.am | 1 +
.../qt/components/sout/profile_selector.cpp | 80 +++++-----
.../qt/components/sout/profile_selector.hpp | 5 +-
.../gui/qt/components/sout/sout_widgets.cpp | 1 +
modules/gui/qt/dialogs/convert.cpp | 37 +++--
modules/gui/qt/dialogs/sout.cpp | 4 +-
modules/gui/qt/dialogs/sout.hpp | 71 +--------
modules/gui/qt/util/soutmrl.cpp | 86 +++++++++++
modules/gui/qt/util/soutmrl.hpp | 145 ++++++++++++++++++
9 files changed, 301 insertions(+), 129 deletions(-)
create mode 100644 modules/gui/qt/util/soutmrl.cpp
create mode 100644 modules/gui/qt/util/soutmrl.hpp
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the vlc-devel