[FFmpeg-devel] Multiple frame dimensions in a single stream

Michael Niedermayer michaelni
Fri May 4 14:13:05 CEST 2007


Hi

On Fri, May 04, 2007 at 01:00:02PM +0200, Ivo wrote:
> Hi,
> 
> On Friday 04 May 2007 03:10, Michael Niedermayer wrote:
> > On Fri, May 04, 2007 at 01:10:12AM +0200, Ivo wrote:
> > > I am working on a TXD demuxer and decoder
> > > (http://wiki.multimedia.cx/index.php?title=TXD) and I have stumbled
> > > upon a problem. Basically the demuxer and decoder work fine when all
> > > frames have the same width and height. But if the size changes, the
> > > output stays at the old size. e.g. [fronten2.txd is from GTA:SA and
> > > contains eight frames]
> > >
> > > ffmpeg -i fronten2.txd %02d.ppm
> > >
> > > All ppm images are 512x512, but 07.ppm should be 512x256. The upper
> > > half of the 512x512 image does contain the right contents though. When
> > > I do
> > >
> > > ffplay fronten2.txd
> > >
> > > I see the output window resize but it does not display the right
> > > contents. It then switches back to 512x512 for the eight frame, which
> > > displays correctly again.
> > >
> > > I have RTFS but I can not figure out what I am doing wrong. Can anybody
> > > explain to me how I should handle mid-stream dimension changes?
> > > Preferably decoder driven, though I could change that if it should be
> > > really done in the demuxer.
> >
> > iam not sure if ffplay supports changing dimension, try to concatenate 2
> > mpeg streams with differing dimension to check if ffplay can handle that
> 
> I did the following:
> 
> cat small.mpg big.mpg > up.mpg
> cat big.mpg small.mpg > down.mpg
> 
> big.mpg's dimensions are twice those of small.mpg.
> 
> $ ffplay up.mpg
> 
> Window resizes but the contents are not correct. Only the left half of the 
> image is shown and the right half is green.
> 
> $ ffplay down.mpg
> 
> Seems to play correctly. Window resizes and the contents match what I 
> expected.
> 
> $ ffmpeg -i up.mpg %04d.ppm
> 
> The images after the switch stay at the old dimensions and show only the 
> upper left corner of the frame (one quarter of the image).
> 
> $ ffmpeg -i down.mpg %04d.ppm
> 
> The images after the switch stay at the old dimensions and show the frame 
> twice (upper left corner, and upper right corner one scanline shifted up) 
> and the lower half of the image contains garbage.
> 
> So it looks like it's ffmpeg and ffplay that have to be adjusted to work 
> with changing dimensions mid-stream? Any idea how I should proceed? For 
> example, if the width and height of a frame change, do 
> st->codec->width/height also have to be changed? (by the demuxer) or is 
> that considered a hackish no-go?

hmm ideally the codec should do the change but if the w/h is not available
in some header which the codec sees then the demxuxer could do it too

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

Those who are too smart to engage in politics are punished by being
governed by those who are dumber. -- Plato 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070504/85e4a2e2/attachment.pgp>



More information about the ffmpeg-devel mailing list