Lines Matching defs:asf_pkt
1021 static void reset_packet(ASFPacket *asf_pkt)
1023 asf_pkt->size_left = 0;
1024 asf_pkt->data_size = 0;
1025 asf_pkt->duration = 0;
1026 asf_pkt->flags = 0;
1027 asf_pkt->dts = 0;
1028 av_packet_unref(asf_pkt->avpkt);
1031 static int asf_read_replicated_data(AVFormatContext *s, ASFPacket *asf_pkt)
1037 if (!asf_pkt->data_size) {
1041 if ((ret = av_new_packet(asf_pkt->avpkt, data_size)) < 0)
1043 asf_pkt->data_size = asf_pkt->size_left = data_size;
1046 asf_pkt->dts = avio_rl32(pb); // read presentation time
1054 ASFPacket *asf_pkt)
1067 pkt->flags = asf_pkt->flags;
1072 if ((ret = asf_read_replicated_data(s, asf_pkt)) < 0)
1082 p = asf_pkt->avpkt->data + asf_pkt->data_size - asf_pkt->size_left;
1083 if (pay_len > asf_pkt->size_left) {
1086 pay_len, asf_pkt->size_left);
1087 skip = pay_len - asf_pkt->size_left;
1088 pay_len = asf_pkt->size_left;
1090 if (asf_pkt->size_left <= 0)
1097 asf_pkt->size_left -= pay_len;
1104 static int asf_read_single_payload(AVFormatContext *s, ASFPacket *asf_pkt)
1113 if (!asf_pkt->data_size) {
1117 if ((ret = av_new_packet(asf_pkt->avpkt, data_size)) < 0)
1119 asf_pkt->data_size = asf_pkt->size_left = data_size;
1122 asf_pkt->dts = avio_rl32(pb); // read presentation time
1138 p = asf_pkt->avpkt->data + asf_pkt->data_size - asf_pkt->size_left;
1139 if (size > asf_pkt->size_left || asf_pkt->size_left <= 0)
1141 if (asf_pkt->size_left > size)
1142 asf_pkt->size_left -= size;
1144 asf_pkt->size_left = 0;
1161 ASFPacket *asf_pkt = NULL;
1171 asf_pkt = &asf->asf_st[i]->pkt;
1172 asf_pkt->stream_index = asf->asf_st[i]->index;
1176 if (!asf_pkt) {
1191 asf_pkt->flags |= AV_PKT_FLAG_KEY;
1198 if (asf_pkt->size_left && (asf_pkt->frame_num != media_len)) {
1200 reset_packet(asf_pkt);
1202 asf_pkt->frame_num = media_len;
1205 if ((ret = asf_read_multiple_payload(s, pkt, asf_pkt)) < 0)
1210 pkt->flags = asf_pkt->flags;
1214 if ((ret = asf_read_single_payload(s, asf_pkt)) < 0)
1220 asf_pkt = &asf->asf_st[i]->pkt;
1224 if (!asf_pkt)
1226 pkt->flags = asf_pkt->flags;
1227 pkt->dts = asf_pkt->dts;
1273 static int asf_deinterleave(AVFormatContext *s, ASFPacket *asf_pkt, int st_num)
1277 unsigned char *p = asf_pkt->avpkt->data;
1285 data = av_malloc(asf_pkt->data_size + AV_INPUT_BUFFER_PADDING_SIZE);
1288 memset(data + asf_pkt->data_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
1290 while (asf_pkt->data_size >= asf_st->span * pkt_len + pos) {
1291 if (pos >= asf_pkt->data_size) {
1295 if (pos >= asf_pkt->data_size) {
1299 if ((pos + chunk_len) >= asf_pkt->data_size)
1308 if (p > asf_pkt->avpkt->data + asf_pkt->data_size)
1311 av_packet_unref(asf_pkt->avpkt);
1312 ret = av_packet_from_data(asf_pkt->avpkt, data, asf_pkt->data_size);
1380 ASFPacket *asf_pkt = &asf->asf_st[i]->pkt;
1381 if (asf_pkt && !asf_pkt->size_left && asf_pkt->data_size) {
1384 if ((ret = asf_deinterleave(s, asf_pkt, i)) < 0)
1386 av_packet_move_ref(pkt, asf_pkt->avpkt);
1388 pkt->flags = asf_pkt->flags;
1389 pkt->dts = asf_pkt->dts - asf->preroll;
1390 asf_pkt->data_size = 0;
1391 asf_pkt->frame_num = 0;