1 /*
2  *  demuxer.h
3  *
4  *  Copyright (C) Thomas Oestreich - June 2001
5  *
6  *  This file is part of transcode, a video stream processing tool
7  *
8  *  transcode is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2, or (at your option)
11  *  any later version.
12  *
13  *  transcode is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with GNU Make; see the file COPYING.  If not, write to
20  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
21  *
22  */
23 
24 #ifndef _DEMUXER_H
25 #define _DEMUXER_H
26 
27 #include "config.h"
28 
29 #define SYNC_LOGFILE "sync.log"
30 
31 #define TC_DEMUX_CRIT_PTS 300.0f
32 #define TC_DEMUX_MIN_PTS  0.040f
33 
34 #define TC_DEMUX_OFF         0
35 #define TC_DEMUX_SEQ_ADJUST  1
36 #define TC_DEMUX_SEQ_FSYNC   2
37 #define TC_DEMUX_SEQ_ADJUST2 3
38 #define TC_DEMUX_SEQ_FSYNC2  4
39 #define TC_DEMUX_SEQ_LIST    5
40 #define TC_DEMUX_DEBUG       6
41 #define TC_DEMUX_DEBUG_ALL   7
42 #define TC_DEMUX_MAX_OPTS    8
43 
44 
45 #define PACKAGE_AUDIO_AC3    1
46 #define PACKAGE_VIDEO        2
47 #define PACKAGE_NAV          4
48 #define PACKAGE_MPEG1        8
49 #define PACKAGE_PASS        16
50 #define PACKAGE_AUDIO_MP3   32
51 #define PACKAGE_AUDIO_PCM   64
52 #define PACKAGE_SUBTITLE   128
53 #define PACKAGE_AUDIO_DTS  256
54 #define PACKAGE_AUDIO_VAG  512
55 #define PACKAGE_PRIVATE_STREAM (PACKAGE_AUDIO_AC3|PACKAGE_AUDIO_PCM|PACKAGE_SUBTITLE|PACKAGE_AUDIO_DTS|PACKAGE_AUDIO_VAG)
56 #define PACKAGE_ALL         -1
57 
58 extern int gop, gop_pts, gop_cnt;
59 
60 int scan_pack_header(char *buf, long x);
61 int scan_pack_pics(char *video);
62 int scan_pack_ext(char *video);
63 void scan_pack_payload(char *video, size_t size, int n, int verb);
64 
65 void tcdemux_pass_through(info_t *ipipe, int *pass, int npas);
66 
67 void tcdemux_thread(info_t *ipipe);
68 
69 #endif
70