Ticket #237: nuv_be.diff

File nuv_be.diff, 2.3 KB (added by reimar, 21 years ago)

Possible fix, needs testing

  • libmpdemux/demux_nuv.c

    RCS file: /cvsroot/mplayer/main/libmpdemux/demux_nuv.c,v
    retrieving revision 1.11
    diff -u -r1.11 demux_nuv.c
     
    6969                {       
    7070                        if (stream_read ( demuxer->stream, (char*)& rtjpeg_frameheader, sizeof ( rtjpeg_frameheader ) ) < sizeof(rtjpeg_frameheader))
    7171                                return; /* EOF */
     72                        le2me_frameheader(&rtjpeg_frameheader);
    7273
    7374                        if ( rtjpeg_frameheader.frametype == 'V' )
    7475                        {
     
    145146        demuxer->filepos = orig_pos = stream_tell ( demuxer->stream );
    146147        if (stream_read ( demuxer->stream, (char*)& rtjpeg_frameheader, sizeof ( rtjpeg_frameheader ) ) < sizeof(rtjpeg_frameheader))
    147148            return 0; /* EOF */
     149        le2me_frameheader(&rtjpeg_frameheader);
    148150
    149151#if 0
    150152        printf("NUV frame: frametype: %c, comptype: %c, packetlength: %d\n",
     
    218220        stream_seek(demuxer->stream, 0);
    219221
    220222        stream_read ( demuxer->stream, (char*)& rtjpeg_fileheader, sizeof(rtjpeg_fileheader) );
     223        le2me_fileheader(&rtjpeg_fileheader);
    221224
    222225        /* no video */
    223226        if (rtjpeg_fileheader.videoblocks == 0)
  • libmpdemux/nuppelvideo.h

    RCS file: /cvsroot/mplayer/main/libmpdemux/nuppelvideo.h,v
    retrieving revision 1.1
    diff -u -r1.1 nuppelvideo.h
     
    9090    unsigned char *buffer_offset;
    9191} audbuffertyp;
    9292
     93#ifdef WORDS_BIGENDIAN
     94#define le2me_rtfileheader(h) {                                 \
     95    (h)->width = le2me_32((h)->width);                          \
     96    (h)->height = le2me_32((h)->height);                        \
     97    (h)->desiredwidth = le2me_32((h)->desiredwidth);            \
     98    (h)->desiredheight = le2me_32((h)->desiredheight);          \
     99    (h)->videoblocks = le2me_32((h)->videoblocks);              \
     100    (h)->audioblocks = le2me_32((h)->audioblocks);              \
     101    (h)->textsblocks = le2me_32((h)->textsblocks);              \
     102    (h)->keyframedist = le2me_32((h)->keyframedist);            \
     103  }
     104#define le2me_rtframeheader(h) {                                \
     105    (h)->timecode = le2me_32((h)->timecode);                    \
     106    (h)->packetlength = le2me_32((h)->packetlength);            \
     107  }
     108#else
     109#define le2me_rtfileheader(h) /**/
     110#define le2me_rtframeheader(h) /**/
     111#endif
     112