Lines Matching refs:seg

934                 struct segment *seg;
938 seg = av_malloc(sizeof(struct segment));
939 if (!seg) {
944 memcpy(seg->iv, iv, sizeof(iv));
947 memset(seg->iv, 0, sizeof(seg->iv));
948 AV_WB64(seg->iv + 8, seq);
955 av_free(seg);
958 seg->key = av_strdup(tmp_str);
959 if (!seg->key) {
960 av_free(seg);
965 seg->key = NULL;
971 if (seg->key)
972 av_free(seg->key);
973 av_free(seg);
976 seg->url = av_strdup(tmp_str);
977 if (!seg->url) {
978 av_free(seg->key);
979 av_free(seg);
986 " set to default value to 1ms.\n", seg->url);
989 seg->duration = duration;
990 seg->key_type = key_type;
991 dynarray_add(&pls->segments, &pls->n_segments, seg);
994 seg->size = seg_size;
996 seg->url_offset = seg_offset;
1000 seg->url_offset = 0;
1004 seg->init_section = cur_init_section;
1058 static int read_from_url(struct playlist *pls, struct segment *seg,
1064 if (seg->size >= 0)
1065 buf_size = FFMIN(buf_size, seg->size - pls->cur_seg_offset);
1183 struct segment *seg = current_segment(pls);
1189 bytes = read_from_url(pls, seg, buf + *len, ID3v2_HEADER_SIZE - *len);
1210 int64_t maxsize = seg->size >= 0 ? seg->size : 1024*1024;
1241 if (read_from_url(pls, seg, pls->id3_buf + id3_buf_pos, remaining) != remaining)
1255 bytes = read_from_url(pls, seg, buf + *len, buf_size - *len);
1275 static int open_input(HLSContext *c, struct playlist *pls, struct segment *seg, AVIOContext **in)
1284 if (seg->size >= 0) {
1287 av_dict_set_int(&opts, "offset", seg->url_offset, 0);
1288 av_dict_set_int(&opts, "end_offset", seg->url_offset + seg->size, 0);
1292 seg->url, seg->url_offset, pls->index);
1294 if (seg->key_type == KEY_AES_128 || seg->key_type == KEY_SAMPLE_AES) {
1295 if (strcmp(seg->key, pls->key_url)) {
1297 if (open_url(pls->parent, &pb, seg->key, &c->avio_opts, opts, NULL) == 0) {
1301 seg->key);
1306 seg->key);
1308 av_strlcpy(pls->key_url, seg->key, sizeof(pls->key_url));
1312 if (seg->key_type == KEY_AES_128) {
1314 ff_data_to_hex(iv, seg->iv, sizeof(seg->iv), 0);
1316 if (strstr(seg->url, "://"))
1317 snprintf(url, sizeof(url), "crypto+%s", seg->url);
1319 snprintf(url, sizeof(url), "crypto:%s", seg->url);
1330 ret = open_url(pls->parent, in, seg->url, &c->avio_opts, opts, &is_http);
1343 if (ret == 0 && !is_http && seg->url_offset) {
1344 int64_t seekret = avio_seek(*in, seg->url_offset, SEEK_SET);
1346 av_log(pls->parent, AV_LOG_ERROR, "Unable to seek to offset %"PRId64" of HLS segment '%s'\n", seg->url_offset, seg->url);
1358 static int update_init_section(struct playlist *pls, struct segment *seg)
1366 if (seg->init_section == pls->cur_init_section)
1371 if (!seg->init_section)
1374 ret = open_input(c, pls, seg->init_section, &pls->input);
1382 if (seg->init_section->size >= 0)
1383 sec_size = seg->init_section->size;
1397 ret = read_from_url(pls, seg->init_section, pls->init_sec_buf,
1404 pls->cur_init_section = seg->init_section;
1475 struct segment *seg;
1545 seg = current_segment(v);
1548 ret = update_init_section(v, seg);
1558 ret = open_input(c, v, seg, &v->input);
1581 seg = next_segment(v);
1583 seg && seg->key_type == KEY_NONE && av_strstart(seg->url, "http", NULL)) {
1584 ret = open_input(c, v, seg, &v->input_next);
1604 seg = current_segment(v);
1605 ret = read_from_url(v, seg, buf, buf_size);
1616 seg->key_type == KEY_NONE && av_strstart(seg->url, "http", NULL)) {
2021 struct segment *seg = NULL;
2059 seg = current_segment(pls);
2060 if (seg && seg->key_type == KEY_SAMPLE_AES && pls->n_renditions > 0 &&
2093 if (seg && seg->key_type == KEY_SAMPLE_AES && pls->is_id3_timestamped &&
2119 if (seg && seg->key_type == KEY_SAMPLE_AES) {
2165 if (seg && seg->key_type == KEY_SAMPLE_AES && pls->audio_setup_info.setup_data_length > 0 &&
2297 struct segment *seg = NULL;
2316 seg = current_segment(pls);
2317 if (seg && seg->key_type == KEY_SAMPLE_AES && !strstr(pls->ctx->iformat->name, "mov")) {
2319 memcpy(c->crypto_ctx.iv, seg->iv, sizeof(seg->iv));