annotate libfaad2/drm_dec.h @ 31597:1eb8dc8f96fa

Make subdelay handling work the same way for all subtitle types and also allow changing subtitle delay to work better with vobsubs. This probably breaks vobsub behaviour with timestamp wrapping though.
author reimar
date Sat, 10 Jul 2010 12:53:05 +0000
parents e83eef58b30a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
1 /*
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
3 ** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
4 **
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
5 ** This program is free software; you can redistribute it and/or modify
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
6 ** it under the terms of the GNU General Public License as published by
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
7 ** the Free Software Foundation; either version 2 of the License, or
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
8 ** (at your option) any later version.
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
9 **
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
10 ** This program is distributed in the hope that it will be useful,
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
13 ** GNU General Public License for more details.
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
14 **
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
15 ** You should have received a copy of the GNU General Public License
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
16 ** along with this program; if not, write to the Free Software
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
18 **
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
19 ** Any non-GPL usage of this software or parts of this software is strictly
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
20 ** forbidden.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
21 **
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
22 ** Commercial non-GPL licensing of this software is possible.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
24 **
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
25 ** $Id$
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
26 **/
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
27
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
28 #ifndef __DRM_DEC_H__
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
29 #define __DRM_DEC_H__
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
30
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
31 #ifdef __cplusplus
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
32 extern "C" {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
33 #endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
34
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
35 #include "bits.h"
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
36
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
37 #define DRM_PARAMETRIC_STEREO 0
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
38 #define DRM_NUM_SA_BANDS 8
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
39 #define DRM_NUM_PAN_BANDS 20
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
40 #define NUM_OF_LINKS 3
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
41 #define NUM_OF_QMF_CHANNELS 64
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
42 #define NUM_OF_SUBSAMPLES 30
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
43 #define MAX_SA_BAND 46
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
44 #define MAX_PAN_BAND 64
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
45 #define MAX_DELAY 5
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
46
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
47 typedef struct
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
48 {
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
49 uint8_t drm_ps_data_available;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
50 uint8_t bs_enable_sa;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
51 uint8_t bs_enable_pan;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
52
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
53 uint8_t bs_sa_dt_flag;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
54 uint8_t bs_pan_dt_flag;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
55
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
56 uint8_t g_last_had_sa;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
57 uint8_t g_last_had_pan;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
58
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
59 int8_t bs_sa_data[DRM_NUM_SA_BANDS];
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
60 int8_t bs_pan_data[DRM_NUM_PAN_BANDS];
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
61
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
62 int8_t g_sa_index[DRM_NUM_SA_BANDS];
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
63 int8_t g_pan_index[DRM_NUM_PAN_BANDS];
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
64 int8_t g_prev_sa_index[DRM_NUM_SA_BANDS];
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
65 int8_t g_prev_pan_index[DRM_NUM_PAN_BANDS];
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
66
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
67 int8_t sa_decode_error;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
68 int8_t pan_decode_error;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
69
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
70 int8_t g_last_good_sa_index[DRM_NUM_SA_BANDS];
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
71 int8_t g_last_good_pan_index[DRM_NUM_PAN_BANDS];
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
72
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
73 qmf_t SA[NUM_OF_SUBSAMPLES][MAX_SA_BAND];
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
74
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
75 complex_t d_buff[2][MAX_SA_BAND];
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
76 complex_t d2_buff[NUM_OF_LINKS][MAX_DELAY][MAX_SA_BAND];
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
77
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
78 uint8_t delay_buf_index_ser[NUM_OF_LINKS];
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
79
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
80 real_t prev_nrg[MAX_SA_BAND];
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
81 real_t prev_peakdiff[MAX_SA_BAND];
29264
e83eef58b30a Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents: 18141
diff changeset
82 real_t peakdecay_fast[MAX_SA_BAND];
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
83 } drm_ps_info;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
84
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
85
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
86 uint16_t drm_ps_data(drm_ps_info *ps, bitfile *ld);
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
87
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
88 drm_ps_info *drm_ps_init(void);
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
89 void drm_ps_free(drm_ps_info *ps);
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
90
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
91 uint8_t drm_ps_decode(drm_ps_info *ps, uint8_t guess, uint32_t samplerate, qmf_t X_left[38][64], qmf_t X_right[38][64]);
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
92
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
93 #ifdef __cplusplus
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
94 }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
95 #endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
96 #endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents:
diff changeset
97