[FFmpeg-devel] [PATCH][RFC] variable frame sizes

Michael Niedermayer michaelni
Thu May 21 06:23:19 CEST 2009


On Wed, May 20, 2009 at 12:17:22PM -0700, Eric Buehl wrote:
> On Wed, May 20, 2009 at 6:12 AM, Michael Niedermayer <michaelni at gmx.at>wrote:
> 
> > On Sat, May 16, 2009 at 11:07:58PM -0700, Eric Buehl wrote:
> > > On Sat, May 16, 2009 at 9:40 PM, Eric Buehl <eric.buehl at gmail.com>
> > wrote:
> > >
> > > > On Sat, May 16, 2009 at 2:40 AM, Michael Niedermayer <michaelni at gmx.at
> > >wrote:
> > > >
> > > >> On Fri, May 15, 2009 at 09:47:00PM -0700, Eric Buehl wrote:
> > > >> > On Fri, May 15, 2009 at 7:46 PM, Michael Niedermayer <
> > michaelni at gmx.at
> > > >> >wrote:
> > > >> >
> > > >> > > On Fri, May 15, 2009 at 04:44:14PM -0700, Eric Buehl wrote:
> > > >> > > > On Fri, May 15, 2009 at 3:49 AM, Michael Niedermayer <
> > > >> michaelni at gmx.at
> > > >> > > >wrote:
> > > >> > > >
> > > >> > > > > On Thu, May 14, 2009 at 04:04:57PM -0700, Eric Buehl wrote:
> > > >> > > > > > Hello,
> > > >> > > > > >
> > > >> > > > > > I submitted a bug a while back describing ffmpeg's failure
> > to
> > > >> account
> > > >> > > for
> > > >> > > > > > varying frame sizes in a single file.
> > > >> > > > > > http://roundup.ffmpeg.org/roundup/ffmpeg/issue879  I have
> > > >> confirmed
> > > >> > > that
> > > >> > > > > the
> > > >> > > > > > sample referenced works as expected in mplayer so I do not
> > > >> believe it
> > > >> > > is
> > > >> > > > > a
> > > >> > > > > > problem with lavc/lavf.
> > > >> > > > >
> > > >> > > > > >  Attached is a patch that works for frames of
> > > >> > > > > > varying height (possible if interlacing options are
> > mis-used)
> > > >> but it
> > > >> > > does
> > > >> > > > > > not account for changes in width.
> > > >> > > > >
> > > >> > > > > so its incomplete ...
> > > >> > > > >
> > > >> > > > > [...]
> > > >> > > > >
> > > >> > > > > >  ffmpeg.c |   20 ++++++++++++++++++++
> > > >> > > > > >  1 file changed, 20 insertions(+)
> > > >> > > > > > 726f5c891ba925ffb00806f43c935696105872ef
> > > >> > > > >  dynamic_frame_height_adjust.patch
> > > >> > > > > > Index: ffmpeg.c
> > > >> > > > > >
> > > >> ===================================================================
> > > >> > > > > > --- ffmpeg.c  (revision 18831)
> > > >> > > > > > +++ ffmpeg.c  (working copy)
> > > >> > > > > > @@ -923,6 +923,26 @@
> > > >> > > > > >      if (ost->video_resample) {
> > > >> > > > > >          padding_src = NULL;
> > > >> > > > > >          final_picture = &ost->pict_tmp;
> > > >> > > > > > +     if(ost->resample_height != ist->st->codec->height)
> > > >> > > > >
> > > >> > > > > tabs and as this is under if (ost->video_resample)
> > > >> > > > > i wonder if it works if thats false to begin with ...
> > > >> > > > >
> > > >> > > > >
> > > >> > > > > > +        {
> > > >> > > > >
> > > >> > > > > inconsistant { placement
> > > >> > > > >
> > > >> > > > > [...]
> > > >> > > > > --
> > > >> > > > > Michael     GnuPG fingerprint:
> > > >> 9FF2128B147EF6730BADF133611EC787040B0FAB
> > > >> > > > >
> > > >> > > > > Frequently ignored awnser#1 FFmpeg bugs should be sent to our
> > > >> > > bugtracker.
> > > >> > > > > User
> > > >> > > > > questions about the command line tools should be sent to the
> > > >> > > ffmpeg-user
> > > >> > > > > ML.
> > > >> > > > > And questions about how to use libav* should be sent to the
> > > >> libav-user
> > > >> > > ML.
> > > >> > > > >
> > > >> > > > > -----BEGIN PGP SIGNATURE-----
> > > >> > > > > Version: GnuPG v1.4.9 (GNU/Linux)
> > > >> > > > >
> > > >> > > > >
> > iD8DBQFKDUioYR7HhwQLD6sRAr9nAJ45hYRJiRqxjsz1xAAP+Svzqp+3EgCaA8pO
> > > >> > > > > /DWK54Yie4eBCADbqVumAJM=
> > > >> > > > > =R+EA
> > > >> > > > > -----END PGP SIGNATURE-----
> > > >> > > >
> > > >> > > >
> > > >> > > > > _______________________________________________
> > > >> > > > > ffmpeg-devel mailing list
> > > >> > > > > ffmpeg-devel at mplayerhq.hu
> > > >> > > > > https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
> > > >> > > > >
> > > >> > > >
> > > >> > > >
> > > >> > > > Here is an updated patch.  I have add a more correct comparison
> > > >> (which
> > > >> > > > includes frame top/bottom bands) as well as formatting clean-up.
> >  It
> > > >> also
> > > >> > > > checks for changes in width in the same fashion.
> > > >> > >
> > > >> > > i tried it with a 100x100 + 200x200 mpg concatenated, but it did
> > not
> > > >> work
> > > >> > > just heavy artifacts
> > > >> > >
> > > >> > > [...]
> > > >> > > --
> > > >> > > Michael     GnuPG fingerprint:
> > > >> 9FF2128B147EF6730BADF133611EC787040B0FAB
> > > >> > >
> > > >> > > Democracy is the form of government in which you can choose your
> > > >> dictator
> > > >> > >
> > > >> > > -----BEGIN PGP SIGNATURE-----
> > > >> > > Version: GnuPG v1.4.9 (GNU/Linux)
> > > >> > >
> > > >> > > iD8DBQFKDij0YR7HhwQLD6sRAuwRAJ4ycSjn8ajfMyHg7vXdC7fDg+U8lACeI5Pf
> > > >> > > AeEgbvYibsIkk5TCybRYU9I=
> > > >> > > =H+W4
> > > >> > > -----END PGP SIGNATURE-----
> > > >> > >
> > > >> > > _______________________________________________
> > > >> > > ffmpeg-devel mailing list
> > > >> > > ffmpeg-devel at mplayerhq.hu
> > > >> > > https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
> > > >> > >
> > > >> >
> > > >> > I was not able to reproduce this as you describe with a 100x100 mpg
> > > >> catted
> > > >> > with a 200x200 mpg.  Can you send me your test file and/or the steps
> > to
> > > >> > produce it?
> > > >>
> > > >> ./ffmpeg -i matrixbench_mpeg2.mpg -s 100x100 -t 1 m100100.mpg
> > > >> ./ffmpeg -i matrixbench_mpeg2.mpg -s 200x200 -t 1 m200200.mpg
> > > >> cat m100100.mpg m200200.mpg >m.mpg
> > > >> ./ffmpeg -i m.mpg n.mpg
> > > >>
> > > >> [...]
> > > >> --
> > > >> Michael     GnuPG fingerprint:
> > 9FF2128B147EF6730BADF133611EC787040B0FAB
> > > >>
> > > >> it is not once nor twice but times without number that the same ideas
> > make
> > > >> their appearance in the world. -- Aristotle
> > > >>
> > > >> -----BEGIN PGP SIGNATURE-----
> > > >> Version: GnuPG v1.4.9 (GNU/Linux)
> > > >>
> > > >> iD8DBQFKDooGYR7HhwQLD6sRAkmKAKCHsxSw7rmBFAV+/aPZWNWd3tOOFACfeep/
> > > >> M28rhl94MsvtPESLjNyDLgY=
> > > >> =oNWX
> > > >> -----END PGP SIGNATURE-----
> > > >>
> > > >> _______________________________________________
> > > >> ffmpeg-devel mailing list
> > > >> ffmpeg-devel at mplayerhq.hu
> > > >> https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
> > > >>
> > > >
> > > >
> > > > I understand now.  Correct, this does not touch the code path for the
> > patch
> > > > I have written because resampling is not explicitly requested by using
> > the
> > > > -s option.  However, the intent of this patch is only to ensure that
> > when
> > > > resamping is requested, the output meets the requested frame size.  The
> > > > example you have given does not request resizing and I am not sure what
> > the
> > > > correct functionality should be in this case.  Is this suitable for
> > > > integration as is?
> > > >
> > > > Eric
> > > >
> > > >
> > > Here is another update to account for left and right banding.
> >
> > does the code also work if there are 2 or more video streams?
> >
> >
> > [...]
> > --
> > Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> >
> > Many that live deserve death. And some that die deserve life. Can you give
> > it to them? Then do not be too eager to deal out death in judgement. For
> > even the very wise cannot see all ends. -- Gandalf
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.9 (GNU/Linux)
> >
> > iD8DBQFKFAGhYR7HhwQLD6sRAi6SAJ4pky6gV+7YpthNyOTcJzBuTx1UMwCePGCg
> > r8M9k0WCo8cwWcexraZ0DQg=
> > =NSvj
> > -----END PGP SIGNATURE-----
> >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at mplayerhq.hu
> > https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
> >
> 
> 
> Yes.

and if they differ in size?

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When the tyrant has disposed of foreign enemies by conquest or treaty, and
there is nothing more to fear from them, then he is always stirring up
some war or other, in order that the people may require a leader. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090521/0da355e1/attachment.pgp>



More information about the ffmpeg-devel mailing list