forked from pool/libdv
- Add -Wno-incompatible-pointer-types to CFLAGS to enable building for 32bit with GCC 14. If the request is ok, please forward it to factory soon so that it is ready when the default compiler is switched. OBS-URL: https://build.opensuse.org/request/show/1190993 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libdv?expand=0&rev=27
72 lines
2.5 KiB
Diff
72 lines
2.5 KiB
Diff
--- libdv-1.0.0.orig/libdv/bitstream.h
|
|
+++ libdv-1.0.0/libdv/bitstream.h
|
|
@@ -42,16 +42,6 @@
|
|
extern "C" {
|
|
#endif
|
|
|
|
-//My new and improved vego-matic endian swapping routine
|
|
-//(stolen from the kernel)
|
|
-#if (BYTE_ORDER == BIG_ENDIAN)
|
|
-#define swab32(x) (x)
|
|
-#else // LITTLE_ENDIAN
|
|
-# define swab32(x)\
|
|
-((((uint8_t*)&x)[0] << 24) | (((uint8_t*)&x)[1] << 16) | \
|
|
- (((uint8_t*)&x)[2] << 8) | (((uint8_t*)&x)[3]))
|
|
-#endif // LITTLE_ENDIAN
|
|
-
|
|
bitstream_t *_dv_bitstream_init();
|
|
void _dv_bitstream_set_fill_func(bitstream_t *bs,uint32_t (*next_function) (uint8_t **,void *),void *priv);
|
|
void _dv_bitstream_next_buffer(bitstream_t * bs);
|
|
@@ -66,7 +56,7 @@ static void bitstream_next_word(bitstrea
|
|
|
|
if ((bs->buflen - bs->bufoffset) >=4 ) {
|
|
bs->next_word = *(uint32_t *)(bs->buf + bs->bufoffset);
|
|
- bs->next_word = swab32(bs->next_word);
|
|
+ bs->next_word = htobe32(bs->next_word);
|
|
bs->next_bits = 32;
|
|
// fprintf(stderr,"next_word is %08x at %d\n",bs->next_word,bs->bufoffset);
|
|
bs->bufoffset += 4;
|
|
@@ -195,10 +185,10 @@ static inline void bitstream_flush_large
|
|
static inline void bitstream_seek_set(bitstream_t *bs, uint32_t offset) {
|
|
bs->bufoffset = ((offset & (~0x1f)) >> 5) << 2;
|
|
bs->current_word = *(uint32_t *)(bs->buf + bs->bufoffset);
|
|
- bs->current_word = swab32(bs->current_word);
|
|
+ bs->current_word = htobe32(bs->current_word);
|
|
bs->bufoffset += 4;
|
|
bs->next_word = *(uint32_t *)(bs->buf + bs->bufoffset);
|
|
- bs->next_word = swab32(bs->next_word);
|
|
+ bs->next_word = htobe32(bs->next_word);
|
|
bs->bufoffset += 4;
|
|
bs->bits_left = 32 - (offset & 0x1f);
|
|
bs->next_bits = 32;
|
|
--- libdv-1.0.0.orig/libdv/YUY2.c
|
|
+++ libdv-1.0.0/libdv/YUY2.c
|
|
@@ -275,7 +275,7 @@ dv_mb420_YUY2 (dv_macroblock_t *mb, uint
|
|
cb_frame++;
|
|
cr_frame++;
|
|
|
|
-#if (BYTE_ORDER == LITTLE_ENDIAN)
|
|
+#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
|
|
*pwyuv0++ = ylut[CLAMP(*(Ytmp0 + 0), -256, 511)];
|
|
*pwyuv0++ = cb;
|
|
*pwyuv0++ = ylut[CLAMP(*(Ytmp0 + 1), -256, 511)];
|
|
--- libdv-1.0.0.orig/libdv/dv_types.h
|
|
+++ libdv-1.0.0/libdv/dv_types.h
|
|
@@ -253,11 +253,13 @@ typedef struct {
|
|
counter examples. If we do find out there is one, we'll have to
|
|
fix it... */
|
|
|
|
-#if (BYTE_ORDER == LITTLE_ENDIAN)
|
|
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
|
#define LITTLE_ENDIAN_BITFIELD
|
|
-#else
|
|
+#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
|
#define BIG_ENDIAN_BITFIELD
|
|
-#endif /* (BYTE_ORDER == LITTLE_ENDIAN) */
|
|
+#else
|
|
+#error "cannot determine endianness"
|
|
+#endif
|
|
|
|
typedef struct {
|
|
#if defined(LITTLE_ENDIAN_BITFIELD)
|