annotate libmpdemux/nuppelvideo.h @ 4559:5dc383bb1c82

added mga_top_reserved module parameter to skip a configurable amount of space at the top of video memory. this is needed to prevent corruption of the kernel's console font when using the "fastfont" option with matroxfb.
author rfelker
date Thu, 07 Feb 2002 02:07:29 +0000
parents 2d4f01b1a566
children 9ddae5897422
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3807
alex
parents:
diff changeset
1 /* nuppelvideo.h rh */
alex
parents:
diff changeset
2
alex
parents:
diff changeset
3 typedef struct rtfileheader
alex
parents:
diff changeset
4 {
alex
parents:
diff changeset
5 char finfo[12]; // "NuppelVideo" + \0
alex
parents:
diff changeset
6 char version[5]; // "0.05" + \0
alex
parents:
diff changeset
7 int width;
alex
parents:
diff changeset
8 int height;
alex
parents:
diff changeset
9 int desiredwidth; // 0 .. as it is
alex
parents:
diff changeset
10 int desiredheight; // 0 .. as it is
alex
parents:
diff changeset
11 char pimode; // P .. progressive
alex
parents:
diff changeset
12 // I .. interlaced (2 half pics) [NI]
alex
parents:
diff changeset
13 double aspect; // 1.0 .. square pixel (1.5 .. e.g. width=480: width*1.5=720
alex
parents:
diff changeset
14 // for capturing for svcd material
alex
parents:
diff changeset
15 double fps;
alex
parents:
diff changeset
16 int videoblocks; // count of video-blocks -1 .. unknown 0 .. no video
alex
parents:
diff changeset
17 int audioblocks; // count of audio-blocks -1 .. unknown 0 .. no audio
alex
parents:
diff changeset
18 int textsblocks; // count of text-blocks -1 .. unknown 0 .. no text
alex
parents:
diff changeset
19 int keyframedist;
alex
parents:
diff changeset
20 } rtfileheader;
alex
parents:
diff changeset
21
alex
parents:
diff changeset
22 typedef struct rtframeheader
alex
parents:
diff changeset
23 {
alex
parents:
diff changeset
24 char frametype; // A .. Audio, V .. Video, S .. Sync, T .. Text
alex
parents:
diff changeset
25 // R .. Seekpoint: String RTjjjjjjjj (use full packet)
alex
parents:
diff changeset
26 // D .. Addition Data for Compressors
alex
parents:
diff changeset
27 // ct: R .. RTjpeg Tables
alex
parents:
diff changeset
28
alex
parents:
diff changeset
29 char comptype; // V: 0 .. Uncompressed [NI]
alex
parents:
diff changeset
30 // 1 .. RTJpeg
alex
parents:
diff changeset
31 // 2 .. RTJpeg with lzo afterwards
alex
parents:
diff changeset
32 // N .. black frame
alex
parents:
diff changeset
33 // L .. simply copy last frame (if lost frames)
alex
parents:
diff changeset
34 // A: 0 .. Uncompressed (44100/sec 16bit 2ch)
alex
parents:
diff changeset
35 // 1 .. lzo compression [NI]
alex
parents:
diff changeset
36 // 2 .. layer2 (packet) [NI]
alex
parents:
diff changeset
37 // 3 .. layer3 (packet) [NI]
alex
parents:
diff changeset
38 // F .. flac (lossless) [NI]
alex
parents:
diff changeset
39 // S .. shorten (lossless) [NI]
alex
parents:
diff changeset
40 // N .. null frame loudless
alex
parents:
diff changeset
41 // L .. simply copy last frame (may sound bad) NI
alex
parents:
diff changeset
42 // S: B .. Audio and Video sync point [NI]
alex
parents:
diff changeset
43 // A .. Audio Sync Information
alex
parents:
diff changeset
44 // timecode == effective dsp-frequency*100
alex
parents:
diff changeset
45 // when reaching this audio sync point
alex
parents:
diff changeset
46 // because many cheap soundcards are unexact
alex
parents:
diff changeset
47 // and have a range from 44000 to 44250
alex
parents:
diff changeset
48 // instead of the expected exact 44100 S./sec
alex
parents:
diff changeset
49 // V .. Next Video Sync
alex
parents:
diff changeset
50 // timecode == next video framenumber
alex
parents:
diff changeset
51 // S .. Audio,Video,Text Correlation [NI]
alex
parents:
diff changeset
52 char keyframe; // 0 .. keyframe
alex
parents:
diff changeset
53 // 1 .. nr of frame in gop => no keyframe
alex
parents:
diff changeset
54
alex
parents:
diff changeset
55 char filters; // Every bit stands for one type of filter
alex
parents:
diff changeset
56 // 1 .. Gauss 5 Pixel (8*m+2*l+2*r+2*a+2*b)/16 [NYI]
alex
parents:
diff changeset
57 // 2 .. Gauss 5 Pixel (8*m+1*l+1*r+1*a+1*b)/12 [NYI]
alex
parents:
diff changeset
58 // 4 .. Cartoon Filter [NI]
alex
parents:
diff changeset
59 // 8 .. Reserverd Filter [NI]
alex
parents:
diff changeset
60 // 16 .. Reserverd Filter [NI]
alex
parents:
diff changeset
61 // 32 .. Reserverd Filter [NI]
alex
parents:
diff changeset
62 // 64 .. Reserverd Filter [NI]
alex
parents:
diff changeset
63 // 128 .. Reserverd Filter [NI]
alex
parents:
diff changeset
64
alex
parents:
diff changeset
65 int timecode; // Timecodeinformation sec*1000 + msecs
alex
parents:
diff changeset
66
alex
parents:
diff changeset
67 int packetlength; // V,A,T: length of following data in stream
alex
parents:
diff changeset
68 // S: length of packet correl. information [NI]
alex
parents:
diff changeset
69 // R: do not use here! (fixed 'RTjjjjjjjjjjjjjj')
alex
parents:
diff changeset
70 } rtframeheader;
alex
parents:
diff changeset
71
alex
parents:
diff changeset
72 #define FRAMEHEADERSIZE sizeof(rtframeheader)
alex
parents:
diff changeset
73 #define FILEHEADERSIZE sizeof(rtfileheader)
alex
parents:
diff changeset
74
alex
parents:
diff changeset
75 typedef struct vidbuffertype
alex
parents:
diff changeset
76 {
alex
parents:
diff changeset
77 int sample;
alex
parents:
diff changeset
78 int timecode;
alex
parents:
diff changeset
79 int freeToEncode;
alex
parents:
diff changeset
80 int freeToBuffer;
alex
parents:
diff changeset
81 unsigned char *buffer_offset;
alex
parents:
diff changeset
82 } vidbuffertyp;
alex
parents:
diff changeset
83
alex
parents:
diff changeset
84 typedef struct audbuffertype
alex
parents:
diff changeset
85 {
alex
parents:
diff changeset
86 int sample;
alex
parents:
diff changeset
87 int timecode;
alex
parents:
diff changeset
88 int freeToEncode;
alex
parents:
diff changeset
89 int freeToBuffer;
alex
parents:
diff changeset
90 unsigned char *buffer_offset;
alex
parents:
diff changeset
91 } audbuffertyp;
alex
parents:
diff changeset
92