[Bug 770469] aacparse converts mpeg2 aac to mpeg4 aac unconditionally

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Sep 5 16:32:46 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=770469

Vincent Penquerc'h <vincent.penquerch at collabora.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vincent.penquerch at collabora
                   |                            |.co.uk

--- Comment #1 from Vincent Penquerc'h <vincent.penquerch at collabora.co.uk> ---
This is very confusing.

Discoverer says:

  container: MPEG-2 Transport Stream
    audio: MPEG-2 AAC
      audio: MPEG-4 AAC
    video: H.264

Properties:
  Duration: 0:00:12.589853592
  Seekable: yes
  Tags: 
      audio codec: MPEG-2 AAC
      video codec: H.264


So it's MPEG-4 AAC inside MPEG-2. 

https://wiki.multimedia.cx/index.php?title=ADTS says bit 0x8 in the second byte
should be 1 for MPEG-2 AAC, and 0 for MPEG-4 AAC. It happens to be 0 here,
pointing to MPEG-4. This is also what the discoverer uses to detect 2 and 4.

Now, the caps saying mpegversion=2 are set by tsdemux, not by aacparse nor the
discoverer. tsdemux.c:1575 sets it to 2 unconditionally, without caring for
that 0x8 bit. So I think it's tsdemux that's wrong here, and the audio really
is MPEG-4, despite being in MPEG-2. There doesn't seem to be obvious access to
the data to check bit 0x8 where this is done in tsdemux, I'll have to
investigate how to get at it.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list