summaryrefslogtreecommitdiffstats
path: root/debian/transcode/transcode-1.1.7/src/decoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/transcode/transcode-1.1.7/src/decoder.h')
-rw-r--r--debian/transcode/transcode-1.1.7/src/decoder.h207
1 files changed, 207 insertions, 0 deletions
diff --git a/debian/transcode/transcode-1.1.7/src/decoder.h b/debian/transcode/transcode-1.1.7/src/decoder.h
new file mode 100644
index 00000000..a1eb7d09
--- /dev/null
+++ b/debian/transcode/transcode-1.1.7/src/decoder.h
@@ -0,0 +1,207 @@
+/*
+ * decoder.h -- transcode import layer module, declarations.
+ *
+ * Copyright (C) Thomas Oestreich - June 2001
+ * Enhancements and partial rewrite:
+ * (C) Francesco Romani - November 2007.
+ *
+ * This file is part of transcode, a video stream processing tool
+ *
+ * transcode is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * transcode is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Make; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#ifndef DECODER_H
+#define DECODER_H
+
+/*
+ * tc_import_init (NOT thread safe):
+ * prepare import layer for execution, by loading import modules,
+ * checking their capabilities against those requested by core,
+ * intializing them.
+ *
+ * After this function terminates succesfully, import threads can be
+ * created and import layer can be started.
+ *
+ * Parameters:
+ * vob: vob structure.
+ * a_mod: name of the module to be used for import audio.
+ * v_mod: name of the module to be used for import video.
+ * Return Value:
+ * TC_OK: succesfull.
+ * TC_ERROR: failure. Reason was already tc_log*()ged out.
+ * Postconditions:
+ * Import threads can now be created.
+ */
+int tc_import_init(vob_t *vob, const char *a_mod, const char *v_mod);
+
+/*
+ * tc_import_shutdown (NOT thread safe):
+ * shutdown import layer after the import threads termination, by
+ * freeing resources acquired by import modules and unloading them.
+ *
+ * Parameters:
+ * None.
+ * Return Value:
+ * None.
+ * Preconditions:
+ * Import threads are terminated.
+ */
+void tc_import_shutdown(void);
+
+
+/*
+ * tc_import_open (Thread safe):
+ * open both the audio and video streams.
+ *
+ * Parameters:
+ * vob: vob structure.
+ * Return Value:
+ * TC_OK: succesfull.
+ * TC_ERROR: failure. Reason was already tc_log*()ged out.
+ * Preconditions:
+ * import modules are loaded and initialized correctly;
+ * tc_import_init was executed succesfully.
+ */
+int tc_import_open(vob_t *vob);
+
+/*
+ * tc_import_close (Thread safe):
+ * close both the audio and video streams.
+ *
+ * Parameters:
+ * None.
+ * Return Value:
+ * TC_OK: succesfull.
+ * TC_ERROR: failure. Reason was already tc_log*()ged out.
+ * Preconditions:
+ * Import threads are terminated;
+ * tc_import_threads_cancel was executed succesfully.
+ */
+int tc_import_close(void);
+
+/*
+ * tc_import_threads_create (Thread safe):
+ * create both audio and video import threads, and automatically,
+ * implicitely and immediately starts importing loops and the import
+ * layer itself.
+ *
+ * Parameters:
+ * vob: vob structure.
+ * Return Value:
+ * None.
+ * Preconditions:
+ * import modules are loaded and initialized correctly;
+ * tc_import_init was executed succesfully.
+ * import streams are been opened correctly;
+ * tc_import_open was executed succesfully.
+ */
+void tc_import_threads_create(vob_t *vob);
+
+/*
+ * tc_import_threads_cancel (Thread safe):
+ * destroy both audio and video import threads, and automatically and
+ * implicitely stop the whole import layer.
+ * It's important to note that this function assume that import loops
+ * are already been terminated.
+ * This is a blocking function.
+ *
+ * Parameters:
+ * None.
+ * Return Value:
+ * None.
+ * Preconditions:
+ * import threads are terminated for any reason
+ * (regular stop, end of stream reached, forced interruption).
+ * tc_import_threads_create was used to startup the threads.
+ */
+void tc_import_threads_cancel(void);
+
+
+/*
+ * tc_import_{,video_,audio_}status (Thread safe):
+ * query the status of import layer.
+ *
+ * Import layer has the responsability to provide raw data for further
+ * layers. Since there always is some buffering, isn't sufficient to
+ * check if import threads are running or not, we also need to see if
+ * there is some buffered data in the frame FIFOs.
+ *
+ * Parameters:
+ * None.
+ * Return Value:
+ * !0: there is some futher data to process.
+ * 0: no more data avalaible.
+ */
+int tc_import_status(void);
+int tc_import_audio_status(void);
+int tc_import_video_status(void);
+
+/*
+ * tc_import_{,video_,audio_}running (Thread safe):
+ * check if respectively video or audio import thread is running.
+ *
+ * Parameters:
+ * None.
+ * Return Value:
+ * !0: thread is running.
+ * 0: thread is stopped or stopping.
+ */
+int tc_import_video_running(void);
+int tc_import_audio_running(void);
+
+
+/*************************************************************************/
+
+/*
+ * tc_multi_import_threads_create (Thread safe):
+ * like tc_import_threads_create, but setup internal machinery for
+ * multi-input handling.
+ *
+ * CRITICAL NOTE:
+ * You MUST use EITHER tc_multi_import_threads_create *OR*
+ * tc_import_threads_create.
+ * You CANNOT use BOTH in the same code path, or nasty things will happen
+ *
+ * Parameters:
+ * vob: vob structure.
+ * Return Value:
+ * None.
+ * Preconditions:
+ * import modules are loaded and initialized correctly;
+ * tc_import_init was executed succesfully.
+ * import streams are been opened correctly;
+ * tc_import_open was executed succesfully.
+ */
+void tc_multi_import_threads_create(vob_t *vob);
+
+/*
+ * tc_multi_import_threads_cancel (Thread safe):
+ * like tc_import_threads_cancel, but you MUST use this function if you
+ * called tc_multi_input_threads_create before.
+ * Otherwise things will turn nasty.
+ *
+ * Parameters:
+ * None.
+ * Return Value:
+ * None.
+ * Preconditions:
+ * import threads are terminated for any reason
+ * (regular stop, end of stream reached, forced interruption).
+ * tc_multi_import_threads_create was used to startup the threads.
+ */
+void tc_multi_import_threads_cancel(void);
+
+#endif /* DECODER_H */