[Libav-user] invalid AVPacket size in av_read_frame usage.
daggs at gmx.com
Mon Apr 27 12:56:19 CEST 2015
> Sent: Monday, April 27, 2015 at 11:20 AM
> From: "Carl Eugen Hoyos" <cehoyos at ag.or.at>
> To: libav-user at ffmpeg.org
> Subject: Re: [Libav-user] invalid AVPacket size in av_read_frame usage.
> daggs <daggs at ...> writes:
> > > > I'm writing a program that needs to sample the
> > > > screen in bgra format. the problem is what I try
> > > > to read an av frame, I get this error:
> > > > [rawvideo <at> 0x1403aa0] Invalid buffer size,
> > > > packet size 1228800 < expected frame_size 8294400
> > >
> > > Where does the packet come from that you pass to
> > > the video decode function?
I'm using the x11grab module set to my desktop and grab the packets using av_read_frame call.
> > > What is the resolution of the video that you
> > > want to decode?
> > that is a raw packet of a 1920x1080 screen.
> 1920 x 1080 x 4 = 8,294,400 so the error seems correct
> to me.
but that isn't what I've asked, I see that error and tried to increase the buffer using av_new_packet but it doesn't work so I'm trying to understand what I'm doing wrong.
> > which encodes it to the required format (libx264rbg).
> > if I'm not mistaken, scaling the frame to yuv420p
> > will drop the quality of the frame which I don't
> > want to have.
> That doesn't explain why you need the rawvideo decoder.
I did, I don't want the thread that grabs the screen do encode the frame, so I grab it raw and pass it to another thread which encodes it.
> Or are you using libavformat to capture the screen?
> (You didn't say so.)
I've searched the net and found some examples and projects that grabs screen in similar way.
I haven't found any example in the ffmpeg docs regarding screen capture so I assumed that is the way to do that.
is there another way to do that?
More information about the Libav-user