|
@@ -587,7 +587,7 @@ static int init_input(AVFormatContext *s, const char *filename)
|
|
|
return 0;
|
|
|
|
|
|
if ((ret = avio_open(&s->pb, filename, AVIO_FLAG_READ)) < 0)
|
|
|
- return ret;
|
|
|
+ return ret;
|
|
|
if (s->iformat)
|
|
|
return 0;
|
|
|
return av_probe_input_buffer(s->pb, &s->iformat, filename, s, 0, 0);
|
|
@@ -1146,7 +1146,7 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
|
|
|
st->cur_pkt.data = NULL;
|
|
|
assert(st->cur_len == 0);
|
|
|
}else{
|
|
|
- pkt->destruct = NULL;
|
|
|
+ pkt->destruct = NULL;
|
|
|
}
|
|
|
compute_pkt_fields(s, st, st->parser, pkt);
|
|
|
|
|
@@ -1760,7 +1760,7 @@ int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, int f
|
|
|
return -1;
|
|
|
|
|
|
st= s->streams[stream_index];
|
|
|
- /* timestamp for default must be expressed in AV_TIME_BASE units */
|
|
|
+ /* timestamp for default must be expressed in AV_TIME_BASE units */
|
|
|
timestamp = av_rescale(timestamp, st->time_base.den, AV_TIME_BASE * (int64_t)st->time_base.num);
|
|
|
}
|
|
|
|
|
@@ -1959,39 +1959,40 @@ static void estimate_timings_from_pts(AVFormatContext *ic, int64_t old_offset)
|
|
|
filesize = ic->file_size;
|
|
|
end_time = AV_NOPTS_VALUE;
|
|
|
do{
|
|
|
- offset = filesize - (DURATION_MAX_READ_SIZE<<retry);
|
|
|
- if (offset < 0)
|
|
|
- offset = 0;
|
|
|
+ offset = filesize - (DURATION_MAX_READ_SIZE<<retry);
|
|
|
+ if (offset < 0)
|
|
|
+ offset = 0;
|
|
|
|
|
|
- avio_seek(ic->pb, offset, SEEK_SET);
|
|
|
- read_size = 0;
|
|
|
- for(;;) {
|
|
|
- if (read_size >= DURATION_MAX_READ_SIZE<<(FFMAX(retry-1,0)))
|
|
|
- break;
|
|
|
+ avio_seek(ic->pb, offset, SEEK_SET);
|
|
|
+ read_size = 0;
|
|
|
+ for(;;) {
|
|
|
+ if (read_size >= DURATION_MAX_READ_SIZE<<(FFMAX(retry-1,0)))
|
|
|
+ break;
|
|
|
|
|
|
- do{
|
|
|
- ret = av_read_packet(ic, pkt);
|
|
|
- }while(ret == AVERROR(EAGAIN));
|
|
|
- if (ret != 0)
|
|
|
- break;
|
|
|
- read_size += pkt->size;
|
|
|
- st = ic->streams[pkt->stream_index];
|
|
|
- if (pkt->pts != AV_NOPTS_VALUE &&
|
|
|
- (st->start_time != AV_NOPTS_VALUE ||
|
|
|
- st->first_dts != AV_NOPTS_VALUE)) {
|
|
|
- duration = end_time = pkt->pts;
|
|
|
- if (st->start_time != AV_NOPTS_VALUE) duration -= st->start_time;
|
|
|
- else duration -= st->first_dts;
|
|
|
- if (duration < 0)
|
|
|
- duration += 1LL<<st->pts_wrap_bits;
|
|
|
- if (duration > 0) {
|
|
|
- if (st->duration == AV_NOPTS_VALUE ||
|
|
|
- st->duration < duration)
|
|
|
- st->duration = duration;
|
|
|
+ do {
|
|
|
+ ret = av_read_packet(ic, pkt);
|
|
|
+ } while(ret == AVERROR(EAGAIN));
|
|
|
+ if (ret != 0)
|
|
|
+ break;
|
|
|
+ read_size += pkt->size;
|
|
|
+ st = ic->streams[pkt->stream_index];
|
|
|
+ if (pkt->pts != AV_NOPTS_VALUE &&
|
|
|
+ (st->start_time != AV_NOPTS_VALUE ||
|
|
|
+ st->first_dts != AV_NOPTS_VALUE)) {
|
|
|
+ duration = end_time = pkt->pts;
|
|
|
+ if (st->start_time != AV_NOPTS_VALUE)
|
|
|
+ duration -= st->start_time;
|
|
|
+ else
|
|
|
+ duration -= st->first_dts;
|
|
|
+ if (duration < 0)
|
|
|
+ duration += 1LL<<st->pts_wrap_bits;
|
|
|
+ if (duration > 0) {
|
|
|
+ if (st->duration == AV_NOPTS_VALUE || st->duration < duration)
|
|
|
+ st->duration = duration;
|
|
|
+ }
|
|
|
}
|
|
|
+ av_free_packet(pkt);
|
|
|
}
|
|
|
- av_free_packet(pkt);
|
|
|
- }
|
|
|
}while( end_time==AV_NOPTS_VALUE
|
|
|
&& filesize > (DURATION_MAX_READ_SIZE<<retry)
|
|
|
&& ++retry <= DURATION_MAX_RETRY);
|
|
@@ -3914,7 +3915,7 @@ int avformat_query_codec(AVOutputFormat *ofmt, enum CodecID codec_id, int std_co
|
|
|
return !!av_codec_get_tag(ofmt->codec_tag, codec_id);
|
|
|
else if (codec_id == ofmt->video_codec || codec_id == ofmt->audio_codec ||
|
|
|
codec_id == ofmt->subtitle_codec)
|
|
|
- return 1;
|
|
|
+ return 1;
|
|
|
}
|
|
|
return AVERROR_PATCHWELCOME;
|
|
|
}
|