mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 01:00:37 +00:00
aacparse: Fix busyloop when seeking. Fixes #575388
The problem is that after a discont, set_min_frame_size(1024) is called when detect_stream returns FALSE. However, detect_stream calls check_adts_frame which sets the frame size on its own to something larger than 1024. This is the same situation as in the beginning, so the base class ends up calling check_valid_frame in an endless loop.
This commit is contained in:
parent
3f90e6ff13
commit
83016fa9dc
1 changed files with 0 additions and 5 deletions
|
@ -607,11 +607,6 @@ gst_aacparse_check_valid_frame (GstBaseParse * parse,
|
||||||
ret = gst_aacparse_detect_stream (aacparse, data, GST_BUFFER_SIZE (buffer),
|
ret = gst_aacparse_detect_stream (aacparse, data, GST_BUFFER_SIZE (buffer),
|
||||||
framesize, skipsize);
|
framesize, skipsize);
|
||||||
|
|
||||||
if (!ret) {
|
|
||||||
GST_DEBUG ("buffer didn't contain valid frame, skip = %d", *skipsize);
|
|
||||||
gst_base_parse_set_min_frame_size (GST_BASE_PARSE (aacparse), 1024);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (aacparse->header_type == DSPAAC_HEADER_ADTS) {
|
} else if (aacparse->header_type == DSPAAC_HEADER_ADTS) {
|
||||||
guint needed_data = 1024;
|
guint needed_data = 1024;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue