Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(545)

Side by Side Diff: patched-ffmpeg-mt/libavutil/fifo.c

Issue 789004: ffmpeg roll of source to mar 9 version... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/ffmpeg/
Patch Set: '' Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * a very simple circular buffer FIFO implementation 2 * a very simple circular buffer FIFO implementation
3 * Copyright (c) 2000, 2001, 2002 Fabrice Bellard 3 * Copyright (c) 2000, 2001, 2002 Fabrice Bellard
4 * Copyright (c) 2006 Roman Shaposhnik 4 * Copyright (c) 2006 Roman Shaposhnik
5 * 5 *
6 * This file is part of FFmpeg. 6 * This file is part of FFmpeg.
7 * 7 *
8 * FFmpeg is free software; you can redistribute it and/or 8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public 9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 av_fifo_generic_read(f, f2->buffer, len, NULL); 71 av_fifo_generic_read(f, f2->buffer, len, NULL);
72 f2->wptr += len; 72 f2->wptr += len;
73 f2->wndx += len; 73 f2->wndx += len;
74 av_free(f->buffer); 74 av_free(f->buffer);
75 *f= *f2; 75 *f= *f2;
76 av_free(f2); 76 av_free(f2);
77 } 77 }
78 return 0; 78 return 0;
79 } 79 }
80 80
81 // src must NOT be const as it can be a context for func that may need updating (like a pointer or byte counter)
81 int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void *, void*, int)) 82 int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void *, void*, int))
82 { 83 {
83 int total = size; 84 int total = size;
84 do { 85 do {
85 int len = FFMIN(f->end - f->wptr, size); 86 int len = FFMIN(f->end - f->wptr, size);
86 if(func) { 87 if(func) {
87 if(func(src, f->wptr, len) <= 0) 88 if(func(src, f->wptr, len) <= 0)
88 break; 89 break;
89 } else { 90 } else {
90 memcpy(f->wptr, src, len); 91 memcpy(f->wptr, src, len);
(...skipping 28 matching lines...) Expand all
119 } 120 }
120 121
121 /** Discard data from the FIFO. */ 122 /** Discard data from the FIFO. */
122 void av_fifo_drain(AVFifoBuffer *f, int size) 123 void av_fifo_drain(AVFifoBuffer *f, int size)
123 { 124 {
124 f->rptr += size; 125 f->rptr += size;
125 if (f->rptr >= f->end) 126 if (f->rptr >= f->end)
126 f->rptr -= f->end - f->buffer; 127 f->rptr -= f->end - f->buffer;
127 f->rndx += size; 128 f->rndx += size;
128 } 129 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698