[vlc-commits] [Git][videolan/vlc][master] 5 commits: vpx: allow lossy WebP to be encoded via VP8
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Fri Jan 13 19:58:22 UTC 2023
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
75a805a0 by Tristan Matthews at 2023-01-13T19:37:45+00:00
vpx: allow lossy WebP to be encoded via VP8
This is analogous to what we are already doing in the decoder.
- - - - -
ce9d8339 by Tristan Matthews at 2023-01-13T19:37:45+00:00
image: add webp
- - - - -
3b65dd07 by Tristan Matthews at 2023-01-13T19:37:45+00:00
vpx: default to best quality
- - - - -
301d40a5 by Tristan Matthews at 2023-01-13T19:37:45+00:00
vpx: refactor quality initialization
Pass in the value directly if valid, otherwise warn and force default.
- - - - -
6e88c716 by Tristan Matthews at 2023-01-13T19:37:45+00:00
snapshot: add webp as a snapshot format option
- - - - -
3 changed files:
- modules/codec/vpx.c
- src/libvlc-module.c
- src/misc/image.c
Changes:
=====================================
modules/codec/vpx.c
=====================================
@@ -79,7 +79,7 @@ vlc_module_begin ()
set_description(N_("WebM video encoder"))
set_callback(OpenEncoder)
# define ENC_CFG_PREFIX "sout-vpx-"
- add_integer( ENC_CFG_PREFIX "quality-mode", VPX_DL_GOOD_QUALITY, QUALITY_MODE_TEXT,
+ add_integer( ENC_CFG_PREFIX "quality-mode", VPX_DL_BEST_QUALITY, QUALITY_MODE_TEXT,
QUALITY_MODE_LONGTEXT )
change_integer_list( quality_values, quality_desc );
#endif
@@ -406,6 +406,7 @@ static int OpenEncoder(vlc_object_t *p_this)
switch (p_enc->fmt_out.i_codec)
{
#ifdef ENABLE_VP8_ENCODER
+ case VLC_CODEC_WEBP:
case VLC_CODEC_VP8:
iface = &vpx_codec_vp8_cx_algo;
vp_version = 8;
@@ -442,15 +443,16 @@ static int OpenEncoder(vlc_object_t *p_this)
config_ChainParse(p_enc, ENC_CFG_PREFIX, ppsz_sout_options, p_enc->p_cfg);
/* Deadline (in ms) to spend in encoder */
- switch (var_GetInteger(p_enc, ENC_CFG_PREFIX "quality-mode")) {
+ const unsigned long quality = var_GetInteger(p_enc, ENC_CFG_PREFIX "quality-mode");
+ switch (quality) {
case VPX_DL_REALTIME:
- p_sys->quality = VPX_DL_REALTIME;
- break;
case VPX_DL_BEST_QUALITY:
- p_sys->quality = VPX_DL_BEST_QUALITY;
+ case VPX_DL_GOOD_QUALITY:
+ p_sys->quality = quality;
break;
default:
- p_sys->quality = VPX_DL_GOOD_QUALITY;
+ msg_Warn(p_this, "Unexpected quality %lu, forcing %d", quality, VPX_DL_BEST_QUALITY);
+ p_sys->quality = VPX_DL_BEST_QUALITY;
break;
}
=====================================
src/libvlc-module.c
=====================================
@@ -49,7 +49,7 @@
#include "clock/clock.h"
static const char *const ppsz_snap_formats[] =
-{ "png", "jpg", "tiff" };
+{ "png", "jpg", "tiff", "webp" };
/*****************************************************************************
* Configuration options for the core module. Each module will also separately
=====================================
src/misc/image.c
=====================================
@@ -615,6 +615,7 @@ static const struct
{ VLC_CODEC_SVG, "svg" },
{ VLC_CODEC_TIFF, "tif" },
{ VLC_CODEC_TIFF, "tiff" },
+ { VLC_CODEC_WEBP, "webp" },
{ VLC_FOURCC('l','b','m',' '), "lbm" },
{ VLC_CODEC_PPM, "ppm" },
};
@@ -659,6 +660,7 @@ static const struct
{ VLC_CODEC_SVG, "image/svg+xml" },
{ VLC_CODEC_TIFF, "image/tiff" },
{ VLC_CODEC_TARGA, "image/x-tga" },
+ { VLC_CODEC_WEBP, "image/webp" },
{ VLC_FOURCC('x','p','m',' '), "image/x-xpixmap" },
{ 0, NULL }
};
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/1c8607bc970b2d34ec16c569b4025c9c2a5dac80...6e88c7160aa5a1aa7cef38c3f427daee578c42fc
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/1c8607bc970b2d34ec16c569b4025c9c2a5dac80...6e88c7160aa5a1aa7cef38c3f427daee578c42fc
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list