On 02/20/2016 03:40 AM, Michael Niedermayer wrote:
On Sat, Feb 20, 2016 at 12:02:15AM +0100, Mats Peterson wrote:
--
Mats Peterson
http://matsp888.no-ip.org/~mats/
riffenc.c | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
63ec167e5794087397c65d3a5002e6bbd7a32caf
0001-lavf-riffenc-Write-space-for-palette.patch
From 41964552559234f19917a6ea40e71f0753a20ede Mon Sep 17 00:00:00 2001
From: Mats Peterson <matsp...@yahoo.com>
Date: Fri, 19 Feb 2016 23:55:25 +0100
Subject: [PATCH v2 1/4] lavf/riffenc: Write space for palette
---
libavformat/riffenc.c | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/libavformat/riffenc.c b/libavformat/riffenc.c
index ceb27f2..c7bad74 100644
--- a/libavformat/riffenc.c
+++ b/libavformat/riffenc.c
@@ -210,6 +210,9 @@ void ff_put_bmp_header(AVIOContext *pb, AVCodecContext *enc,
!memcmp(enc->extradata + enc->extradata_size - 9,
"BottomUp", 9);
int extradata_size = enc->extradata_size - 9*keep_height;
+ if (!enc->extradata_size && enc->bits_per_coded_sample >= 1 &&
enc->bits_per_coded_sample <= 8)
+ extradata_size = 4 * (1 << enc->bits_per_coded_sample);
this should probably be limited to the CODEC_ID_RAWVIDEO case
and also to avi and not asf until it is implemented for asf too
OK, I could add a check for that.
+
/* size */
avio_wl32(pb, 40 + (ignore_extradata ? 0 :extradata_size));
avio_wl32(pb, enc->width);
@@ -228,10 +231,22 @@ void ff_put_bmp_header(AVIOContext *pb, AVCodecContext
*enc,
avio_wl32(pb, 0);
if (!ignore_extradata) {
- avio_write(pb, enc->extradata, extradata_size);
-
- if (!for_asf && extradata_size & 1)
- avio_w8(pb, 0);
+ if (enc->extradata_size) {
+ avio_write(pb, enc->extradata, extradata_size);
+ if (!for_asf && extradata_size & 1)
+ avio_w8(pb, 0);
+ } else if (enc->bits_per_coded_sample >= 1 && enc->bits_per_coded_sample
<= 8) {
+ int i;
+ int64_t *pal_offset = (int64_t *)enc->priv_data;
the codec priv_data must not be accessed from a muxer, its private to
the codec
OK, thanks for the information. Do you have a better way to store the
palette offset? There aren't many places accessible from this function.
Mats
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel