summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjep <jep@2b0047a9-a6d8-0310-accf-f7200b2a168c>2014-10-09 16:42:36 +0000
committerjep <jep@2b0047a9-a6d8-0310-accf-f7200b2a168c>2014-10-09 16:42:36 +0000
commit769b7b0c05c0f1e859b60796f1b0de866ab8edd4 (patch)
treeb0af892fe88ebb37bea3629b42412b74c98e2429
parenta0a817ee6afa62f00f90c048920e822c0e54bdf7 (diff)
* src/mp3-c.c: (III_huffman_decode):
Fixes a noise issue in a MPEG 2.5 clip. git-svn-id: https://core.fluendo.com/gstreamer/svn/trunk/gst-fluendo-mp3@2632 2b0047a9-a6d8-0310-accf-f7200b2a168c
-rw-r--r--ChangeLog5
-rw-r--r--src/mp3-c.c23
2 files changed, 15 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 9c138be..cd3e8ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-10-09 Josep Torra <josep@fluendo.com>
+
+ * src/mp3-c.c: (III_huffman_decode):
+ Fixes a noise issue in a MPEG 2.5 clip.
+
2014-09-18 Josep Torra <josep@fluendo.com>
* configure.ac: drop missed reference to liboil.
diff --git a/src/mp3-c.c b/src/mp3-c.c
index 2e9131d..b4dc6b6 100644
--- a/src/mp3-c.c
+++ b/src/mp3-c.c
@@ -552,21 +552,18 @@ III_huffman_decode (gint is[SBLIMIT][SSLIMIT], III_side_info_t * si,
sfreq = sfb_offset[fr_ps->header.version] + fr_ps->header.srate_idx;
/* Find region boundary for short block case. */
- if (!gi->window_switching_flag || (gi->block_type != 2 &&
- !(fr_ps->header.version == MPEG_VERSION_2_5))) {
- region1Start = sfBandIndex[sfreq].l[gi->region0_count + 1]; /* MI */
- region2Start = sfBandIndex[sfreq].l[gi->region0_count + gi->region1_count + 2]; /* MI */
- } else { /* Find region boundary for long block case. */
- if (gi->block_type == 2) {
- if (fr_ps->header.version == MPEG_VERSION_2_5) {
- region1Start = 72; /* sfb[9/3]*3=36 */
- } else {
- region1Start = 36; /* sfb[9/3]*3=36 */
- }
- } else {
- region1Start = 108; /* sfb[9/3]*3=36 */
+ if ((gi->window_switching_flag) && (gi->block_type == 2)) {
+ /* Region2. */
+ if (fr_ps->header.version == MPEG_VERSION_2_5
+ && fr_ps->header.srate_idx == 2) {
+ region1Start = 72;
+ } else {
+ region1Start = 36; /* sfb[9/3]*3=36 */
}
region2Start = 576; /* No Region2 for short block case. */
+ } else { /* Find region boundary for long block case. */
+ region1Start = sfBandIndex[sfreq].l[gi->region0_count + 1]; /* MI */
+ region2Start = sfBandIndex[sfreq].l[gi->region0_count + gi->region1_count + 2]; /* MI */
}
/* Read bigvalues area. */