[vlc-commits] sout: chromecast: fix regression
Shaleen Jain
git at videolan.org
Thu Jan 17 13:11:25 CET 2019
vlc | branch: master | Shaleen Jain <shaleen at jain.sh> | Thu Jan 17 10:41:39 2019 +0530| [ce8b76c4ecb2d4377024f5fc8da7918c29fcbee8] | committer: Thomas Guillem
sout: chromecast: fix regression
Before commit ec61edc0d0292ab37bb1dbafb23a8aed49e966bb chromecast depended on
vlc_sout_renderer_GetVcodecOption to signal the codec selected to transcode to.
Achieve that by introducing an output parameter where the codec used is
written.
Signed-off-by: Thomas Guillem <thomas at gllm.fr>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ce8b76c4ecb2d4377024f5fc8da7918c29fcbee8
---
modules/stream_out/chromecast/cast.cpp | 1 +
modules/stream_out/dlna/dlna.cpp | 1 +
modules/stream_out/renderer_common.cpp | 8 +++++---
modules/stream_out/renderer_common.hpp | 3 ++-
4 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/modules/stream_out/chromecast/cast.cpp b/modules/stream_out/chromecast/cast.cpp
index 627397894e..2837e2e361 100644
--- a/modules/stream_out/chromecast/cast.cpp
+++ b/modules/stream_out/chromecast/cast.cpp
@@ -1051,6 +1051,7 @@ bool sout_stream_sys_t::UpdateOutput( sout_stream_t *p_stream )
try {
ssout << vlc_sout_renderer_GetVcodecOption( p_stream,
{ VLC_CODEC_H264, VLC_CODEC_VP8 },
+ &i_codec_video,
&p_original_video->video, i_quality );
new_transcoding_state |= TRANSCODING_VIDEO;
} catch(const std::exception& e) {
diff --git a/modules/stream_out/dlna/dlna.cpp b/modules/stream_out/dlna/dlna.cpp
index 8716911b0c..da966442f5 100644
--- a/modules/stream_out/dlna/dlna.cpp
+++ b/modules/stream_out/dlna/dlna.cpp
@@ -439,6 +439,7 @@ int sout_stream_sys_t::UpdateOutput( sout_stream_t *p_stream )
try {
ssout << vlc_sout_renderer_GetVcodecOption( p_stream,
{ i_codec_video },
+ &i_codec_video,
&p_original_video->video, i_quality );
} catch(const std::exception& e) {
return VLC_EGENERIC ;
diff --git a/modules/stream_out/renderer_common.cpp b/modules/stream_out/renderer_common.cpp
index 1555d7bb46..77b6c8c747 100644
--- a/modules/stream_out/renderer_common.cpp
+++ b/modules/stream_out/renderer_common.cpp
@@ -81,7 +81,7 @@ std::map<vlc_fourcc_t, std::vector<venc_options>> opts = {
std::string
GetVencOption( sout_stream_t *p_stream, std::vector<vlc_fourcc_t> codecs,
- const video_format_t *p_vid, int i_quality )
+ vlc_fourcc_t *out_codec, const video_format_t *p_vid, int i_quality )
{
for (vlc_fourcc_t codec : codecs) {
auto opt = opts.find(codec);
@@ -131,6 +131,7 @@ GetVencOption( sout_stream_t *p_stream, std::vector<vlc_fourcc_t> codecs,
if( success )
{
msg_Dbg( p_stream, "Converting video to %.4s", (const char*)&codec );
+ *out_codec = codec;
return ssvenc.str();
}
}
@@ -142,13 +143,14 @@ GetVencOption( sout_stream_t *p_stream, std::vector<vlc_fourcc_t> codecs,
std::string
vlc_sout_renderer_GetVcodecOption(sout_stream_t *p_stream,
- std::vector<vlc_fourcc_t> codecs, const video_format_t *p_vid, int i_quality)
+ std::vector<vlc_fourcc_t> codecs,
+ vlc_fourcc_t *out_codec, const video_format_t *p_vid, int i_quality)
{
std::stringstream ssout;
static const char video_maxres_hd[] = "maxwidth=1920,maxheight=1080";
static const char video_maxres_720p[] = "maxwidth=1280,maxheight=720";
- ssout << GetVencOption( p_stream, codecs, p_vid, i_quality );
+ ssout << GetVencOption( p_stream, codecs, out_codec, p_vid, i_quality );
switch ( i_quality )
{
diff --git a/modules/stream_out/renderer_common.hpp b/modules/stream_out/renderer_common.hpp
index 808aa76ffb..46d09716b4 100644
--- a/modules/stream_out/renderer_common.hpp
+++ b/modules/stream_out/renderer_common.hpp
@@ -80,6 +80,7 @@ static const int conversion_quality_list[] = {
std::string
vlc_sout_renderer_GetVcodecOption(sout_stream_t *p_stream,
- std::vector<vlc_fourcc_t> codecs, const video_format_t *p_vid, int i_quality);
+ std::vector<vlc_fourcc_t> codecs,
+ vlc_fourcc_t *out_codec, const video_format_t *p_vid, int i_quality);
#endif /* RENDERER_COMMON_H */
More information about the vlc-commits
mailing list