One-bit bitfields should probably be unsigned. Unfortunately, it is left
authorErik Hovland <erik@hovland.org>
Tue, 8 Jul 2008 23:20:22 +0000 (23:20 +0000)
committerPanagiotis Issaris <takis.issaris@uhasselt.be>
Tue, 8 Jul 2008 23:20:22 +0000 (23:20 +0000)
up to the compiler on how one bit fields are treated. gcc treats one-bit
bitfields as signed and allows for the -funsigned-field parameter. Other
compilers (like Sun C) treat one-bit bitfields as unsigned no matter what.
Patch by Erik Hovland erik hovland org

Originally committed as revision 14131 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavdevice/audio.c
libavformat/avformat.h
libavformat/mpegts.c

index 4fcd3af..172c5f1 100644 (file)
@@ -47,7 +47,7 @@ typedef struct {
     int channels;
     int frame_size; /* in bytes ! */
     int codec_id;
-    int flip_left : 1;
+    unsigned int flip_left : 1;
     uint8_t buffer[AUDIO_BLOCK_SIZE];
     int buffer_ptr;
 } AudioData;
index af93b7c..93ed4ae 100644 (file)
@@ -160,13 +160,13 @@ typedef struct AVFormatParameters {
     enum PixelFormat pix_fmt;
     int channel; /**< used to select dv channel */
     const char *standard; /**< tv standard, NTSC, PAL, SECAM */
-    int mpeg2ts_raw:1;  /**< force raw MPEG2 transport stream output, if possible */
-    int mpeg2ts_compute_pcr:1; /**< compute exact PCR for each transport
-                                  stream packet (only meaningful if
-                                  mpeg2ts_raw is TRUE) */
-    int initial_pause:1;       /**< do not begin to play the stream
-                                  immediately (RTSP only) */
-    int prealloced_context:1;
+    unsigned int mpeg2ts_raw:1;  /**< force raw MPEG2 transport stream output, if possible */
+    unsigned int mpeg2ts_compute_pcr:1; /**< compute exact PCR for each transport
+                                            stream packet (only meaningful if
+                                            mpeg2ts_raw is TRUE) */
+    unsigned int initial_pause:1;       /**< do not begin to play the stream
+                                            immediately (RTSP only) */
+    unsigned int prealloced_context:1;
 #if LIBAVFORMAT_VERSION_INT < (53<<16)
     enum CodecID video_codec_id;
     enum CodecID audio_codec_id;
index 6f36e0a..a10f5dc 100644 (file)
@@ -63,8 +63,8 @@ typedef struct MpegTSSectionFilter {
     int section_index;
     int section_h_size;
     uint8_t *section_buf;
-    int check_crc:1;
-    int end_of_section_reached:1;
+    unsigned int check_crc:1;
+    unsigned int end_of_section_reached:1;
     SectionCallback *section_cb;
     void *opaque;
 } MpegTSSectionFilter;