| Index: patches/from_upstream/20_r25798_ogg_data_offset.patch
|
| ===================================================================
|
| --- patches/from_upstream/20_r25798_ogg_data_offset.patch (revision 0)
|
| +++ patches/from_upstream/20_r25798_ogg_data_offset.patch (revision 0)
|
| @@ -0,0 +1,33 @@
|
| +diff -wurp -N orig/libavformat/oggdec.c ffmpeg-mt/libavformat/oggdec.c
|
| +--- orig/libavformat/oggdec.c 2010-11-29 08:28:58 -0800
|
| ++++ ffmpeg-mt/libavformat/oggdec.c 2010-11-29 08:29:07 -0800
|
| +@@ -383,9 +383,27 @@ ogg_packet (AVFormatContext * s, int *st
|
| + if (!os->header){
|
| + os->segp = segp;
|
| + os->psize = psize;
|
| +- if (!ogg->headers)
|
| +- s->data_offset = os->sync_pos;
|
| ++
|
| ++ // We've reached the first non-header packet. All header
|
| ++ // packets must be complete before the first non-header
|
| ++ // one, so everything that follows must be non-header.
|
| + ogg->headers = 1;
|
| ++
|
| ++ // Update the header state for all streams and
|
| ++ // compute the data_offset.
|
| ++ s->data_offset = os->sync_pos;
|
| ++ for (i = 0; i < ogg->nstreams; i++) {
|
| ++ struct ogg_stream *cur_os = ogg->streams + i;
|
| ++ // Set stream header state to 0 if its last packet
|
| ++ // was a header.
|
| ++ if (cur_os->header > 0)
|
| ++ cur_os->header = 0;
|
| ++
|
| ++ // if we have a partial non-header packet, its start is
|
| ++ // obviously at or after the data start.
|
| ++ if (cur_os->incomplete)
|
| ++ s->data_offset = FFMIN(s->data_offset, cur_os->sync_pos);
|
| ++ }
|
| + }else{
|
| + os->pstart += os->psize;
|
| + os->psize = 0;
|
|
|
| Property changes on: patches\from_upstream\20_r25798_ogg_data_offset.patch
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|