Mercurial > libavformat.hg
view voc.h @ 1942:70b741fa63eb libavformat
The NSV demuxer assumes that a video frame's timestamp increases by one on each
frame, but some low-bitrate NSV files omit video frames for some NSV frames,
and expect the timestamp to increase by one every NSV frame. This is noticeable
in 64vp3.nsv where the video runs several times faster than the audio. Fix this
by unconditionally incrementing the video's timestamp with each NSV frame.
patch by David Conrad, umovimus gmail com
author | diego |
---|---|
date | Wed, 21 Mar 2007 11:05:35 +0000 |
parents | 2a85c82b8538 |
children | 06083249909c |
line wrap: on
line source
/* * Creative Voice File demuxer. * Copyright (c) 2006 Aurelien Jacobs <aurel@gnuage.org> * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef VOC_H #define VOC_H #include "avformat.h" #include "riff.h" /* for CodecTag */ typedef struct voc_dec_context { int remaining_size; } voc_dec_context_t; typedef enum voc_type { VOC_TYPE_EOF = 0x00, VOC_TYPE_VOICE_DATA = 0x01, VOC_TYPE_VOICE_DATA_CONT = 0x02, VOC_TYPE_SILENCE = 0x03, VOC_TYPE_MARKER = 0x04, VOC_TYPE_ASCII = 0x05, VOC_TYPE_REPETITION_START = 0x06, VOC_TYPE_REPETITION_END = 0x07, VOC_TYPE_EXTENDED = 0x08, VOC_TYPE_NEW_VOICE_DATA = 0x09, } voc_type_t; extern const unsigned char voc_magic[21]; extern const AVCodecTag voc_codec_tags[]; int voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size); #endif