On Tue, May 12, 2015 at 02:31:38PM +0200, Andreas Cadhalpun wrote: > On 12.05.2015 00:28, Michael Niedermayer wrote: > > this breaks demuxing_decoding with pixel formats that use more than > > 1 plane > > > > for example: > > doc/examples/demuxing_decoding lena255.jpg out.raw /dev/null > > Could not find audio stream in input file 'lena255.jpg' > > Input #0, image2, from 'lena255.jpg': > > Duration: 00:00:00.04, start: 0.000000, bitrate: 3124 kb/s > > Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), > > 255x255, 25 tbr, 25 tbn, 25 tbc > > Demuxing video from file 'lena255.jpg' into 'out.raw' > > video_frame n:0 coded_n:0 pts:NOPTS > > Demuxing succeeded. > > Play the output video file with the command: > > ffplay -f rawvideo -pix_fmt yuvj444p -video_size 255x255 out.raw > > > > but the printed command line for ffplay does not work as the stored > > image is not containing teh chroma planes > > I see. Attached is a patch that should fix the warnings without breaking > anything. (It's not exactly beautiful, but it works.) > > Best regards, > Andreas >
> demuxing_decoding.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > ee1725417c3d550a65ba846e9195ded4ebdf4a3d > 0001-examples-demuxing_decoding-fully-initialize-the-vide.patch > From a52993c013dc2d64cd2f099fe472704fd2a75d6d Mon Sep 17 00:00:00 2001 > From: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> > Date: Tue, 12 May 2015 14:15:52 +0200 > Subject: [PATCH] examples/demuxing_decoding: fully initialize the > video_dst_data buffer > > av_image_fill_pointers always alignes the palette, but the padding bytes > don't (and can't) get initialized in av_image_copy. > > Thus initialize them explicitly. > > This fixes 'Syscall param write(buf) points to uninitialised byte(s)' > valgrind warnings. > > Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> > --- > doc/examples/demuxing_decoding.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/doc/examples/demuxing_decoding.c > b/doc/examples/demuxing_decoding.c > index feeeb96..4678604 100644 > --- a/doc/examples/demuxing_decoding.c > +++ b/doc/examples/demuxing_decoding.c > @@ -71,6 +71,7 @@ static int decode_packet(int *got_frame, int cached) > { > int ret = 0; > int decoded = pkt.size; > + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); > > *got_frame = 0; > > @@ -108,6 +109,14 @@ static int decode_packet(int *got_frame, int cached) > (const uint8_t **)(frame->data), frame->linesize, > pix_fmt, width, height); > > + if ((desc->flags & AV_PIX_FMT_FLAG_PAL || > + desc->flags & AV_PIX_FMT_FLAG_PSEUDOPAL) && > + video_dst_data[1] - video_dst_data[0] > > video_dst_linesize[0] * height) { > + /* zero-initialize the padding before the palette */ > + memset(video_dst_data[0] + video_dst_linesize[0] * height, 0, > + video_dst_data[1] - video_dst_data[0] - > video_dst_linesize[0] * height); > + } i wonder if this shouldnt be moved to av_image_alloc() ? [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB If you think the mosad wants you dead since a long time then you are either wrong or dead since a long time.
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel