mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
r210enc.c: Simplify and never store more than 10 bits.
The r10k and avrp decoders would previously store 12 bit precision for the blue channel, which is inconsistent and probably not a desirable behaviour. Now the 2 unused extra bits are set to 0. This is possibly not ideal either as RGBA1010102 format has the same layout but stores alpha in these bits, thus explicitly setting them to 1 might be preferable. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
This commit is contained in:
parent
56e432b27b
commit
035180901d
@ -58,11 +58,11 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
||||
uint32_t pixel;
|
||||
uint16_t r = *src++ >> 6;
|
||||
uint16_t g = *src++ >> 6;
|
||||
uint16_t b = *src++ >> 4;
|
||||
uint16_t b = *src++ >> 6;
|
||||
if (avctx->codec_id == AV_CODEC_ID_R210)
|
||||
pixel = (r << 20) | (g << 10) | b >> 2;
|
||||
pixel = (r << 20) | (g << 10) | b;
|
||||
else
|
||||
pixel = (r << 22) | (g << 12) | b;
|
||||
pixel = (r << 22) | (g << 12) | (b << 2);
|
||||
if (avctx->codec_id == AV_CODEC_ID_AVRP)
|
||||
bytestream_put_le32(&dst, pixel);
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user