[vlc-devel] [PATCH 12/13] sout: transcode: set the decoder video context in the encoder
Steve Lhomme
robux4 at ycbcr.xyz
Mon Dec 23 16:49:36 CET 2019
The video context matches the video format used in the same call.
---
modules/stream_out/transcode/encoder/encoder.h | 1 +
modules/stream_out/transcode/encoder/video.c | 3 +++
modules/stream_out/transcode/transcode.h | 1 +
modules/stream_out/transcode/video.c | 3 ++-
4 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/modules/stream_out/transcode/encoder/encoder.h b/modules/stream_out/transcode/encoder/encoder.h
index 46d1e3c69bd..ccca1e1b580 100644
--- a/modules/stream_out/transcode/encoder/encoder.h
+++ b/modules/stream_out/transcode/encoder/encoder.h
@@ -89,6 +89,7 @@ void transcode_encoder_video_configure( vlc_object_t *p_obj,
const video_format_t *p_dec_out,
const transcode_encoder_config_t *p_cfg,
const video_format_t *p_src,
+ vlc_video_context *vctx_in,
transcode_encoder_t *p_enc );
void transcode_video_framerate_apply( const video_format_t *p_src,
diff --git a/modules/stream_out/transcode/encoder/video.c b/modules/stream_out/transcode/encoder/video.c
index 5c3fe66522d..85d323f09b5 100644
--- a/modules/stream_out/transcode/encoder/video.c
+++ b/modules/stream_out/transcode/encoder/video.c
@@ -215,6 +215,7 @@ void transcode_encoder_video_configure( vlc_object_t *p_obj,
const video_format_t *p_dec_out,
const transcode_encoder_config_t *p_cfg,
const video_format_t *p_src,
+ vlc_video_context *vctx_in,
transcode_encoder_t *p_enc )
{
video_format_t *p_enc_in = &p_enc->p_encoder->fmt_in.video;
@@ -260,6 +261,8 @@ void transcode_encoder_video_configure( vlc_object_t *p_obj,
p_enc_out->i_sar_num * p_enc_out->i_width,
p_enc_out->i_sar_den * p_enc_out->i_height );
+ p_enc->p_encoder->vctx_in = vctx_in;
+
/* Keep colorspace etc info along */
p_enc_out->space = p_src->space;
p_enc_out->transfer = p_src->transfer;
diff --git a/modules/stream_out/transcode/transcode.h b/modules/stream_out/transcode/transcode.h
index 3090bbb4f86..6e4c4f3291b 100644
--- a/modules/stream_out/transcode/transcode.h
+++ b/modules/stream_out/transcode/transcode.h
@@ -129,6 +129,7 @@ struct sout_stream_id_sys_t
vlc_blender_t *p_spu_blender;
spu_t *p_spu;
vlc_decoder_device *dec_dev;
+ vlc_video_context *enc_vctx_in;
};
struct
{
diff --git a/modules/stream_out/transcode/video.c b/modules/stream_out/transcode/video.c
index ac3ed3b28a5..8453fb70f04 100644
--- a/modules/stream_out/transcode/video.c
+++ b/modules/stream_out/transcode/video.c
@@ -582,7 +582,8 @@ int transcode_video_process( sout_stream_t *p_stream, sout_stream_id_sys_t *id,
transcode_encoder_video_configure( VLC_OBJECT(p_stream),
&id->p_decoder->fmt_out.video,
id->p_enccfg,
- filtered_video_format( id, p_pic ),
+ &p_pic->format,
+ picture_GetVideoContext(p_pic),
id->encoder );
/* will be opened below */
}
--
2.17.1
More information about the vlc-devel
mailing list