On Wed, Mar 02, 2016 at 09:23:40PM +0100, Mats Peterson wrote: > On 03/02/2016 09:21 PM, Michael Niedermayer wrote: > >On Wed, Mar 02, 2016 at 08:33:42PM +0100, Mats Peterson wrote: > >>Check that the track type is AVMEDIA_TYPE_VIDEO in appropriate places. > >> > >>-- > >>Mats Peterson > >>http://matsp888.no-ip.org/~mats/ > > > >> movenc.c | 45 +++++++++++++++++++++++++++------------------ > >> 1 file changed, 27 insertions(+), 18 deletions(-) > >>f2f811cb47f8ba331ca3886ef99239f68aef98a0 > >>0002-lavf-movenc-Add-support-for-palette-side-data.patch > >> From c2d0b7a69486afb926e731216b4aff3b04c4ee4a Mon Sep 17 00:00:00 2001 > >>From: Mats Peterson <matsp...@yahoo.com> > >>Date: Wed, 2 Mar 2016 20:30:59 +0100 > >>Subject: [PATCH v4 2/5 v2] lavf/movenc: Add support for palette side data > >> > >>--- > >> libavformat/movenc.c | 45 +++++++++++++++++++++++++++------------------ > >> 1 file changed, 27 insertions(+), 18 deletions(-) > >> > >>diff --git a/libavformat/movenc.c b/libavformat/movenc.c > >>index 3295266..277f2d2 100644 > >>--- a/libavformat/movenc.c > >>+++ b/libavformat/movenc.c > >>@@ -1716,13 +1716,14 @@ static int mov_write_video_tag(AVIOContext *pb, > >>MOVMuxContext *mov, MOVTrack *tr > >> else > >> avio_wb16(pb, 0x18); /* Reserved */ > >> > >>- if (track->is_unaligned_qt_rgb && track->enc->pix_fmt == > >>AV_PIX_FMT_PAL8) { > >>+ if (track->mode == MODE_MOV && track->enc->pix_fmt == AV_PIX_FMT_PAL8) > >>{ > >>+ int pal_size = 1 << track->enc->bits_per_coded_sample; > >> int i; > >> avio_wb16(pb, 0); /* Color table ID */ > >> avio_wb32(pb, 0); /* Color table seed */ > >> avio_wb16(pb, 0x8000); /* Color table flags */ > >>- avio_wb16(pb, 255); /* Color table size (zero-relative) > >>*/ > >>- for (i = 0; i < 256; i++) { > >>+ avio_wb16(pb, pal_size - 1); /* Color table size (zero-relative) > >>*/ > >>+ for (i = 0; i < pal_size; i++) { > >> uint32_t rgb = AV_RL32(&track->palette[i]); > >> uint16_t r = (rgb >> 16) & 0xff; > >> uint16_t g = (rgb >> 8) & 0xff; > >>@@ -4763,21 +4764,29 @@ static int mov_write_packet(AVFormatContext *s, > >>AVPacket *pkt) > >> } > >> } > >> > >>- if (trk->is_unaligned_qt_rgb) { > >>- const uint8_t *data = pkt->data; > >>- int size = pkt->size; > >>- int64_t bpc = trk->enc->bits_per_coded_sample != 15 ? > >>trk->enc->bits_per_coded_sample : 16; > >>- int expected_stride = ((trk->enc->width * bpc + 15) >> 4)*2; > >>- int ret = ff_reshuffle_raw_rgb(s, &pkt, trk->enc, > >>expected_stride); > >>- if (ret < 0) > >>- return ret; > >>- if (ret == CONTAINS_PAL && !trk->pal_done) { > >>- int pal_size = 1 << trk->enc->bits_per_coded_sample; > >>- memset(trk->palette, 0, AVPALETTE_SIZE); > >>- memcpy(trk->palette, data + size - 4*pal_size, 4*pal_size); > >>- trk->pal_done++; > >>- } else if (trk->enc->pix_fmt == AV_PIX_FMT_GRAY8 || > >>- trk->enc->pix_fmt == AV_PIX_FMT_MONOBLACK) { > >>+ if (trk->mode == MODE_MOV && trk->enc->codec_type == > >>AVMEDIA_TYPE_VIDEO) { > >>+ AVPacket *opkt = pkt; > >>+ int ret; > >>+ if (trk->is_unaligned_qt_rgb) { > >>+ int64_t bpc = trk->enc->bits_per_coded_sample != 15 ? > >>trk->enc->bits_per_coded_sample : 16; > >>+ int expected_stride = ((trk->enc->width * bpc + 15) >> > >>4)*2; > >>+ ret = ff_reshuffle_raw_rgb(s, &pkt, trk->enc, > >>expected_stride); > >>+ if (ret < 0) > >>+ return ret; > >>+ } else > >>+ ret = 0; > >>+ if (trk->enc->pix_fmt == AV_PIX_FMT_PAL8 && !trk->pal_done) { > > > >in which cases of compressed (non raw) video does doing something > >special for pix_fmt == pal8 fix a problem ? > > > > In several cases. QuickTime RLE in 8-bit mode, QuickTime Graphics > (SMC) in 8-bit mode, Microsoft Video 1 (CRAM) in 8-bit mode. All of > them use a palette. There are possibly more formats, but these are > the ones I can come up with at the moment.
do you have a testcase with command line and small input file? preferrably a file already in fatesamples ? iam asking as i think this needs a fate test and its easier for me to add a test if i have some command line example with all needed parts [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The real ebay dictionary, page 1 "Used only once" - "Some unspecified defect prevented a second use" "In good condition" - "Can be repaird by experienced expert" "As is" - "You wouldnt want it even if you were payed for it, if you knew ..."
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel