mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
playbin2: Set subtitle encoding on the decodebins again
This commit is contained in:
parent
25c1a331be
commit
5cfd799076
1 changed files with 25 additions and 11 deletions
|
@ -1729,13 +1729,32 @@ gst_play_bin_set_sink (GstPlayBin * playbin, GstElement ** elem,
|
||||||
GST_PLAY_BIN_UNLOCK (playbin);
|
GST_PLAY_BIN_UNLOCK (playbin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gst_play_bin_set_encoding (GstPlayBin * playbin, const gchar * encoding)
|
||||||
|
{
|
||||||
|
GstElement *elem;
|
||||||
|
|
||||||
|
GST_PLAY_BIN_LOCK (playbin);
|
||||||
|
|
||||||
|
/* set subtitles on all current and next decodebins. */
|
||||||
|
if ((elem = playbin->groups[0].uridecodebin))
|
||||||
|
g_object_set (G_OBJECT (elem), "subtitle-encoding", encoding, NULL);
|
||||||
|
if ((elem = playbin->groups[0].suburidecodebin))
|
||||||
|
g_object_set (G_OBJECT (elem), "subtitle-encoding", encoding, NULL);
|
||||||
|
if ((elem = playbin->groups[1].uridecodebin))
|
||||||
|
g_object_set (G_OBJECT (elem), "subtitle-encoding", encoding, NULL);
|
||||||
|
if ((elem = playbin->groups[1].suburidecodebin))
|
||||||
|
g_object_set (G_OBJECT (elem), "subtitle-encoding", encoding, NULL);
|
||||||
|
|
||||||
|
gst_play_sink_set_subtitle_encoding (playbin->playsink, encoding);
|
||||||
|
GST_PLAY_BIN_UNLOCK (playbin);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_play_bin_set_property (GObject * object, guint prop_id,
|
gst_play_bin_set_property (GObject * object, guint prop_id,
|
||||||
const GValue * value, GParamSpec * pspec)
|
const GValue * value, GParamSpec * pspec)
|
||||||
{
|
{
|
||||||
GstPlayBin *playbin;
|
GstPlayBin *playbin = GST_PLAY_BIN (object);
|
||||||
|
|
||||||
playbin = GST_PLAY_BIN (object);
|
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_URI:
|
case PROP_URI:
|
||||||
|
@ -1757,8 +1776,7 @@ gst_play_bin_set_property (GObject * object, guint prop_id,
|
||||||
gst_play_bin_set_current_text_stream (playbin, g_value_get_int (value));
|
gst_play_bin_set_current_text_stream (playbin, g_value_get_int (value));
|
||||||
break;
|
break;
|
||||||
case PROP_SUBTITLE_ENCODING:
|
case PROP_SUBTITLE_ENCODING:
|
||||||
gst_play_sink_set_subtitle_encoding (playbin->playsink,
|
gst_play_bin_set_encoding (playbin, g_value_get_string (value));
|
||||||
g_value_get_string (value));
|
|
||||||
break;
|
break;
|
||||||
case PROP_VIDEO_SINK:
|
case PROP_VIDEO_SINK:
|
||||||
gst_play_bin_set_sink (playbin, &playbin->video_sink, "video",
|
gst_play_bin_set_sink (playbin, &playbin->video_sink, "video",
|
||||||
|
@ -1807,9 +1825,7 @@ static GstElement *
|
||||||
gst_play_bin_get_current_sink (GstPlayBin * playbin, GstElement ** elem,
|
gst_play_bin_get_current_sink (GstPlayBin * playbin, GstElement ** elem,
|
||||||
const gchar * dbg, GstPlaySinkType type)
|
const gchar * dbg, GstPlaySinkType type)
|
||||||
{
|
{
|
||||||
GstElement *sink;
|
GstElement *sink = gst_play_sink_get_sink (playbin->playsink, type);
|
||||||
|
|
||||||
sink = gst_play_sink_get_sink (playbin->playsink, type);
|
|
||||||
|
|
||||||
GST_LOG_OBJECT (playbin, "play_sink_get_sink() returned %s sink %"
|
GST_LOG_OBJECT (playbin, "play_sink_get_sink() returned %s sink %"
|
||||||
GST_PTR_FORMAT ", the originally set %s sink is %" GST_PTR_FORMAT,
|
GST_PTR_FORMAT ", the originally set %s sink is %" GST_PTR_FORMAT,
|
||||||
|
@ -1829,9 +1845,7 @@ static void
|
||||||
gst_play_bin_get_property (GObject * object, guint prop_id, GValue * value,
|
gst_play_bin_get_property (GObject * object, guint prop_id, GValue * value,
|
||||||
GParamSpec * pspec)
|
GParamSpec * pspec)
|
||||||
{
|
{
|
||||||
GstPlayBin *playbin;
|
GstPlayBin *playbin = GST_PLAY_BIN (object);
|
||||||
|
|
||||||
playbin = GST_PLAY_BIN (object);
|
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_URI:
|
case PROP_URI:
|
||||||
|
|
Loading…
Reference in a new issue