forked from FFmpeg/FFmpeg
handle fixed sample_size patch by Roine Gustafsson <roine AT users.sourceforge.net>
Originally committed as revision 3814 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
568e18b15e
commit
7619ed2be4
1 changed files with 14 additions and 15 deletions
|
@ -1716,6 +1716,7 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
|
|||
int64_t offset = 0x0FFFFFFFFFFFFFFFLL;
|
||||
int i, a, b, m;
|
||||
int size;
|
||||
int idx;
|
||||
size = 0x0FFFFFFF;
|
||||
|
||||
#ifdef MOV_SPLIT_CHUNKS
|
||||
|
@ -1727,7 +1728,7 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
|
|||
idx = sc->sample_to_chunk_index;
|
||||
|
||||
if (idx < 0) return 0;
|
||||
size = sc->sample_sizes[sc->current_sample];
|
||||
size = (sc->sample_size)?sc->sample_size:sc->sample_sizes[sc->current_sample];
|
||||
|
||||
sc->current_sample++;
|
||||
sc->left_in_chunk--;
|
||||
|
@ -1814,21 +1815,19 @@ again:
|
|||
|
||||
#ifdef MOV_SPLIT_CHUNKS
|
||||
/* split chunks into samples */
|
||||
if (sc->sample_size == 0) {
|
||||
int idx = sc->sample_to_chunk_index;
|
||||
if ((idx + 1 < sc->sample_to_chunk_sz)
|
||||
&& (sc->next_chunk >= sc->sample_to_chunk[idx + 1].first))
|
||||
idx++;
|
||||
sc->sample_to_chunk_index = idx;
|
||||
if (idx >= 0 && sc->sample_to_chunk[idx].count != 1) {
|
||||
mov->partial = sc;
|
||||
/* we'll have to get those samples before next chunk */
|
||||
sc->left_in_chunk = sc->sample_to_chunk[idx].count - 1;
|
||||
size = sc->sample_sizes[sc->current_sample];
|
||||
}
|
||||
|
||||
sc->current_sample++;
|
||||
idx = sc->sample_to_chunk_index;
|
||||
if ((idx + 1 < sc->sample_to_chunk_sz)
|
||||
&& (sc->next_chunk >= sc->sample_to_chunk[idx + 1].first))
|
||||
idx++;
|
||||
sc->sample_to_chunk_index = idx;
|
||||
if (idx >= 0 && sc->sample_to_chunk[idx].count != 1) {
|
||||
mov->partial = sc;
|
||||
/* we'll have to get those samples before next chunk */
|
||||
sc->left_in_chunk = sc->sample_to_chunk[idx].count - 1;
|
||||
size = (sc->sample_size)?sc->sample_size:sc->sample_sizes[sc->current_sample];
|
||||
}
|
||||
|
||||
sc->current_sample++;
|
||||
#endif
|
||||
|
||||
readchunk:
|
||||
|
|
Loading…
Add table
Reference in a new issue