summaryrefslogtreecommitdiffstats
path: root/debian/transcode/transcode-1.1.7/import/ogmstreams.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/transcode/transcode-1.1.7/import/ogmstreams.h')
-rw-r--r--debian/transcode/transcode-1.1.7/import/ogmstreams.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/debian/transcode/transcode-1.1.7/import/ogmstreams.h b/debian/transcode/transcode-1.1.7/import/ogmstreams.h
new file mode 100644
index 00000000..2933cdea
--- /dev/null
+++ b/debian/transcode/transcode-1.1.7/import/ogmstreams.h
@@ -0,0 +1,104 @@
+#ifndef __OGMSTREAMS_H
+#define __OGMSTREAMS_H
+
+/*
+ * Taken from http://tobias.everwicked.com/packfmt.htm
+ *
+ * Changes: Prefixed types with ogm_ to avoid namespace polution
+ * -- tibit
+ *
+
+ First packet (header)
+ ---------------------
+
+ pos | content | description
+ -------+-------------------------+----------------------------------
+ 0x0000 | 0x01 | indicates 'header packet'
+ -------+-------------------------+----------------------------------
+ 0x0001 | ogm_stream_header | the size is indicated in the
+ | | size member
+
+
+ Second packet (comment)
+ -----------------------
+
+ pos | content | description
+ -------+-------------------------+----------------------------------
+ 0x0000 | 0x03 | indicates 'comment packet'
+ -------+-------------------------+----------------------------------
+ 0x0001 | data | see vorbis doc on www.xiph.org
+
+ Data packets
+ ------------
+
+ pos | content | description
+ ---------+-------------------------+----------------------------------
+ 0x0000 | Bit0 0 | indicates data packet
+ | Bit1 Bit 2 of lenbytes |
+ | Bit2 unused |
+ | Bit3 keyframe |
+ | Bit4 unused |
+ | Bit5 unused |
+ | Bit6 Bit 0 of lenbytes |
+ | Bit7 Bit 1 of lenbytes |
+ ---------+-------------------------+----------------------------------
+ 0x0001 | LowByte | Length of this packet in samples
+ | ... | (frames for video, samples for
+ | HighByte | audio, 1ms units for text)
+ ---------+-------------------------+----------------------------------
+ 0x0001+ | data | packet contents
+ lenbytes | |
+
+ *
+ *
+ */
+
+//// oggDS headers
+// Header for the new header format
+typedef struct ogm_stream_header_video
+{
+ ogg_int32_t width;
+ ogg_int32_t height;
+} ogm_stream_header_video;
+
+typedef struct ogm_stream_header_audio
+{
+ ogg_int16_t channels;
+ ogg_int16_t blockalign;
+ ogg_int32_t avgbytespersec;
+} ogm_stream_header_audio;
+
+typedef struct ogm_stream_header
+{
+ char streamtype[8];
+ char subtype[4];
+
+ ogg_int32_t size; // size of the structure
+
+ ogg_int64_t time_unit; // in reference time
+ ogg_int64_t samples_per_unit;
+ ogg_int32_t default_len; // in media time
+
+ ogg_int32_t buffersize;
+ ogg_int16_t bits_per_sample;
+
+ ogg_int16_t padding;
+
+ union
+ {
+ // Video specific
+ ogm_stream_header_video video;
+ // Audio specific
+ ogm_stream_header_audio audio;
+ } sh;
+} ogm_stream_header;
+
+/// Some defines from OggDS
+#define OGM_PACKET_TYPE_HEADER 0x01
+#define OGM_PACKET_TYPE_COMMENT 0x03
+#define OGM_PACKET_TYPE_BITS 0x07
+#define OGM_PACKET_LEN_BITS01 0xc0
+#define OGM_PACKET_LEN_BITS2 0x02
+#define OGM_PACKET_IS_SYNCPOINT 0x08
+
+#endif /* __OGMSTREAMS_H */