Re: [libav-devel] [PATCH 3/4] bitstream: Properly promote av_reverse values before shifting.

2011-05-10 Thread Måns Rullgård
Aℓex Converse aconve...@google.com writes:

 2011/5/1 Måns Rullgård m...@mansr.com:
 Alex Converse alex.conve...@gmail.com writes:

 On Thu, Apr 28, 2011 at 5:08 AM, Måns Rullgård m...@mansr.com wrote:
 Aℓex Converse aconve...@google.com writes:

 From ae62aa2fca3b2cf45a98dc2f9777065bcb452797 Mon Sep 17 00:00:00 2001
 From: Alex Converse aconve...@google.com
 Date: Tue, 26 Apr 2011 09:08:26 -0700
 Subject: [PATCH 3/4] bitstream: Properly promote av_reverse values before 
 shifting.
 MIME-Version: 1.0
 Content-Type: multipart/mixed; boundary=1

 This is a multi-part message in MIME format.
 --1
 Content-Type: text/plain; charset=UTF-8; format=fixed
 Content-Transfer-Encoding: 8bit

 ---
  libavcodec/bitstream.c |    8 
  1 files changed, 4 insertions(+), 4 deletions(-)

 --1
 Content-Type: text/x-patch; 
 name=0003-bitstream-Properly-promote-av_reverse-values-before-.patch
 Content-Transfer-Encoding: 8bit
 Content-Disposition: attachment; 
 filename=0003-bitstream-Properly-promote-av_reverse-values-before-.patch

 diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c
 index 329ec95..14c3eaa 100644
 --- a/libavcodec/bitstream.c
 +++ b/libavcodec/bitstream.c
 @@ -118,10 +118,10 @@ static int alloc_table(VLC *vlc, int size, int 
 use_static)
  }

  static av_always_inline uint32_t bitswap_32(uint32_t x) {
 -    return av_reverse[x0xFF]24
 -         | av_reverse[(x8)0xFF]16
 -         | av_reverse[(x16)0xFF]8
 -         | av_reverse[x24];
 +    return (uint32_t)av_reverse[x0xFF]24
 +         | (uint32_t)av_reverse[(x8)0xFF]16
 +         | (uint32_t)av_reverse[(x16)0xFF]8
 +         | (uint32_t)av_reverse[x24];
  }

 The integer promotions already do this.


 We are operating on uint8_t and int. The promoted the result is an int
 because the full range of uint8_t can fit in int.

 Patch OK.

 Aside, this should be moved to some generic place.

 What do you mean by this?

The bit-reversing function.

-- 
Måns Rullgård
m...@mansr.com
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH 3/4] bitstream: Properly promote av_reverse values before shifting.

2011-04-28 Thread Måns Rullgård
Aℓex Converse aconve...@google.com writes:

 From ae62aa2fca3b2cf45a98dc2f9777065bcb452797 Mon Sep 17 00:00:00 2001
 From: Alex Converse aconve...@google.com
 Date: Tue, 26 Apr 2011 09:08:26 -0700
 Subject: [PATCH 3/4] bitstream: Properly promote av_reverse values before 
 shifting.
 MIME-Version: 1.0
 Content-Type: multipart/mixed; boundary=1

 This is a multi-part message in MIME format.
 --1
 Content-Type: text/plain; charset=UTF-8; format=fixed
 Content-Transfer-Encoding: 8bit

 ---
  libavcodec/bitstream.c |8 
  1 files changed, 4 insertions(+), 4 deletions(-)

 --1
 Content-Type: text/x-patch; 
 name=0003-bitstream-Properly-promote-av_reverse-values-before-.patch
 Content-Transfer-Encoding: 8bit
 Content-Disposition: attachment; 
 filename=0003-bitstream-Properly-promote-av_reverse-values-before-.patch

 diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c
 index 329ec95..14c3eaa 100644
 --- a/libavcodec/bitstream.c
 +++ b/libavcodec/bitstream.c
 @@ -118,10 +118,10 @@ static int alloc_table(VLC *vlc, int size, int 
 use_static)
  }
  
  static av_always_inline uint32_t bitswap_32(uint32_t x) {
 -return av_reverse[x0xFF]24
 - | av_reverse[(x8)0xFF]16
 - | av_reverse[(x16)0xFF]8
 - | av_reverse[x24];
 +return (uint32_t)av_reverse[x0xFF]24
 + | (uint32_t)av_reverse[(x8)0xFF]16
 + | (uint32_t)av_reverse[(x16)0xFF]8
 + | (uint32_t)av_reverse[x24];
  }

The integer promotions already do this.

-- 
Måns Rullgård
m...@mansr.com
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


Re: [libav-devel] [PATCH 3/4] bitstream: Properly promote av_reverse values before shifting.

2011-04-28 Thread Alex Converse
On Thu, Apr 28, 2011 at 5:08 AM, Måns Rullgård m...@mansr.com wrote:
 Aℓex Converse aconve...@google.com writes:

 From ae62aa2fca3b2cf45a98dc2f9777065bcb452797 Mon Sep 17 00:00:00 2001
 From: Alex Converse aconve...@google.com
 Date: Tue, 26 Apr 2011 09:08:26 -0700
 Subject: [PATCH 3/4] bitstream: Properly promote av_reverse values before 
 shifting.
 MIME-Version: 1.0
 Content-Type: multipart/mixed; boundary=1

 This is a multi-part message in MIME format.
 --1
 Content-Type: text/plain; charset=UTF-8; format=fixed
 Content-Transfer-Encoding: 8bit

 ---
  libavcodec/bitstream.c |    8 
  1 files changed, 4 insertions(+), 4 deletions(-)

 --1
 Content-Type: text/x-patch; 
 name=0003-bitstream-Properly-promote-av_reverse-values-before-.patch
 Content-Transfer-Encoding: 8bit
 Content-Disposition: attachment; 
 filename=0003-bitstream-Properly-promote-av_reverse-values-before-.patch

 diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c
 index 329ec95..14c3eaa 100644
 --- a/libavcodec/bitstream.c
 +++ b/libavcodec/bitstream.c
 @@ -118,10 +118,10 @@ static int alloc_table(VLC *vlc, int size, int 
 use_static)
  }

  static av_always_inline uint32_t bitswap_32(uint32_t x) {
 -    return av_reverse[x0xFF]24
 -         | av_reverse[(x8)0xFF]16
 -         | av_reverse[(x16)0xFF]8
 -         | av_reverse[x24];
 +    return (uint32_t)av_reverse[x0xFF]24
 +         | (uint32_t)av_reverse[(x8)0xFF]16
 +         | (uint32_t)av_reverse[(x16)0xFF]8
 +         | (uint32_t)av_reverse[x24];
  }

 The integer promotions already do this.


We are operating on uint8_t and int. The promoted the result is an int
because the full range of uint8_t can fit in int.

Consider the following program:

#include stdio.h
#include stdint.h

static const uint8_t arr[] = { 128, 129, 130};

int main() {
int x;
typeof(x) y;
printf( int32_t %d\n,
__builtin_types_compatible_p(typeof(arr[1]24),  int32_t));
printf(uint32_t %d\n,
__builtin_types_compatible_p(typeof(arr[1]24), uint32_t));
return 0;
}
___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH 3/4] bitstream: Properly promote av_reverse values before shifting.

2011-04-27 Thread Aℓex Converse

From ae62aa2fca3b2cf45a98dc2f9777065bcb452797 Mon Sep 17 00:00:00 2001
From: Alex Converse aconve...@google.com
Date: Tue, 26 Apr 2011 09:08:26 -0700
Subject: [PATCH 3/4] bitstream: Properly promote av_reverse values before shifting.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=1

This is a multi-part message in MIME format.
--1
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit

---
 libavcodec/bitstream.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)


--1
Content-Type: text/x-patch; name=0003-bitstream-Properly-promote-av_reverse-values-before-.patch
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename=0003-bitstream-Properly-promote-av_reverse-values-before-.patch

diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c
index 329ec95..14c3eaa 100644
--- a/libavcodec/bitstream.c
+++ b/libavcodec/bitstream.c
@@ -118,10 +118,10 @@ static int alloc_table(VLC *vlc, int size, int use_static)
 }
 
 static av_always_inline uint32_t bitswap_32(uint32_t x) {
-return av_reverse[x0xFF]24
- | av_reverse[(x8)0xFF]16
- | av_reverse[(x16)0xFF]8
- | av_reverse[x24];
+return (uint32_t)av_reverse[x0xFF]24
+ | (uint32_t)av_reverse[(x8)0xFF]16
+ | (uint32_t)av_reverse[(x16)0xFF]8
+ | (uint32_t)av_reverse[x24];
 }
 
 typedef struct {

--1--


___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel