[Libav-user] Applied pad on the decoded frame

Francesco Damato francesco.damato7 at gmail.com
Wed Nov 27 15:06:53 CET 2013


Hi Dolevo Jay,

I have the doc/examples programs compiled and running.  I use the program
demuxing.c to decode an AVI file.  From the source code, it looks it calls
its own subroutine decode_packet() to decode the next video or audio
packet, and that subroutine calls avcodec_decode_video2()to decode the next
frame. Now i want to encode this frames in h264.

Any suggestion is appreciated.

Thanks






2013/10/16 Dolevo Jay <cmst at live.com>

> Hi,
>
> If your raw file is in yuv 420 format, you can simply read from the file
> as if you are reading from a text file and push it into the encoder. The
> important thing here is going to be how many bytes to read but you can
> calculate it by looking at the resolution information. If your raw file
> contains RGB frames, you need to convert them first to yuv420 before
> pushing into encoder. If you need further help, you may send a private
> email.
>
> ------------------------------
> Date: Wed, 16 Oct 2013 16:28:29 +0200
> From: francesco.damato7 at gmail.com
>
> To: libav-user at ffmpeg.org
> Subject: Re: [Libav-user] Applied pad on the decoded frame
>
> Hi Dolevo Jay,
>
> i have a avi and mp4 file. The avcodec_encode_video2 function takes input
> raw video data from frame, so i demux my file and i obtain a raw video
> file; now i want encode it, so how i can open the raw file, read the raw
> frames and encode them into h264??
>
> Thanks for your help!!
>
> Regards
>
>
> 2013/10/15 Dolevo Jay <cmst at live.com>
>
>
>
> > From: bruce at spearmorgan.com
> > Date: Mon, 14 Oct 2013 15:47:05 -0700
>
> > To: libav-user at ffmpeg.org
> > Subject: Re: [Libav-user] Applied pad on the decoded frame
> >
> > On Oct 14, 2013, at 4:46 AM, Dolevo Jay <cmst at live.com> wrote:
> >
> > > I have encoder and decoder application in separate projects. I use
> x264 to encode the incoming frames and use libav to decode them. If the
> frame has a specific resolution like 1366 x 768, the decode frame contains
> extra black border at the right side of the frame. I have debugged it and
> realized that the av_pic.linesize[0] is 50 more than the linesize during
> the encoding.
> > > Here is the code:
> > >
> > > lengthDec = avcodec_decode_video2(c1, av_pic, &pic, &pkt);
> > > if (pic)
> > > {
> > > avpicture_fill((AVPicture *)rgbFrame, RGBimg, PIX_FMT_RGB32, w, h);
> > > sws_scale(ctx, av_pic->data, av_pic->linesize, 0, h, rgbFrame->data,
> rgbFrame->linesize);
> > > }
> > >
> > > So, in this code, I decode the packet and convert the decoded data
> into the rgb.
> > > Why does the avcodec_decode_video2 returns a padded linesize?
> > > Could anyone tell me how I can eliminate the black border?
> >
> > The actual encoded data has padding, added to make encoding and decoding
> more efficient. The returned frame has the padding still, since it's more
> efficient again - just decoding into a buffer without having to copy all
> the lines.
> >
> > That's very standard. Expect to see that in almost all codecs and frame
> sizes.
> >
> > You need to use the viewable width, not the linesize when scaling.
> >
> > Bruce
> > _______________________________________________
> > Libav-user mailing list
> > Libav-user at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/libav-user
>
>
> Thanks for your reply. I have described the problem in detail with some
> pictures here: http://forum.doom9.org/showthread.php?t=169036
> It is really strange that it produces no black part (bar) when I set the
> width = width+1 when calling sws_getContext. Could it be a bug in swscale
> since I do no scaling?
>
> Thanks a lot.
>
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
>
>
>
>
> --
> Francesco Damato
>
> _______________________________________________ Libav-user mailing list
> Libav-user at ffmpeg.org http://ffmpeg.org/mailman/listinfo/libav-user
>
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
>
>


-- 
Francesco Damato
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20131127/96c575f4/attachment.html>


More information about the Libav-user mailing list