After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 738584 - aacparse: ADTS/LOAS parsing issue when incoming live data starts in the middle of a frame
aacparse: ADTS/LOAS parsing issue when incoming live data starts in the middl...
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.4.3
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-10-15 15:01 UTC by Nicolas Huet
Modified: 2018-11-03 14:55 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
fix ADTS/LOAS parsing issue if format is not detected yet (1.43 KB, patch)
2014-10-15 15:01 UTC, Nicolas Huet
none Details | Review
first data file (52.02 KB, application/octet-stream)
2014-10-15 15:02 UTC, Nicolas Huet
  Details
second data file (27.11 KB, application/octet-stream)
2014-10-15 15:02 UTC, Nicolas Huet
  Details
aacparse: Do not use drain flag for stream detection (4.38 KB, patch)
2015-05-21 08:48 UTC, Branislav Katreniak
none Details | Review

Description Nicolas Huet 2014-10-15 15:01:40 UTC
Created attachment 288604 [details] [review]
fix ADTS/LOAS parsing issue if format is not detected yet

baseparse receives a first buffer with the end of a frame only with a flag SYNC_LOST (with the patch from https://bugzilla.gnome.org/show_bug.cgi?id=738237). The buffer starts with ff f and therefore a frame length is calculated.  aaacparse returns not enough data.
Then baseparse receives a second buffer and the frame is considered as complete.

gst_aac_parse_check_adts_frame returns TRUE as the flag SYNC_LOST is not set. This is not strict enough as there was not a "full SYNC check" with the next frame.

The fix ensures that the aacparse->header_type is already found.

I include 2 files that show the issue and the patch that fix the issue

gst-launch-1.0 -v --gst-debug=aacparse:6 filesrc location= aac.gdp  ! gdpdepay ! aacparse  ! fakesink silent=false
gst-launch-1.0 -v --gst-debug=aacparse:6 filesrc location= aac2.gdp  ! gdpdepay ! aacparse  ! fakesink silent=false

This looks like to be a regression introduced by https://bugzilla.gnome.org/show_bug.cgi?id=657080
Comment 1 Nicolas Huet 2014-10-15 15:02:33 UTC
Created attachment 288605 [details]
first data file
Comment 2 Nicolas Huet 2014-10-15 15:02:59 UTC
Created attachment 288606 [details]
second data file
Comment 3 Branislav Katreniak 2015-05-21 08:48:55 UTC
Created attachment 303729 [details] [review]
aacparse: Do not use drain flag for stream detection

An alternative patch fixing this issue.
Comment 4 GStreamer system administrator 2018-11-03 14:55:10 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/136.