Please avoid top posting on this list. On Mon, 2010-01-11 at 13:44 -0800, Sean McAllister wrote: > 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 > >
Hm. Try setting time_base and/or sample_rate based on the values given by the demuxer before opening the decoder. /Tomas _______________________________________________ libav-user mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/libav-user
