| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
|
| |
|
|
|
|
|
|
|
|
| |
Also, do not keep trying to find and open a decoder in try_decode_frame() if
we already tried and failed once.
Fixes always searching until max_analyze_duration in
avformat_find_stream_info() when demuxing codecs without a decoder.
|
|
|
|
| |
Use the estimated duration only to calculate missing timestamps if needed.
|
|
|
|
|
|
|
|
|
|
| |
Also, do not give AVCodecContext.frame_size priority for muxing.
Updated 2 FATE references:
dxa-feeble - adds 1 audio frame that is still within 2 seconds as specified
by -t 2 in the FATE test
wmv8-drm-nodec - durations are not needed. previously they were estimated
using the packet size and average bit rate.
|
|
|
|
|
| |
also, properly set AVCodecContext.bits_per_coded_sample, AVStreasm.start_time,
and AVPacket.duration.
|
|
|
|
| |
it is not necessary.
|
|
|
|
|
|
|
|
|
| |
It is unnecessary. Also, for some codecs we're reading more than 1 frame per
packet. Instead we use a private context variable to calculate the bit rate,
stream duration, and packet durations.
Updated FATE seek test, which has slightly different timestamps due to a
more accurate bit rate calculation.
|
|
|
|
| |
It is not necessary.
|
|
|
|
| |
prevents lavf from setting incorrect packet durations.
|
|
|
|
| |
avformat_find_stream_info() no longer hangs while waiting for AAC frame_size
|
|
|
|
|
| |
In Ogg/CELT, frame_size is found in the same place as the sample_rate and
channels, so we do not need to force the frame_size to be parsed.
|
|
|
|
|
| |
It was only needed to avoid a bad time base (and thus non-monotone timestamps)
for stream copy to avi.
|
|
|
|
| |
We already will get the needed info because of CODEC_CAP_CHANNEL_CONF
|
|
|
|
|
| |
This way we can do stream copy without having the demuxer wait until
frame_size has been set.
|
|
|
|
|
| |
It is more reliable than AVCodecContext.frame_size for codecs with constant
packet duration.
|
|
|
|
|
|
| |
For encoding, frame_size is not a reliable indicator of packet duration.
Also, we don't want to have to force the demuxer to find frame_size for
stream copy to work.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Split off packet parsing into a separate function. Parse full packets at
once and store them in a queue, eliminating the need for tracking
parsing state in AVStream.
The horrible unreadable loop in read_frame_internal() now isn't weirdly
ordered and doesn't contain evil gotos, so it should be much easier to
understand.
compute_pkt_fields() now invents slightly different timestamps for two
raw vc1 tests, due to has_b_frames being set a bit later. They shouldn't
be more wrong (or right) than previous ones.
|
|
|
|
|
|
|
|
| |
Make packet buffer a parameter, don't hardcode it to be
AVFormatContext.packet_buffer.
Also move the function higher in the file, since it will be called from
read_frame_internal().
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Update FATE test to reflect delayed video due to the file having audio-only
frames prior to the first frame with video.
|
|
|
|
|
| |
Also, set the time base based on the sample rate.
lavf-voc seek test updated to reflect slightly different seek points.
|
| |
|
|
|
|
|
|
|
| |
The time base is 1 / sample_rate, not 90000.
Several more codecs encode the sample count in the first 4 bytes of the
chunk, so we set the durations accordingly. Also, we can set start_time and
packet duration instead of keeping track of the sample count in the demuxer.
|
|
|
|
| |
Each packet has 18 sectors with 224/channels samples in each sector.
|
|
|
|
|
|
| |
Fixes timestamp calculation.
The FATE reference is updated because timestamp calculations are now more
accurate. Previous timestamps were based on average bit rate.
|
| |
|
| |
|
|
|
|
| |
This also allows for removing some of the Vorbis-related hacks.
|
|
|
|
|
|
|
| |
This allows it to be used with get_bits without the thread of overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
|
|
|
|
|
| |
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
|
|
|
|
|
| |
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
|
| |
|
|
|
|
|
|
| |
It's not supposed to be set by demuxers.
Set avg_frame_rate and r_frame_rate instead.
|
|
|
|
|
|
|
|
| |
The container has no timestamps and the framerate isn't stored in the
data either.
The decoder sets codec timebase to experimentally found value 1/15. Do
the same for the demuxer too, it should at least be better than the
default 1/90000.
|
| |
|
|
|
|
| |
Demuxers are not supposed to set it.
|
|
|
|
|
|
| |
Demuxers are not supposed to set it.
Set stream timebase and framerates instead (this is a cfr container with
no timestamps).
|
|
|
|
|
| |
Demuxers are not supposed to set it.
Set r_frame_rate and avg_frame_rate instead.
|
|
|
|
|
|
|
|
| |
The fields "Number of Bytes" and "Number of Frames" are mixed up. "Bytes"
come first, "Frames" behind.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Alex Converse <alex.converse@gmail.com>
|
|
|
|
| |
libavformat/rmdec.c:383: warning: format ‘%d’ expects type ‘int’, but argument 7 has type ‘int64_t’
|
|
|
|
|
|
|
| |
This makes the packetization spec compliant for cases where one single
GOB doesn't fit into an RTP packet.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
| |
|
| |
|
| |
|
|
|
|
| |
Otherwise the values are overwritten.
|
|
|
|
|
|
|
| |
This fixes cases where the user had specified one desired MTU
via an option, and the protocol indicates another one.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
| |
support.
|