]> git.sesse.net Git - vlc/blob - modules/access/mms/asf.h
auhal: cleanup and better consistency
[vlc] / modules / access / mms / asf.h
1 /*****************************************************************************
2  * asf.h: MMS access plug-in
3  *****************************************************************************
4  * Copyright (C) 2001-2004 VLC authors and VideoLAN
5  * $Id$
6  *
7  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23
24 /****************************************************************************
25  * XXX:
26  *  Definitions and data duplicated from asf demuxers but I want access
27  * and demux plugins to be independent
28  *
29  ****************************************************************************/
30
31 #ifndef _ASF_H_
32 #define _ASF_H_ 1
33
34 #include "../../demux/asf/libasf_guid.h"
35
36 #define ASF_CODEC_TYPE_VIDEO   0x0001
37 #define ASF_CODEC_TYPE_AUDIO   0x0002
38 #define ASF_CODEC_TYPE_UNKNOWN 0xffff
39
40 typedef struct
41 {
42     int i_cat;      /* ASF_CODEC_TYPE_VIDEO, ASF_CODEC_TYPE_AUDIO, */
43     int i_bitrate;  /* -1 if unknown */
44     int i_selected;
45 } asf_stream_t;
46
47 typedef struct
48 {
49     int64_t      i_file_size;
50     int64_t      i_data_packets_count;
51     int32_t      i_min_data_packet_size;
52
53     asf_stream_t stream[128];
54
55 } asf_header_t;
56
57
58 void  GenerateGuid      ( guid_t * );
59 void  asf_HeaderParse   ( asf_header_t *, uint8_t *, int );
60 void  asf_StreamSelect  ( asf_header_t *,
61                               int i_bitrate_max, bool b_all, bool b_audio,
62                               bool b_video );
63
64 #endif