[MPlayer-dev-eng] Re: -of mpeg
D Richard Felker III
dalias at aerifal.cx
Tue Oct 21 18:43:08 CEST 2003
On Tue, Oct 21, 2003 at 04:18:27PM +0200, Michael Niedermayer wrote:
> Hi
>
> On Tuesday 21 October 2003 15:46, D Richard Felker III wrote:
> > On Tue, Oct 21, 2003 at 01:15:50PM +0200, Michael Niedermayer wrote:
> > > Hi
> > >
> > > On Saturday 18 October 2003 00:53, D Richard Felker III wrote:
> > > [...]
> > >
> > > > I'm curious...is there any way to encode duplicate frames in mpeg
> > > > output?
> > >
> > > mpeg2 standard:
> > > ----
> > > If progressive_sequence is equal to '1', this flag, combined
> > > with repeat_first_field, indicates how many times (one, two or
> > > three) the reconstructed frame is output by the decoding process.
> > > ----
> > >
> > > so yes, if the video is progresive then we can duplicate frames
> >
> > You can only lengthen frames by 50% (3 field duration) which doesn't
> > seem very useful except for correcting minor a/v sync issues.
> thats the case for interlaced streams, but for progressive u can duplicate
> frames
>
> heres the relevant code from lavc
> ---
> if (s->repeat_first_field) {
> if (s->progressive_sequence) {
> if (s->top_field_first)
> s->current_picture_ptr->repeat_pict = 4;
> else
> s->current_picture_ptr->repeat_pict = 2;
> } else if (s->progressive_frame) {
> s->current_picture_ptr->repeat_pict = 1;
> }
> }
> ---
> yes they are (miss)using top_field_first here
>
> and heres the MPEG2 standard:
> ---
> top_field_first -- The meaning of this element depends upon
> picture_structure, progressive_sequence and repeat_first_field.
> If progressive_sequence is equal to '0', this flag indicates what field of
> a reconstructed frame is output first by the decoding process:
> In a field picture top_field_first shall have the value '0', and the only
> field output by the decoding process is the decoded field picture.
> In a frame picture top_field_first being set to '1' indicates that the top
> field of the reconstructed frame is the first field output by the decoding
> process. top_field_first being set to '0' indicates that the bottom field
> of the reconstructed frame is the first field output by decoding process
> If progressive_sequence is equal to '1', this flag, combined with
> repeat_first_field, indicates how many times (one, two or three) the
> reconstructed frame is output by the decoding process.
> If repeat_first_field is set to 0, top_field_first shall be set to '0'.
> In this case the output of the decoding process corresponding to this
> reconstructed frame consists of one progressive frame.
> If top_field_first is set to 0 and repeat_first_field is set to '1', the
> output of the decoding process corresponding to this reconstructed frame
> consists of two identical progressive frames.
> If top_field_first is set to 1 and repeat_first_field is set to '1', the
> output of the decoding process corresponding to this reconstructed frame
> consists of three identical progressive frames.
> ---
Very very strange. How on earth does vf_softpulldown work right,
then?? It interprets top_field_first as what it should logically mean,
not this repeat count nonsense...
Rich
More information about the MPlayer-dev-eng
mailing list