[FFmpeg-devel] add MJPEG support into RTP output
Martin Storsjö
martin
Thu Apr 8 17:35:38 CEST 2010
On Thu, 8 Apr 2010, Nash Tsai wrote:
> I was wrong, the code was only handling little endian case, but the
> JPEGHdr struct doesn't need to worry about endian-ness as the handling
> of the network byte order should be taken before sending it off to the
> network, I may write it as following:
The field placement actually seems to be constant across some
architectures in this case, but that cannot be relied upon. If you
would have had bitfields with a size less than a byte, they would have
been laid out differently on different architectures.
> if (htonl(offset) != offset)
> jpghdr.off = htonl(offset) >> 8; /* we only interested in least
> significant 3 octets here */
> else
> jpghdr.off = offset;
This is just horribly obfuscated. As far as I'm concerned, any patch doing
things this way is rejected.
Just declare a uint8_t hdr[8] and write each field manually into the
correct place of the buffer. For writing the offset you can use e.g.:
AV_WB24(&hdr[1], offset);
That's simple, clear and doesn't have any lurking portability issues.
// Martin
More information about the ffmpeg-devel
mailing list