On 02/06/2021 08:51 PM, Carl Eugen Hoyos wrote:
Am So., 7. Feb. 2021 um 01:34 Uhr schrieb Mark Filipak (ffmpeg)
<markfili...@bog.us>:

[decoder] --> [filters] --> [codecs] --> [encoder]

This looks wrong / misleading.
There is a transcoding pipeline:
demuxer -> decoder -> filter -> encoder -> muxer
And there are formats, codecs, filters, devices (and more) as
part of the FFmpeg project.

My question is:
How are decoder.output and encoder.input structured?

Yes, I know that filters can reformat the video, deinterlace, stack fields, etc.

I have been assuming that the structure is frames of pixels like this:
pixel[0,0] pixel[1,0] ... pixel[in_w-1,0]  pixel[0,1] pixel[1,1] ... 
pixel[in_w-1,in_h-1]

(The usual style is that rows come first, than columns.)

Thanks (not x,y, eh?). Okay, then this:

pixel[0,0] pixel[0,1] ... pixel[0,in_w-1]  pixel[1,0] pixel[1,1] ... 
pixel[in_h-1,in_w-1]

In other words, raw video frames with lines abutted end-to-end

In abstract terms, this is of course correct, but note that planar and
packed pix_fmts exist, see libavutil/pixfmt.h, lines and frames are
often padded for performance reasons.

Okay, thanks.

(i.e. not deinterlaced).

I may misunderstand but I believe this part makes no sense
in above sentence.

Carl Eugen

"not deinterlaced" == not this:

pixel[0,0] pixel[0,1] ... pixel[0,in_w-1] pixel[2,0] pixel[2,1] ... pixel[in_h-2,in_w-1] ... pixel[1,0] pixel[1,1] ... pixel[1,in_w-1] pixel[3,0] pixel[3,1] ... pixel[in_h-1,in_w-1]

and, I should add, not in macroblocks in slices.

The reason I ask is that it seems to me that some of the documentation assumes that readers already know this.
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to