Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 19 Oct 2013 09:01:59 +0000 (11:01 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 19 Oct 2013 09:11:34 +0000 (11:11 +0200)
* qatar/master:
  wtv: Seek by sector properly

Conflicts:
libavformat/wtvdec.c

See: a0d13d84a928110b0e99ea16d17fd758fcbde35f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavformat/wtv.h
libavformat/wtvdec.c

index 51ac626,0000000..efe90d6
mode 100644,000000..100644
--- /dev/null
@@@ -1,58 -1,0 +1,58 @@@
- #define WTV_SECTOR_BITS    INT64_C(12)
 +/*
 + * Windows Television (WTV)
 + * Copyright (c) 2010-2011 Peter Ross <pross@xvid.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 Street, Fifth Floor, Boston, MA 02110-1301 USA
 + */
 +
 +#ifndef AVFORMAT_WTV_H
 +#define AVFORMAT_WTV_H
 +
 +#include "riff.h"
 +#include "asf.h"
 +
++#define WTV_SECTOR_BITS    12
 +#define WTV_SECTOR_SIZE    (1 << WTV_SECTOR_BITS)
 +#define WTV_BIGSECTOR_BITS 18
 +#define WTV_PAD8(x) (((x) + 7) & ~7)
 +
 +extern const uint8_t ff_timeline_le16[16];
 +extern const uint8_t ff_timeline_table_0_entries_Events_le16[62];
 +extern const uint8_t ff_table_0_entries_legacy_attrib_le16[58];
 +extern const uint8_t ff_table_0_entries_time_le16[40];
 +
 +extern const ff_asf_guid ff_dir_entry_guid;
 +extern const ff_asf_guid ff_wtv_guid;
 +extern const ff_asf_guid ff_timestamp_guid;
 +extern const ff_asf_guid ff_data_guid;
 +extern const ff_asf_guid ff_SBE2_STREAM_DESC_EVENT;
 +extern const ff_asf_guid ff_stream1_guid;
 +extern const ff_asf_guid ff_sync_guid;
 +extern const ff_asf_guid ff_index_guid;
 +extern const ff_asf_guid ff_mediatype_audio;
 +extern const ff_asf_guid ff_mediatype_video;
 +extern const ff_asf_guid ff_format_none;
 +extern const AVCodecGuid ff_video_guids[];
 +
 +extern const ff_asf_guid ff_DSATTRIB_TRANSPORT_PROPERTIES;
 +extern const ff_asf_guid ff_metadata_guid;
 +extern const ff_asf_guid ff_stream2_guid;
 +extern const ff_asf_guid ff_mediasubtype_cpfilters_processed;
 +extern const ff_asf_guid ff_format_cpfilters_processed;
 +extern const ff_asf_guid ff_format_waveformatex;
 +extern const ff_asf_guid ff_format_mpeg2_video;
 +#endif /* AVFORMAT_WTV_H */
   *
   */
  
 -#define WTV_SECTOR_BITS    12
 -#define WTV_SECTOR_SIZE    (1 << WTV_SECTOR_BITS)
 -#define WTV_BIGSECTOR_BITS 18
 -
+ #define SHIFT_SECTOR_BITS(a) ((int64_t)(a) << WTV_SECTOR_BITS)
  typedef struct {
 -    AVIOContext *pb_filesystem;  /** file system (AVFormatContext->pb) */
 +    AVIOContext *pb_filesystem;  /**< file system (AVFormatContext->pb) */
  
 -    int sector_bits;     /** sector shift bits; used to convert sector number into pb_filesystem offset */
 -    uint32_t *sectors;   /** file allocation table */
 -    int nb_sectors;      /** number of sectors */
 +    int sector_bits;     /**< sector shift bits; used to convert sector number into pb_filesystem offset */
 +    uint32_t *sectors;   /**< file allocation table */
 +    int nb_sectors;      /**< number of sectors */
  
      int error;
      int64_t position;