On Sun, Dec 12, 2010 at 3:40 AM, Nicolas George <[email protected]> wrote: > Le duodi 22 frimaire, an CCXIX, Thomas Worth a écrit : > AVFMT_RAWPICTURE means: "this output format is only able to mux raw video, > and as a special optimization uses the AVFrame structure directly to avoid a > few memory-to-memory copies". > > The QuickTime muxer can mux either uncompressed or compressed streams, it is > therefore not an RAWPICTURE muxer. The fact that, in your particular case > you are using it to mux uncompressed video is not relevant in this question.
Maybe I'm not understanding the self-imposed limitation. The raw pixel values for each plane of decompressed picture (and flagged as UYVY, for example), in this case are full raster Y, half-raster Cb and Cr. This can be dumped directly into a QuickTime file, bypassing avcodec_encode_video() and giving us the optimization you describe. In fact, you can bypass the AVFrame struct altogether and point avpicture_fill() directly to the buffer. I haven't tested this much, so maybe this will be problematic without some way to check for alignment (linesize). This "uncompressed" video IS raw, that is if we are talking about the same thing. It is the result from upsampling chroma from 4:2:0 h.264. It doesn't need to go through an encoder if the pixel packing order is already what the container format wants. This is the case with 8 bit 4:2:2 uncompressed QuickTime. I did have to set c->codec_tag manually to "2vuy," however before the QuickTime muxer would accept the picture. _______________________________________________ libav-user mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/libav-user
