[FFmpeg-devel] [PATCH][RFC] variable frame sizes
Michael Niedermayer
michaelni
Thu May 21 12:36:51 CEST 2009
On Thu, May 21, 2009 at 06:23:19AM +0200, Michael Niedermayer wrote:
> 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?
I of course meant if there are several streams and they are resampled
to different sizes. I dont think that your code can handle that
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
No snowflake in an avalanche ever feels responsible. -- Voltaire
-------------- 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/43036016/attachment.pgp>
More information about the ffmpeg-devel
mailing list