summaryrefslogtreecommitdiff
path: root/src/demuxers/demux_qt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/demuxers/demux_qt.c')
-rw-r--r--src/demuxers/demux_qt.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c
index 65dba499b..1346d4650 100644
--- a/src/demuxers/demux_qt.c
+++ b/src/demuxers/demux_qt.c
@@ -30,7 +30,7 @@
* build_frame_table
* free_qt_info
*
- * $Id: demux_qt.c,v 1.63 2002/07/10 05:38:18 pmhahn Exp $
+ * $Id: demux_qt.c,v 1.64 2002/07/14 22:27:25 miguelfreitas Exp $
*
*/
@@ -92,6 +92,8 @@ typedef unsigned int qt_atom;
#define STSS_ATOM QT_ATOM('s', 't', 's', 's')
#define CO64_ATOM QT_ATOM('c', 'o', '6', '4')
+#define ESDS_ATOM QT_ATOM('e', 's', 'd', 's')
+
/* placeholder for cutting and pasting */
#define _ATOM QT_ATOM('', '', '', '')
@@ -432,6 +434,11 @@ static qt_error parse_trak_atom(qt_sample_table *sample_table,
sample_table->media_description.audio.channels = trak_atom[i + 0x25];
sample_table->media_description.audio.bits = trak_atom[i + 0x27];
+ /* test stuff - will be removed
+ if( BE_32(&trak_atom[i + 0x34]) == ESDS_ATOM ) {
+ int atom_len = BE_32(&trak_atom[i + 0x30]) - 8;
+ printf("esds atom! size=%d\n", atom_len);
+ }*/
}
} else if (current_atom == STSZ_ATOM) {
@@ -1138,13 +1145,11 @@ static void *demux_qt_loop (void *this_gen) {
while (remaining_sample_bytes) {
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
- buf->content = buf->mem;
buf->type = this->qt->video_type;
buf->input_pos = this->qt->frames[i].offset;
buf->input_length = this->qt->input_length;
buf->input_time = this->qt->frames[i].pts / 90000;
buf->pts = this->qt->frames[i].pts;
- buf->decoder_flags = 0;
if (last_frame_pts) {
buf->decoder_flags |= BUF_FLAG_FRAMERATE;
@@ -1181,13 +1186,11 @@ static void *demux_qt_loop (void *this_gen) {
while (remaining_sample_bytes) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
- buf->content = buf->mem;
buf->type = this->qt->audio_type;
buf->input_pos = this->qt->frames[i].offset;
buf->input_length = this->qt->input_length;
buf->input_time = this->qt->frames[i].pts / 90000;
buf->pts = this->qt->frames[i].pts;
- buf->decoder_flags = 0;
if (remaining_sample_bytes > buf->max_size)
buf->size = buf->max_size;
@@ -1371,7 +1374,6 @@ static int demux_qt_start (demux_plugin_t *this_gen,
/* send init info to decoders */
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
- buf->content = buf->mem;
buf->decoder_flags = BUF_FLAG_HEADER;
buf->decoder_info[0] = 0;
buf->decoder_info[1] = 3000; /* initial video_step */
@@ -1382,7 +1384,6 @@ static int demux_qt_start (demux_plugin_t *this_gen,
if (this->audio_fifo && this->qt->audio_type) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
- buf->content = buf->mem;
buf->type = this->qt->audio_type;
buf->decoder_flags = BUF_FLAG_HEADER;
buf->decoder_info[0] = 0;
@@ -1390,9 +1391,7 @@ static int demux_qt_start (demux_plugin_t *this_gen,
buf->decoder_info[2] = this->qt->audio_bits;
buf->decoder_info[3] = this->qt->audio_channels;
this->audio_fifo->put (this->audio_fifo, buf);
- } else
- buf->free_buffer(buf);
-
+ }
this->status = DEMUX_OK;
this->send_end_buffers = 1;