Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Sebastian Dröge
gst-plugins-base
Commits
2727ca01
Commit
2727ca01
authored
Aug 18, 2015
by
Sebastian Dröge
🍵
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "decodebin: Handle the preroll multi-queue size"
This reverts commit
5c8ef0ea
.
parent
4fe43571
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
38 deletions
+6
-38
gst/playback/gstdecodebin2.c
gst/playback/gstdecodebin2.c
+6
-38
No files found.
gst/playback/gstdecodebin2.c
View file @
2727ca01
...
...
@@ -186,8 +186,6 @@ struct _GstDecodeBin
GList
*
filtered_errors
;
/* filtered error messages */
GList
*
buffering_status
;
/* element currently buffering messages */
gboolean
extra_buffer_required
;
/* whether to controll queue size or not */
};
struct
_GstDecodeBinClass
...
...
@@ -255,7 +253,6 @@ enum
#define DEFAULT_POST_STREAM_TOPOLOGY FALSE
#define DEFAULT_EXPOSE_ALL_STREAMS TRUE
#define DEFAULT_CONNECTION_SPEED 0
#define DEFAULT_EXTRA_SIZE_BUFFERS_BYTES 8 * 1024 * 1024
/* 8 MB */
/* Properties */
enum
...
...
@@ -1102,8 +1099,6 @@ gst_decode_bin_init (GstDecodeBin * decode_bin)
decode_bin
->
expose_allstreams
=
DEFAULT_EXPOSE_ALL_STREAMS
;
decode_bin
->
connection_speed
=
DEFAULT_CONNECTION_SPEED
;
decode_bin
->
extra_buffer_required
=
FALSE
;
}
static
void
...
...
@@ -3051,7 +3046,6 @@ no_more_pads_cb (GstElement * element, GstDecodeChain * chain)
GST_DEBUG_OBJECT
(
element
,
"Setting group %p to complete"
,
group
);
group
->
no_more_pads
=
TRUE
;
group
->
dbin
->
extra_buffer_required
=
FALSE
;
/* this group has prerolled enough to not need more pads,
* we can probably set its buffering state to playing now */
GST_DEBUG_OBJECT
(
group
->
dbin
,
"Setting group %p multiqueue to "
...
...
@@ -3487,20 +3481,13 @@ multi_queue_overrun_cb (GstElement * queue, GstDecodeGroup * group)
GST_LOG_OBJECT
(
dbin
,
"multiqueue '%s' (%p) is full"
,
GST_OBJECT_NAME
(
queue
),
queue
);
group
->
overrun
=
TRUE
;
/* this group has prerolled enough to not need more pads,
* we can probably set its buffering state to playing now */
if
(
!
group
->
no_more_pads
&&
group
->
parent
->
demuxer
&&
!
dbin
->
extra_buffer_required
)
{
group
->
overrun
=
FALSE
;
dbin
->
extra_buffer_required
=
TRUE
;
}
else
{
GST_DEBUG_OBJECT
(
group
->
dbin
,
"Setting group %p multiqueue to "
"'playing' buffering mode"
,
group
);
group
->
overrun
=
TRUE
;
dbin
->
extra_buffer_required
=
FALSE
;
decodebin_set_queue_size
(
group
->
dbin
,
group
->
multiqueue
,
FALSE
,
(
group
->
parent
?
group
->
parent
->
seekable
:
TRUE
));
}
/* FIXME: We should make sure that everything gets exposed now
* even if child chains are not complete because the will never
...
...
@@ -3513,19 +3500,9 @@ multi_queue_overrun_cb (GstElement * queue, GstDecodeGroup * group)
if
(
gst_decode_chain_is_complete
(
dbin
->
decode_chain
))
{
if
(
!
gst_decode_bin_expose
(
dbin
))
GST_WARNING_OBJECT
(
dbin
,
"Couldn't expose group"
);
}
else
{
dbin
->
extra_buffer_required
=
TRUE
;
}
}
EXPOSE_UNLOCK
(
dbin
);
if
(
dbin
->
extra_buffer_required
)
{
GST_DEBUG_OBJECT
(
group
->
dbin
,
"Setting group %p multiqueue to "
"'extra_buffer_required' mode"
,
group
);
decodebin_set_queue_size
(
group
->
dbin
,
group
->
multiqueue
,
FALSE
,
(
group
->
parent
?
group
->
parent
->
seekable
:
TRUE
));
}
}
static
void
...
...
@@ -3687,9 +3664,7 @@ decodebin_set_queue_size_full (GstDecodeBin * dbin, GstElement * multiqueue,
guint
max_bytes
,
max_buffers
;
guint64
max_time
;
GST_DEBUG_OBJECT
(
multiqueue
,
"use buffering %d, add extra buffer size mode %d"
,
use_buffering
,
dbin
->
extra_buffer_required
);
GST_DEBUG_OBJECT
(
multiqueue
,
"use buffering %d"
,
use_buffering
);
if
(
preroll
||
use_buffering
)
{
/* takes queue limits, initially we only queue up up to the max bytes limit,
...
...
@@ -3705,12 +3680,6 @@ decodebin_set_queue_size_full (GstDecodeBin * dbin, GstElement * multiqueue,
max_time
=
seekable
?
AUTO_PREROLL_SEEKABLE_SIZE_TIME
:
AUTO_PREROLL_NOT_SEEKABLE_SIZE_TIME
;
}
}
else
if
(
dbin
->
extra_buffer_required
)
{
max_bytes
=
AUTO_PREROLL_SIZE_BYTES
+
DEFAULT_EXTRA_SIZE_BUFFERS_BYTES
;
max_buffers
=
AUTO_PREROLL_SIZE_BUFFERS
;
if
((
max_time
=
dbin
->
max_size_time
)
==
0
)
max_time
=
seekable
?
AUTO_PREROLL_SEEKABLE_SIZE_TIME
:
AUTO_PREROLL_NOT_SEEKABLE_SIZE_TIME
;
}
else
{
/* update runtime limits. At runtime, we try to keep the amount of buffers
* in the queues as low as possible (but at least 5 buffers). */
...
...
@@ -5201,7 +5170,6 @@ gst_decode_bin_change_state (GstElement * element, GstStateChange transition)
g_list_free_full
(
dbin
->
buffering_status
,
(
GDestroyNotify
)
gst_message_unref
);
dbin
->
buffering_status
=
NULL
;
dbin
->
extra_buffer_required
=
FALSE
;
break
;
case
GST_STATE_CHANGE_READY_TO_NULL
:
default:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment