Interestingly, the time_base coming out of my AVCodecContext for my audio stream seems to be zero, what do you make of that?
Sean On Mon, Jan 11, 2010 at 12:30 AM, Tomas Härdin <[email protected]>wrote: > On Sun, 2010-01-10 at 16:27 -0800, Sean McAllister wrote: > > How consistent are the sizes of audio packets that come out of an audio > > decoder? I'm seeing packets that > > are consistently 4800 samples, but I'm curious if this is something > that's > > reliable or if it can vary packet-to-packet (eg: if it's a VBR codec). > > I'm basically curious whether, if I know the packet size, and number of > > packets, I can turn that into a time in seconds. > > > > Sean > > _______________________________________________ > > libav-user mailing list > > [email protected] > > https://lists.mplayerhq.hu/mailman/listinfo/libav-user > > That depends on the codec. Check out AVCodecContext::frame_size. If it > is greater than one (1) then each packet contains a constant amount of > samples. If not, then you probably have a PCM or other special codec, > which means no guarantees. > > I suspect you're better off relying on the timestamps given by the > demuxer, unless you don't have one. Otherwise just use the number of > samples given so far, with time_base equal to the one your decoder uses > (48 kHz for instance). I wouldn't rely on frame_size, even if > consistent. > > Ah, and also note that you can get more than one frame of audio from > each packet if the return value of avcodec_decode_audio3() is less than > the size of the packet. > > /Tomas > > _______________________________________________ > libav-user mailing list > [email protected] > https://lists.mplayerhq.hu/mailman/listinfo/libav-user > _______________________________________________ libav-user mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/libav-user
