summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/common.h40
1 files changed, 38 insertions, 2 deletions
diff --git a/libavcodec/common.h b/libavcodec/common.h
index 8e5265c565..786f83248f 100644
--- a/libavcodec/common.h
+++ b/libavcodec/common.h
@@ -13,6 +13,7 @@
//#define ALT_BITSTREAM_READER
//#define ALIGNED_BITSTREAM
#define FAST_GET_FIRST_VLC
+//#define DUMP_STREAM // only works with the ALT_BITSTREAM_READER
#ifdef HAVE_AV_CONFIG_H
/* only include the following when compiling package */
@@ -243,7 +244,7 @@ static inline void put_bits(PutBitContext *s, int n, unsigned int value)
#endif
// printf("put_bits=%d %x\n", n, value);
assert(n == 32 || value < (1U << n));
-
+
bit_buf = s->bit_buf;
bit_left = s->bit_left;
@@ -469,7 +470,13 @@ static inline unsigned int get_bits(GetBitContext *s, int n){
result>>= 32 - n;
index+= n;
s->index= index;
-
+#ifdef DUMP_STREAM
+ while(n){
+ printf("%d", (result>>(n-1))&1);
+ n--;
+ }
+ printf(" ");
+#endif
return result;
#endif //!ALIGNED_BITSTREAM
#else //ALT_BITSTREAM_READER
@@ -496,6 +503,9 @@ static inline unsigned int get_bits1(GetBitContext *s){
index++;
s->index= index;
+#ifdef DUMP_STREAM
+ printf("%d ", result);
+#endif
return result;
#else
if(s->bit_cnt>0){
@@ -593,6 +603,14 @@ static inline int show_aligned_bits(GetBitContext *s, int offset, int n)
static inline void skip_bits(GetBitContext *s, int n){
#ifdef ALT_BITSTREAM_READER
s->index+= n;
+#ifdef DUMP_STREAM
+ {
+ int result;
+ s->index-= n;
+ result= get_bits(s, n);
+ }
+#endif
+
#else
if(s->bit_cnt>=n){
/* most common case here */
@@ -610,6 +628,10 @@ static inline void skip_bits(GetBitContext *s, int n){
static inline void skip_bits1(GetBitContext *s){
#ifdef ALT_BITSTREAM_READER
s->index++;
+#ifdef DUMP_STREAM
+ s->index--;
+ printf("%d ", get_bits1(s));
+#endif
#else
if(s->bit_cnt>0){
/* most common case here */
@@ -735,6 +757,13 @@ static inline int get_vlc(GetBitContext *s, VLC *vlc)
if (n > 0) {
/* most common case (90%)*/
FLUSH_BITS(n);
+#ifdef DUMP_STREAM
+ {
+ int n= bit_cnt - s->index;
+ skip_bits(s, n);
+ RESTORE_BITS(s);
+ }
+#endif
RESTORE_BITS(s);
return code;
} else if (n == 0) {
@@ -769,6 +798,13 @@ static inline int get_vlc(GetBitContext *s, VLC *vlc)
table_bits = vlc->table_bits + code;
}
}
+#ifdef DUMP_STREAM
+ {
+ int n= bit_cnt - s->index;
+ skip_bits(s, n);
+ RESTORE_BITS(s);
+ }
+#endif
RESTORE_BITS(s);
return code;
}