[FFmpeg-soc] [soc]: r656 - matroska/matroskaenc.c

Robert Swain robert.swain at gmail.com
Fri Aug 10 12:08:04 CEST 2007


On 10/08/07, Aurelien Jacobs <aurel at gnuage.org> wrote:
> On Fri, 10 Aug 2007 01:37:12 +0200 (CEST)
> conrad <subversion at mplayerhq.hu> wrote:
>
> > Author: conrad
> > Date: Fri Aug 10 01:37:12 2007
> > New Revision: 656
> >
> > Log:
> > Write the display size elements
> >
> >
> > Modified:
> >    matroska/matroskaenc.c
> >
> > Modified: matroska/matroskaenc.c
> > ==============================================================================
> > --- matroska/matroskaenc.c    (original)
> > +++ matroska/matroskaenc.c    Fri Aug 10 01:37:12 2007
> > @@ -476,7 +476,10 @@ static int mkv_write_tracks(AVFormatCont
> >                  // XXX: interlace flag?
> >                  put_ebml_uint (pb, MATROSKA_ID_VIDEOPIXELWIDTH , codec->width);
> >                  put_ebml_uint (pb, MATROSKA_ID_VIDEOPIXELHEIGHT, codec->height);
> > -                // XXX: display width/height
> > +                if (codec->sample_aspect_ratio.num) {
> > +                    put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYWIDTH , codec->sample_aspect_ratio.num);
> > +                    put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYHEIGHT, codec->sample_aspect_ratio.den);
>
> I'm not sure, but I suppose that sample_aspect_ratio is something
> different than videodisplaywidth/height.
> I guess that you could have sample_aspect_ratio = 4/3 when
> videodisplaywidth/height = 640/480.
> Anyone can confirm?

Sample aspect ratio is also known as pixel aspect ratio.

DAR = display width / display height
SAR = sample width / sample height

DAR = SAR * encoded frame width / encoded frame height

Computer screens generally have SAR = 1 (i.e. square pixels). As I
recall, TV screens do not. DVDs have SARs calculated from the encoded
frame width and height to obtain the correct display aspect ratio
(either 4/3 or 16/9).

Anyway, these values should take whatever values FFmpeg produces in my
opinion, so that commit looks correct.

Rob



More information about the FFmpeg-soc mailing list