From c2d2e2bb4dd925bb4f7bf0ecfc64a99013f76471 Mon Sep 17 00:00:00 2001 From: Alexis Ballier Date: Sun, 27 Sep 2009 12:31:38 +0200 Subject: [PATCH] v4l: attempt to fix strict aliasing warnings. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémi Denis-Courmont --- modules/access/v4l.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/access/v4l.c b/modules/access/v4l.c index e72feb756f..2edf250320 100644 --- a/modules/access/v4l.c +++ b/modules/access/v4l.c @@ -837,7 +837,7 @@ static int OpenVideoDev( demux_t *p_demux, char *psz_device ) * or height */ if( p_sys->b_mjpeg ) { - struct quicktime_mjpeg_app1 *p_app1; + struct quicktime_mjpeg_app1 p_app1; int32_t i_offset; if( ioctl( i_fd, MJPIOC_G_PARAMS, &mjpeg ) < 0 ) @@ -859,12 +859,11 @@ static int OpenVideoDev( demux_t *p_demux, char *psz_device ) mjpeg.APP_len = 40; /* aligned */ - p_app1 = (struct quicktime_mjpeg_app1 *)mjpeg.APP_data; - p_app1->i_reserved = 0; - p_app1->i_tag = VLC_FOURCC( 'm','j','p','g' ); - p_app1->i_field_size = 0; - p_app1->i_padded_field_size = 0; - p_app1->i_next_field = 0; + p_app1.i_reserved = 0; + p_app1.i_tag = VLC_FOURCC( 'm','j','p','g' ); + p_app1.i_field_size = 0; + p_app1.i_padded_field_size = 0; + p_app1.i_next_field = 0; /* XXX WARNING XXX */ /* these's nothing magic about these values. We are dangerously * assuming the encoder card is encoding mjpeg-a and is not throwing @@ -876,15 +875,16 @@ static int OpenVideoDev( demux_t *p_demux, char *psz_device ) * does conform to standards outside of Apple Quicktime. */ i_offset = 0x2e; - p_app1->i_DQT_offset = hton32( i_offset ); + p_app1.i_DQT_offset = hton32( i_offset ); i_offset = 0xb4; - p_app1->i_DHT_offset = hton32( i_offset ); + p_app1.i_DHT_offset = hton32( i_offset ); i_offset = 0x258; - p_app1->i_SOF_offset = hton32( i_offset ); + p_app1.i_SOF_offset = hton32( i_offset ); i_offset = 0x26b; - p_app1->i_SOS_offset = hton32( i_offset ); + p_app1.i_SOS_offset = hton32( i_offset ); i_offset = 0x279; - p_app1->i_data_offset = hton32( i_offset ); + p_app1.i_data_offset = hton32( i_offset ); + memcpy(mjpeg.APP_data, &p_app1, sizeof(struct quicktime_mjpeg_app1)); /* SOF and SOS aren't specified by the mjpeg API because they aren't * optional. They will be present in the output. */ -- 2.39.2