huffyuv encoding fixed
Originally committed as revision 1647 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
b559b29b1f
commit
952c69c479
@ -174,6 +174,9 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
|||||||
st->codec.extradata_size= size - 10*4;
|
st->codec.extradata_size= size - 10*4;
|
||||||
st->codec.extradata= av_malloc(st->codec.extradata_size); //FIXME where should we free this?
|
st->codec.extradata= av_malloc(st->codec.extradata_size); //FIXME where should we free this?
|
||||||
get_buffer(pb, st->codec.extradata, st->codec.extradata_size);
|
get_buffer(pb, st->codec.extradata, st->codec.extradata_size);
|
||||||
|
|
||||||
|
if(st->codec.extradata_size & 1) //FIXME check if the encoder really did this correctly
|
||||||
|
get_byte(pb);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
print_tag("video", tag1, 0);
|
print_tag("video", tag1, 0);
|
||||||
|
@ -129,11 +129,12 @@ unsigned int codec_get_bmp_tag(int id)
|
|||||||
/* BITMAPINFOHEADER header */
|
/* BITMAPINFOHEADER header */
|
||||||
void put_bmp_header(ByteIOContext *pb, AVCodecContext *enc, const CodecTag *tags, int for_asf)
|
void put_bmp_header(ByteIOContext *pb, AVCodecContext *enc, const CodecTag *tags, int for_asf)
|
||||||
{
|
{
|
||||||
put_le32(pb, 40); /* size */
|
put_le32(pb, 40 + enc->extradata_size); /* size */
|
||||||
put_le32(pb, enc->width);
|
put_le32(pb, enc->width);
|
||||||
put_le32(pb, enc->height);
|
put_le32(pb, enc->height);
|
||||||
put_le16(pb, 1); /* planes */
|
put_le16(pb, 1); /* planes */
|
||||||
put_le16(pb, 24); /* depth */
|
|
||||||
|
put_le16(pb, enc->bits_per_sample ? enc->bits_per_sample : 24); /* depth */
|
||||||
/* compression type */
|
/* compression type */
|
||||||
put_le32(pb, for_asf ? codec_get_asf_tag(tags, enc->codec_id) : codec_get_tag(tags, enc->codec_id));
|
put_le32(pb, for_asf ? codec_get_asf_tag(tags, enc->codec_id) : codec_get_tag(tags, enc->codec_id));
|
||||||
put_le32(pb, enc->width * enc->height * 3);
|
put_le32(pb, enc->width * enc->height * 3);
|
||||||
@ -141,6 +142,11 @@ void put_bmp_header(ByteIOContext *pb, AVCodecContext *enc, const CodecTag *tags
|
|||||||
put_le32(pb, 0);
|
put_le32(pb, 0);
|
||||||
put_le32(pb, 0);
|
put_le32(pb, 0);
|
||||||
put_le32(pb, 0);
|
put_le32(pb, 0);
|
||||||
|
|
||||||
|
put_buffer(pb, enc->extradata, enc->extradata_size);
|
||||||
|
|
||||||
|
if (enc->extradata_size & 1)
|
||||||
|
put_byte(pb, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void parse_specific_params(AVCodecContext *stream, int *au_byterate, int *au_ssize, int *au_scale)
|
static void parse_specific_params(AVCodecContext *stream, int *au_byterate, int *au_ssize, int *au_scale)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user