summaryrefslogtreecommitdiffstats
path: root/debian/transcode/transcode-1.1.7/src/probe.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/transcode/transcode-1.1.7/src/probe.h')
-rw-r--r--debian/transcode/transcode-1.1.7/src/probe.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/debian/transcode/transcode-1.1.7/src/probe.h b/debian/transcode/transcode-1.1.7/src/probe.h
new file mode 100644
index 00000000..9589aed3
--- /dev/null
+++ b/debian/transcode/transcode-1.1.7/src/probe.h
@@ -0,0 +1,124 @@
+/*
+ * probe.h - declarations for input file probing
+ * Written by Andrew Church <achurch@achurch.org>
+ *
+ * This file is part of transcode, a video stream processing tool.
+ * transcode is free software, distributable under the terms of the GNU
+ * General Public License (version 2 or later). See the file COPYING
+ * for details.
+ */
+
+#ifndef PROBE_H
+#define PROBE_H
+
+/*************************************************************************/
+
+/* Structures to hold probed data */
+
+typedef struct {
+ int samplerate;
+ int chan;
+ int bits;
+ int bitrate;
+ int padrate; // Padding byterate
+ int format;
+ int lang;
+ int attribute; // 0=subtitle, 1=AC3, 2=PCM
+ int tid; // Logical track id, in case of gaps
+ double pts_start;
+} ProbeTrackInfo;
+
+
+typedef struct {
+
+ int width; // Frame width
+ int height; // Frame height
+
+ double fps; // Encoder fps
+
+ long codec; // Video codec
+ long magic; // File type/magic
+ long magic_xml; // Type/magic of content in XML file
+
+ int asr; // Aspect ratio code
+ int frc; // Frame cate code
+
+ int par_width; // Pixel aspect (== sample aspect ratio)
+ int par_height;
+
+ int attributes; // Video attributes
+
+ int num_tracks; // Number of audio tracks
+
+ ProbeTrackInfo track[TC_MAX_AUD_TRACKS];
+
+ long frames; // Total frames
+ long time; // Total time in secs
+
+ int unit_cnt; // Detected presentation units
+ double pts_start; // Video PTS start
+
+ long bitrate; // Video stream bitrate
+
+ int ext_attributes[4]; // Reserved for MPEG
+
+ int is_video; // NTSC flag
+
+} ProbeInfo;
+
+/*************************************************************************/
+
+/* External interface */
+int probe_source(const char *vid_file, const char *aud_file, int range,
+ int flags, vob_t *vob);
+int probe_source_xml(vob_t *vob, int which);
+
+int probe_stream_data(const char *file, int range, ProbeInfo *info);
+void probe_to_vob(ProbeInfo *vinfo, ProbeInfo *ainfo, int flags, vob_t *vob);
+
+/* Flags for probe_source(), indicating which parameters were specified by
+ * the user and shouldn't be overwritten */
+enum {
+ TC_PROBE_NO_FRAMESIZE = 1,
+ TC_PROBE_NO_FPS = 2,
+ TC_PROBE_NO_DEMUX = 4,
+ TC_PROBE_NO_RATE = 8,
+ TC_PROBE_NO_CHAN = 16,
+ TC_PROBE_NO_BITS = 32,
+ TC_PROBE_NO_SEEK = 64,
+ TC_PROBE_NO_TRACK = 128,
+ TC_PROBE_NO_BUFFER = 256,
+// TC_PROBE_NO_FRC = 512, // unused
+ TC_PROBE_NO_ACODEC = 1024,
+ TC_PROBE_NO_AVSHIFT = 2048,
+ TC_PROBE_NO_AV_FINE = 4096,
+ TC_PROBE_NO_IMASR = 8192,
+ TC_PROBE_NO_BUILTIN = 16384, // external probe (mplayer)
+ TC_PROBE_NO_MODULES = 32768,
+};
+
+/* `which' value for probe_xml() */
+enum {
+ PROBE_XML_VIDEO = 0,
+ PROBE_XML_AUDIO,
+};
+
+/* Auxiliary info routines */
+const char *mformat2str(int flag);
+
+/* info_server.c */
+void server_thread(vob_t *vob);
+
+/*************************************************************************/
+
+#endif // PROBE_H
+
+/*
+ * Local variables:
+ * c-file-style: "stroustrup"
+ * c-file-offsets: ((case-label . *) (statement-case-intro . *))
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vim: expandtab shiftwidth=4:
+ */