play: Update video_snapshot to support playbin3

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6563>
This commit is contained in:
eri 2024-04-02 19:00:35 +02:00 committed by Tim-Philipp Müller
parent 21975e8d62
commit 2aef1d6ccd

View file

@ -4484,6 +4484,7 @@ gst_play_get_video_snapshot (GstPlay * self,
GstPlaySnapshotFormat format, const GstStructure * config)
{
gint video_tracks = 0;
GstPlayVideoInfo *video_info = NULL;
GstSample *sample = NULL;
GstCaps *caps = NULL;
gint width = -1;
@ -4492,10 +4493,20 @@ gst_play_get_video_snapshot (GstPlay * self,
gint par_d = 1;
g_return_val_if_fail (GST_IS_PLAY (self), NULL);
g_object_get (self->playbin, "n-video", &video_tracks, NULL);
if (video_tracks == 0) {
GST_DEBUG_OBJECT (self, "total video track num is 0");
return NULL;
if (self->use_playbin3) {
video_info = gst_play_get_current_video_track (self);
if (video_info == NULL) {
GST_DEBUG_OBJECT (self, "no current video track");
return NULL;
} else {
g_object_unref (video_info);
}
} else {
g_object_get (self->playbin, "n-video", &video_tracks, NULL);
if (video_tracks == 0) {
GST_DEBUG_OBJECT (self, "total video track num is 0");
return NULL;
}
}
switch (format) {