• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/minidlna/ffmpeg-2.3.4/libavcodec/

Lines Matching refs:fpc

115 static uint8_t* flac_fifo_read_wrap(FLACParseContext *fpc, int offset, int len,
118 AVFifoBuffer *f = fpc->fifo_buf;
130 av_log(fpc->avctx, AV_LOG_ERROR,
155 static uint8_t* flac_fifo_read(FLACParseContext *fpc, int offset, int *len)
157 AVFifoBuffer *f = fpc->fifo_buf;
166 static int find_headers_search_validate(FLACParseContext *fpc, int offset)
171 header_buf = flac_fifo_read_wrap(fpc, offset,
173 &fpc->wrap_buf,
174 &fpc->wrap_buf_allocated_size);
175 if (frame_header_is_valid(fpc->avctx, header_buf, &fi)) {
176 FLACHeaderMarker **end_handle = &fpc->headers;
187 av_log(fpc->avctx, AV_LOG_ERROR,
198 fpc->nb_headers_found++;
204 static int find_headers_search(FLACParseContext *fpc, uint8_t *buf, int buf_size,
213 size = find_headers_search_validate(fpc, search_start + i);
221 size = find_headers_search_validate(fpc, search_start + i + j);
228 static int find_new_headers(FLACParseContext *fpc, int search_start)
233 fpc->nb_headers_found = 0;
236 search_end = av_fifo_size(fpc->fifo_buf) - (MAX_FRAME_HEADER_SIZE - 1);
238 buf = flac_fifo_read(fpc, search_start, &read_len);
239 size = find_headers_search(fpc, buf, read_len, search_start);
250 buf = flac_fifo_read(fpc, search_start + 1, &read_len);
254 temp = find_headers_search_validate(fpc, search_start);
260 temp = find_headers_search(fpc, buf, read_len, search_start);
266 if (!size && fpc->headers)
267 for (end = fpc->headers; end; end = end->next)
272 static int check_header_fi_mismatch(FLACParseContext *fpc,
280 av_log(fpc->avctx, AV_LOG_WARNING + log_level_offset,
285 av_log(fpc->avctx, AV_LOG_WARNING + log_level_offset,
291 av_log(fpc->avctx, AV_LOG_WARNING + log_level_offset,
296 av_log(fpc->avctx, AV_LOG_WARNING + log_level_offset,
302 static int check_header_mismatch(FLACParseContext *fpc,
309 deduction = check_header_fi_mismatch(fpc, header_fi, child_fi,
340 av_log(fpc->avctx, AV_LOG_WARNING + log_level_offset,
379 buf = flac_fifo_read(fpc, start->offset, &read_len);
384 buf = flac_fifo_read(fpc, end->offset - read_len, &read_len);
391 av_log(fpc->avctx, AV_LOG_WARNING + log_level_offset,
410 static int score_header(FLACParseContext *fpc, FLACHeaderMarker *header)
420 if (fpc->last_fi_valid) {
422 base_score -= check_header_fi_mismatch(fpc, &fpc->last_fi, &header->fi,
434 header->link_penalty[dist] = check_header_mismatch(fpc, header,
437 child_score = score_header(fpc, child) - header->link_penalty[dist];
450 static void score_sequences(FLACParseContext *fpc)
455 for (curr = fpc->headers; curr; curr = curr->next)
459 for (curr = fpc->headers; curr; curr = curr->next) {
460 if (score_header(fpc, curr) > best_score) {
461 fpc->best_header = curr;
467 static int get_best_header(FLACParseContext* fpc, const uint8_t **poutbuf,
470 FLACHeaderMarker *header = fpc->best_header;
473 *poutbuf_size = av_fifo_size(fpc->fifo_buf) - header->offset;
478 check_header_mismatch(fpc, header, child, 0);
481 if (header->fi.channels != fpc->avctx->channels ||
482 !fpc->avctx->channel_layout) {
483 fpc->avctx->channels = header->fi.channels;
484 ff_flac_set_channel_layout(fpc->avctx);
486 fpc->avctx->sample_rate = header->fi.samplerate;
487 fpc->pc->duration = header->fi.blocksize;
488 *poutbuf = flac_fifo_read_wrap(fpc, header->offset, *poutbuf_size,
489 &fpc->wrap_buf,
490 &fpc->wrap_buf_allocated_size);
493 if (fpc->pc->flags & PARSER_FLAG_USE_CODEC_TS){
495 fpc->pc->pts = header->fi.frame_or_sample_num;
497 fpc->pc->pts = header->fi.frame_or_sample_num * header->fi.blocksize;
500 fpc->best_header_valid = 0;
501 fpc->last_fi_valid = 1;
502 fpc->last_fi = header->fi;
507 return child->offset - av_fifo_size(fpc->fifo_buf);
515 FLACParseContext *fpc = s->priv_data;
527 if (fpc->pc->flags & PARSER_FLAG_USE_CODEC_TS){
528 fpc->pc->pts = fi.frame_or_sample_num;
530 fpc->pc->pts *= fi.blocksize;
538 fpc->avctx = avctx;
539 if (fpc->best_header_valid)
540 return get_best_header(fpc, poutbuf, poutbuf_size);
543 if (fpc->best_header && fpc->best_header->best_child) {
545 FLACHeaderMarker *best_child = fpc->best_header->best_child;
548 for (curr = fpc->headers; curr != best_child; curr = temp) {
549 if (curr != fpc->best_header) {
557 fpc->nb_headers_buffered--;
560 av_fifo_drain(fpc->fifo_buf, best_child->offset);
566 fpc->nb_headers_buffered--;
568 fpc->headers = best_child;
569 if (fpc->nb_headers_buffered >= FLAC_MIN_HEADERS) {
570 fpc->best_header = best_child;
571 return get_best_header(fpc, poutbuf, poutbuf_size);
573 fpc->best_header = NULL;
574 } else if (fpc->best_header) {
578 for (curr = fpc->headers; curr != fpc->best_header; curr = temp) {
583 fpc->headers = fpc->best_header->next;
584 av_freep(&fpc->best_header->link_penalty);
585 av_freep(&fpc->best_header);
594 fpc->nb_headers_buffered < FLAC_MIN_HEADERS)
595 || ((!buf || !buf_size) && !fpc->end_padded)) {
600 fpc->end_padded = 1;
606 int nb_desired = FLAC_MIN_HEADERS - fpc->nb_headers_buffered + 1;
612 if ( av_fifo_space(fpc->fifo_buf) < read_end - read_start
613 && av_fifo_realloc2(fpc->fifo_buf, (read_end - read_start) + 2*av_fifo_size(fpc->fifo_buf)) < 0) {
616 (read_end - read_start) + av_fifo_size(fpc->fifo_buf));
621 av_fifo_generic_write(fpc->fifo_buf, (void*) read_start,
625 av_fifo_generic_write(fpc->fifo_buf, (void*) pad, sizeof(pad), NULL);
629 start_offset = av_fifo_size(fpc->fifo_buf) -
632 nb_headers = find_new_headers(fpc, start_offset);
640 fpc->nb_headers_buffered = nb_headers;
642 if (!fpc->end_padded && fpc->nb_headers_buffered < FLAC_MIN_HEADERS) {
652 if (fpc->end_padded || fpc->nb_headers_found)
653 score_sequences(fpc);
656 if (fpc->end_padded) {
657 int warp = fpc->fifo_buf->wptr - fpc->fifo_buf->buffer < MAX_FRAME_HEADER_SIZE;
659 fpc->fifo_buf->wptr -= MAX_FRAME_HEADER_SIZE;
660 fpc->fifo_buf->wndx -= MAX_FRAME_HEADER_SIZE;
662 fpc->fifo_buf->wptr += fpc->fifo_buf->end -
663 fpc->fifo_buf->buffer;
670 curr = fpc->headers;
671 for (curr = fpc->headers; curr; curr = curr->next) {
673 (!fpc->best_header || curr->max_score > fpc->best_header->max_score)) {
674 fpc->best_header = curr;
678 if (fpc->best_header) {
679 fpc->best_header_valid = 1;
680 if (fpc->best_header->offset > 0) {
683 fpc->best_header->offset);
687 *poutbuf_size = fpc->best_header->offset;
688 *poutbuf = flac_fifo_read_wrap(fpc, 0, *poutbuf_size,
689 &fpc->wrap_buf,
690 &fpc->wrap_buf_allocated_size);
691 return buf_size ? (read_end - buf) : (fpc->best_header->offset -
692 av_fifo_size(fpc->fifo_buf));
695 return get_best_header(fpc, poutbuf, poutbuf_size);
706 FLACParseContext *fpc = c->priv_data;
707 fpc->pc = c;
710 fpc->fifo_buf = av_fifo_alloc_array(FLAC_MIN_HEADERS + 3, FLAC_AVG_FRAME_SIZE);
711 if (!fpc->fifo_buf)
718 FLACParseContext *fpc = c->priv_data;
719 FLACHeaderMarker *curr = fpc->headers, *temp;
727 av_fifo_freep(&fpc->fifo_buf);
728 av_free(fpc->wrap_buf);