mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-01 06:01:04 +00:00
glupload: Ensure we still have a texture after upload_set_format()
gst_gl_upload_set_format() resets the upload, hence the texture. So we need to ensure we have a texture after this call when uploading.
This commit is contained in:
parent
b70edbff15
commit
030fc8b7d0
1 changed files with 10 additions and 0 deletions
|
@ -343,6 +343,11 @@ gst_gl_upload_perform_with_buffer (GstGLUpload * upload, GstBuffer * buffer,
|
||||||
/* update the video info from the one updated by frame_map using video meta */
|
/* update the video info from the one updated by frame_map using video meta */
|
||||||
gst_gl_upload_set_format (upload, &upload->priv->frame.info);
|
gst_gl_upload_set_format (upload, &upload->priv->frame.info);
|
||||||
|
|
||||||
|
if (!upload->priv->tex_id)
|
||||||
|
gst_gl_context_gen_texture (upload->context, &upload->priv->tex_id,
|
||||||
|
GST_VIDEO_FORMAT_RGBA, GST_VIDEO_INFO_WIDTH (&upload->in_info),
|
||||||
|
GST_VIDEO_INFO_HEIGHT (&upload->in_info));
|
||||||
|
|
||||||
if (!gst_gl_upload_perform_with_data (upload, upload->priv->tex_id,
|
if (!gst_gl_upload_perform_with_data (upload, upload->priv->tex_id,
|
||||||
upload->priv->frame.data)) {
|
upload->priv->frame.data)) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -400,6 +405,11 @@ _do_upload_for_meta (GstGLUpload * upload, GstVideoGLTextureUploadMeta * meta)
|
||||||
/* update the video info from the one updated by frame_map using video meta */
|
/* update the video info from the one updated by frame_map using video meta */
|
||||||
gst_gl_upload_set_format (upload, &upload->priv->frame.info);
|
gst_gl_upload_set_format (upload, &upload->priv->frame.info);
|
||||||
|
|
||||||
|
if (!upload->priv->tex_id)
|
||||||
|
gst_gl_context_gen_texture (upload->context, &upload->priv->tex_id,
|
||||||
|
GST_VIDEO_FORMAT_RGBA, GST_VIDEO_INFO_WIDTH (&upload->in_info),
|
||||||
|
GST_VIDEO_INFO_HEIGHT (&upload->in_info));
|
||||||
|
|
||||||
ret = _gst_gl_upload_perform_with_data_unlocked (upload,
|
ret = _gst_gl_upload_perform_with_data_unlocked (upload,
|
||||||
upload->out_tex->tex_id, frame.data);
|
upload->out_tex->tex_id, frame.data);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue