Lines Matching defs:flv

39 #include "flv.h"
134 FLVContext *flv = s->priv_data;
138 if (flv->last_keyframe_stream_index < 0) {
143 av_assert0(flv->last_keyframe_stream_index <= s->nb_streams);
144 stream = s->streams[flv->last_keyframe_stream_index];
147 for (i = 0; i < flv->keyframe_count; i++) {
149 flv->keyframe_filepositions[i], flv->keyframe_times[i] * 1000);
150 av_add_index_entry(stream, flv->keyframe_filepositions[i],
151 flv->keyframe_times[i] * 1000, 0, 0, AVINDEX_KEYFRAME);
157 av_freep(&flv->keyframe_times);
158 av_freep(&flv->keyframe_filepositions);
159 flv->keyframe_count = 0;
165 FLVContext *flv = s->priv_data;
177 st->codecpar->bit_rate = flv->audio_bit_rate;
178 flv->missing_streams &= ~FLV_HEADER_FLAG_HASAUDIO;
181 st->codecpar->bit_rate = flv->video_bit_rate;
182 flv->missing_streams &= ~FLV_HEADER_FLAG_HASVIDEO;
183 st->avg_frame_rate = flv->framerate;
188 flv->last_keyframe_stream_index = s->nb_streams - 1;
453 FLVContext *flv = s->priv_data;
461 if (flv->keyframe_count > 0) {
465 av_assert0(!flv->keyframe_times);
466 av_assert0(!flv->keyframe_filepositions);
524 flv->validate_index[i].pos = filepositions[i];
525 flv->validate_index[i].dts = times[i] * 1000;
526 flv->validate_count = i + 1;
528 flv->keyframe_times = times;
529 flv->keyframe_filepositions = filepositions;
530 flv->keyframe_count = timeslen;
550 FLVContext *flv = s->priv_data;
652 flv->video_bit_rate = num_val * 1024.0;
655 flv->audio_bit_rate = num_val * 1024.0;
662 flv->framerate = av_d2q(num_val, 1000);
664 vstream->avg_frame_rate = flv->framerate;
665 } else if (flv->trust_metadata) {
691 flv->broken_sizes = 1;
696 flv->broken_sizes = 1;
718 !strcmp(key, "datastream")) && !flv->dump_full_metadata)
752 FLVContext *flv = s->priv_data;
791 flv->last_keyframe_stream_index = i;
794 if (flv->last_keyframe_stream_index == -1)
795 flv->last_keyframe_stream_index = i;
810 FLVContext *flv = s->priv_data;
821 flv->missing_streams = flags & (FLV_HEADER_FLAG_HASVIDEO | FLV_HEADER_FLAG_HASAUDIO);
835 av_log(s, AV_LOG_WARNING, "Read FLV header error, input file is not a standard flv format, first PreviousTagSize0 always is 0\n");
839 flv->sum_flv_tag_size = 0;
840 flv->last_keyframe_stream_index = -1;
848 FLVContext *flv = s->priv_data;
850 av_freep(&flv->new_extradata[i]);
851 av_freep(&flv->keyframe_times);
852 av_freep(&flv->keyframe_filepositions);
868 static int flv_queue_extradata(FLVContext *flv, AVIOContext *pb, int stream,
874 av_free(flv->new_extradata[stream]);
875 flv->new_extradata[stream] = av_mallocz(size +
877 if (!flv->new_extradata[stream])
879 flv->new_extradata_size[stream] = size;
880 avio_read(pb, flv->new_extradata[stream], size);
1017 FLVContext *flv = s->priv_data;
1024 flv->resync_buffer[j ] =
1025 flv->resync_buffer[j1] = avio_r8(s->pb);
1028 uint8_t *d = flv->resync_buffer + j1 - 8;
1033 av_log(s, AV_LOG_WARNING, "Concatenated FLV detected, might fail to demux, decode and seek %"PRId64"\n", flv->last_ts);
1034 flv->time_offset = flv->last_ts + 1;
1035 flv->time_pos = avio_tell(s->pb);
1040 unsigned lsize2 = AV_RB32(flv->resync_buffer + j1 - 4);
1042 unsigned size2 = AV_RB24(flv->resync_buffer + j1 - lsize2 + 1 - 4);
1043 unsigned lsize1 = AV_RB32(flv->resync_buffer + j1 - lsize2 - 8);
1045 unsigned size1 = AV_RB24(flv->resync_buffer + j1 - lsize1 + 1 - lsize2 - 8);
1059 FLVContext *flv = s->priv_data;
1081 flv->sum_flv_tag_size += size + 11LL;
1090 if (flv->validate_next < flv->validate_count) {
1091 int64_t validate_pos = flv->validate_index[flv->validate_next].pos;
1093 if (FFABS(dts - flv->validate_index[flv->validate_next].dts) <=
1095 flv->validate_next++;
1098 flv->validate_count = 0;
1102 flv->validate_count = 0;
1138 if (type < 0 && flv->validate_count &&
1139 flv->validate_index[0].pos > next &&
1140 flv->validate_index[0].pos - 4 < next) {
1142 next = flv->validate_index[0].pos - 4;
1157 "Skipping flv packet: type %d, size %d, flags %d.\n",
1209 if (flv->time_pos <= pos) {
1210 dts += flv->time_offset;
1230 !flv->searched_for_end) {
1256 flv->searched_for_end = 1;
1275 flv->last_sample_rate =
1277 flv->last_channels =
1339 if (!flv->wrong_dts)
1342 flv->wrong_dts = 1;
1361 if ((ret = flv_queue_extradata(flv, s->pb, stream_type, size)) < 0)
1392 if (flv->new_extradata[stream_type]) {
1394 flv->new_extradata[stream_type],
1395 flv->new_extradata_size[stream_type]);
1397 flv->new_extradata[stream_type] = NULL;
1398 flv->new_extradata_size[stream_type] = 0;
1402 (sample_rate != flv->last_sample_rate ||
1403 channels != flv->last_channels)) {
1404 flv->last_sample_rate = sample_rate;
1405 flv->last_channels = channels;
1417 if (!flv->trust_datasize) {
1420 (last != orig_size || !last) && last != flv->sum_flv_tag_size &&
1421 !flv->broken_sizes) {
1422 av_log(s, AV_LOG_ERROR, "Packet mismatch %d %d %"PRId64"\n", last, orig_size + 11, flv->sum_flv_tag_size);
1433 flv->last_ts = pkt->dts;
1441 FLVContext *flv = s->priv_data;
1442 flv->validate_count = 0;
1457 .class_name = "(live) flv/kux demuxer",
1464 .name = "flv",
1472 .extensions = "flv",
1485 .extensions = "flv",