|
|
|
@ -728,10 +728,10 @@ static int avi_write_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|
|
} else |
|
|
|
|
reshuffle_ret = 0; |
|
|
|
|
if (par->format == AV_PIX_FMT_PAL8) { |
|
|
|
|
int ret2 = ff_get_packet_palette(s, opkt, reshuffle_ret, avist->palette); |
|
|
|
|
if (ret2 < 0) |
|
|
|
|
return ret2; |
|
|
|
|
if (ret2) { |
|
|
|
|
ret = ff_get_packet_palette(s, opkt, reshuffle_ret, avist->palette); |
|
|
|
|
if (ret < 0) |
|
|
|
|
goto fail; |
|
|
|
|
if (ret) { |
|
|
|
|
int pal_size = 1 << par->bits_per_coded_sample; |
|
|
|
|
int pc_tag, i; |
|
|
|
|
|
|
|
|
@ -763,7 +763,7 @@ static int avi_write_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|
|
ret = avi_add_ientry(s, stream_index, tag, AVIIF_NO_TIME, |
|
|
|
|
pal_size * 4 + 4); |
|
|
|
|
if (ret < 0) |
|
|
|
|
return ret; |
|
|
|
|
goto fail; |
|
|
|
|
} |
|
|
|
|
pc_tag = ff_start_tag(pb, tag); |
|
|
|
|
avio_w8(pb, 0); |
|
|
|
@ -780,7 +780,10 @@ static int avi_write_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|
|
} |
|
|
|
|
if (reshuffle_ret) { |
|
|
|
|
ret = avi_write_packet_internal(s, pkt); |
|
|
|
|
av_packet_free(&pkt); |
|
|
|
|
|
|
|
|
|
fail: |
|
|
|
|
if (reshuffle_ret) |
|
|
|
|
av_packet_free(&pkt); |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|