aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/mov.c
diff options
context:
space:
mode:
authorFrançois Revol <revol@free.fr>2005-01-23 09:59:36 +0000
committerFrançois Revol <revol@free.fr>2005-01-23 09:59:36 +0000
commit7dbab4a9b4997d401993688968220b6e8260296f (patch)
tree1e460325a8f18fc335c570bf0cb2f2eb93a8f71e /libavformat/mov.c
parent3b33943e9b3f49da44068f2278b6532efec35114 (diff)
downloadffmpeg-7dbab4a9b4997d401993688968220b6e8260296f.tar.gz
Revert the fixed-size-sample patch as it brokes and others
WTF I thought I had commited this yesterday... was probably too asleep :°) Originally committed as revision 3864 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/mov.c')
-rw-r--r--libavformat/mov.c43
1 files changed, 24 insertions, 19 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 4ea401f95d..cd87fa6540 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -1247,7 +1247,7 @@ static int mov_read_stsz(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
for(i=0; i<entries; i++) {
sc->sample_sizes[i] = get_be32(pb);
#ifdef DEBUG
-/* av_log(NULL, AV_LOG_DEBUG, "sample_sizes[]=%ld\n", sc->sample_sizes[i]); */
+ av_log(NULL, AV_LOG_DEBUG, "sample_sizes[]=%ld\n", sc->sample_sizes[i]);
#endif
}
return 0;
@@ -1722,14 +1722,17 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
#ifdef MOV_SPLIT_CHUNKS
if (mov->partial) {
-
- int idx;
-
sc = mov->partial;
idx = sc->sample_to_chunk_index;
if (idx < 0) return 0;
- size = (sc->sample_size)?sc->sample_size:sc->sample_sizes[sc->current_sample];
+#ifdef DEBUG
+ fprintf(stderr, "sc[ffid %d]->sample_size = %d\n", sc->ffindex, sc->sample_size);
+#endif
+ //size = sc->sample_sizes[sc->current_sample];
+ // that ain't working...
+ //size = (sc->sample_size)?sc->sample_size:sc->sample_sizes[sc->current_sample];
+ size = (sc->sample_size > 1)?sc->sample_size:sc->sample_sizes[sc->current_sample];
sc->current_sample++;
sc->left_in_chunk--;
@@ -1816,19 +1819,21 @@ again:
#ifdef MOV_SPLIT_CHUNKS
/* split chunks into samples */
- 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];
- }
+ if (sc->sample_size == 0) {
+ 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 > 1)?sc->sample_size:sc->sample_sizes[sc->current_sample];
+ }
- sc->current_sample++;
+ sc->current_sample++;
+ }
#endif
readchunk:
@@ -1879,14 +1884,14 @@ readchunk:
pkt->flags |= PKT_FLAG_KEY;
#ifdef DEBUG
-
+/*
av_log(NULL, AV_LOG_DEBUG, "Packet (%d, %ld) ", pkt->stream_index, pkt->size);
for(i=0; i<8; i++)
av_log(NULL, AV_LOG_DEBUG, "%02x ", pkt->data[i]);
for(i=0; i<8; i++)
av_log(NULL, AV_LOG_DEBUG, "%c ", (pkt->data[i]) & 0x7F);
av_log(NULL, AV_LOG_DEBUG, "\n");
-
+*/
#endif
mov->next_chunk_offset = offset + size;