On Mon, Dec 28, 2015 at 12:07:38PM +0100, Nicolas George wrote: > L'octidi 8 nivôse, an CCXXIV, Mats Peterson a écrit : > > Michael, he's talking about the OLD patch that was never applied. My patch > > has been written from scratch, more or less. I did borrowed some palette > > loops from mov.c, but I have also attributed the previous authors at the top > > of qtpalette.c properly. > > I must say, I find this hunk from 7973603: > > + if (matroska->has_palette) { > + uint8_t *pal = av_packet_new_side_data(pkt, AV_PKT_DATA_PALETTE, > AVPALETTE_SIZE); > + if (!pal) { > + av_log(matroska->ctx, AV_LOG_ERROR, "Cannot append palette > to packet\n"); > + } else { > + memcpy(pal, matroska->palette, AVPALETTE_SIZE); > + } > + matroska->has_palette = 0; > + } > > looks quite similar to this hunk from > https://trac.ffmpeg.org/attachment/ticket/5071/patchmkvmov.diff : > > + if (matroska->pal) { > + uint8_t *pal = av_packet_new_side_data(pkt, AV_PKT_DATA_PALETTE, > AVPALETTE_SIZE); > + if (!pal) { > + av_log(matroska->ctx, AV_LOG_ERROR, "Cannot append palette > to packet\n"); > + } else { > + memcpy(pal, matroska->pal, AVPALETTE_SIZE); > + } > + av_freep(&matroska->pal); > + } > > Especially the use of if/else for error, and actually ignoring the error, > instead of the most common (and more correct, but the rest of the code > ignores error too) "if...return AVERROR(ENOMEM)".
for reference: (similar code prior to the patches) HEAD~20:libavdevice/x11grab.c- pkt->pts = curtime; HEAD~20:libavdevice/x11grab.c- if (s->palette_changed) { HEAD~20:libavdevice/x11grab.c- uint8_t *pal = av_packet_new_side_data(pkt, AV_PKT_DATA_PALETTE, HEAD~20:libavdevice/x11grab.c- AVPALETTE_SIZE); HEAD~20:libavdevice/x11grab.c- if (!pal) { HEAD~20:libavdevice/x11grab.c: av_log(s, AV_LOG_ERROR, "Cannot append palette to packet\n"); HEAD~20:libavdevice/x11grab.c- } else { HEAD~20:libavdevice/x11grab.c- memcpy(pal, s->palette, AVPALETTE_SIZE); HEAD~20:libavdevice/x11grab.c- s->palette_changed = 0; HEAD~20:libavdevice/x11grab.c- } HEAD~20:libavdevice/x11grab.c- } -- HEAD~20:libavformat/asfdec_f.c- if (asf_st->pkt.data && asf_st->palette_changed) { HEAD~20:libavformat/asfdec_f.c- uint8_t *pal; HEAD~20:libavformat/asfdec_f.c- pal = av_packet_new_side_data(&asf_st->pkt, AV_PKT_DATA_PALETTE, HEAD~20:libavformat/asfdec_f.c- AVPALETTE_SIZE); HEAD~20:libavformat/asfdec_f.c- if (!pal) { HEAD~20:libavformat/asfdec_f.c: av_log(s, AV_LOG_ERROR, "Cannot append palette to packet\n"); HEAD~20:libavformat/asfdec_f.c- } else { HEAD~20:libavformat/asfdec_f.c- memcpy(pal, asf_st->palette, AVPALETTE_SIZE); HEAD~20:libavformat/asfdec_f.c- asf_st->palette_changed = 0; HEAD~20:libavformat/asfdec_f.c- } HEAD~20:libavformat/asfdec_f.c- } -- HEAD~20:libavformat/mov.c- if (sc->has_palette) { HEAD~20:libavformat/mov.c- uint8_t *pal; HEAD~20:libavformat/mov.c- HEAD~20:libavformat/mov.c- pal = av_packet_new_side_data(pkt, AV_PKT_DATA_PALETTE, AVPALETTE_SIZE); HEAD~20:libavformat/mov.c- if (!pal) { HEAD~20:libavformat/mov.c: av_log(mov->fc, AV_LOG_ERROR, "Cannot append palette to packet\n"); HEAD~20:libavformat/mov.c- } else { HEAD~20:libavformat/mov.c- memcpy(pal, sc->palette, AVPALETTE_SIZE); HEAD~20:libavformat/mov.c- sc->has_palette = 0; HEAD~20:libavformat/mov.c- } HEAD~20:libavformat/mov.c- } [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Dictatorship naturally arises out of democracy, and the most aggravated form of tyranny and slavery out of the most extreme liberty. -- Plato
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel