OLD | NEW |
1 /* | 1 /* |
2 * MOV demuxer | 2 * MOV demuxer |
3 * Copyright (c) 2001 Fabrice Bellard | 3 * Copyright (c) 2001 Fabrice Bellard |
4 * Copyright (c) 2009 Baptiste Coudurier <baptiste dot coudurier at gmail dot co
m> | 4 * Copyright (c) 2009 Baptiste Coudurier <baptiste dot coudurier at gmail dot co
m> |
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 1793 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1804 } | 1804 } |
1805 } | 1805 } |
1806 | 1806 |
1807 /* only use old uncompressed audio chunk demuxing when stts specifies it */ | 1807 /* only use old uncompressed audio chunk demuxing when stts specifies it */ |
1808 if (!(st->codec->codec_type == AVMEDIA_TYPE_AUDIO && | 1808 if (!(st->codec->codec_type == AVMEDIA_TYPE_AUDIO && |
1809 sc->stts_count == 1 && sc->stts_data[0].duration == 1)) { | 1809 sc->stts_count == 1 && sc->stts_data[0].duration == 1)) { |
1810 unsigned int current_sample = 0; | 1810 unsigned int current_sample = 0; |
1811 unsigned int stts_sample = 0; | 1811 unsigned int stts_sample = 0; |
1812 unsigned int sample_size; | 1812 unsigned int sample_size; |
1813 unsigned int distance = 0; | 1813 unsigned int distance = 0; |
1814 int key_off = sc->keyframes && sc->keyframes[0] == 1; | 1814 int key_off = sc->keyframe_count && sc->keyframes[0] == 1; |
1815 | 1815 |
1816 current_dts -= sc->dts_shift; | 1816 current_dts -= sc->dts_shift; |
1817 | 1817 |
1818 if (!sc->sample_count) | 1818 if (!sc->sample_count) |
1819 return; | 1819 return; |
1820 if (sc->sample_count >= UINT_MAX / sizeof(*st->index_entries)) | 1820 if (sc->sample_count >= UINT_MAX / sizeof(*st->index_entries)) |
1821 return; | 1821 return; |
1822 st->index_entries = av_malloc(sc->sample_count*sizeof(*st->index_entries
)); | 1822 st->index_entries = av_malloc(sc->sample_count*sizeof(*st->index_entries
)); |
1823 if (!st->index_entries) | 1823 if (!st->index_entries) |
1824 return; | 1824 return; |
(...skipping 1164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2989 .name = "mov,mp4,m4a,3gp,3g2,mj2", | 2989 .name = "mov,mp4,m4a,3gp,3g2,mj2", |
2990 .long_name = NULL_IF_CONFIG_SMALL("QuickTime/MPEG-4/Motion JPEG 2000 fo
rmat"), | 2990 .long_name = NULL_IF_CONFIG_SMALL("QuickTime/MPEG-4/Motion JPEG 2000 fo
rmat"), |
2991 .priv_data_size = sizeof(MOVContext), | 2991 .priv_data_size = sizeof(MOVContext), |
2992 .read_probe = mov_probe, | 2992 .read_probe = mov_probe, |
2993 .read_header = mov_read_header, | 2993 .read_header = mov_read_header, |
2994 .read_packet = mov_read_packet, | 2994 .read_packet = mov_read_packet, |
2995 .read_close = mov_read_close, | 2995 .read_close = mov_read_close, |
2996 .read_seek = mov_read_seek, | 2996 .read_seek = mov_read_seek, |
2997 .priv_class = &class, | 2997 .priv_class = &class, |
2998 }; | 2998 }; |
OLD | NEW |