summaryrefslogtreecommitdiff
path: root/src/dxr3/dxr3_vo_encoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/dxr3/dxr3_vo_encoder.h')
-rw-r--r--src/dxr3/dxr3_vo_encoder.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/dxr3/dxr3_vo_encoder.h b/src/dxr3/dxr3_vo_encoder.h
new file mode 100644
index 000000000..59c281871
--- /dev/null
+++ b/src/dxr3/dxr3_vo_encoder.h
@@ -0,0 +1,52 @@
+
+/*************************************************************************
+ * Dxr3 Encoding Plugin Configuration Options *
+ *************************************************************************/
+
+/* 1: enable to buffer the mpeg1 stream;
+ * 0: write to mpeg device immediately;
+ * with 1 sync is better, but playback still not smooth (but see below) */
+#define USE_MPEG_BUFFER 1
+
+/* 1: write 6 to MV_COMMAND register. This seems to fix playback problems!
+ * 0: don't write to register */
+#define USE_MAGIC_REGISTER 1
+
+/* 1: use libfame for encoding
+ * 0: use libavcodec from ffmpeg for encoding */
+#define USE_LIBFAME 1
+
+/*************************************************************************
+ * Dxr3 Encoding private stuff below - You shouldn't need to change this *
+ *************************************************************************/
+
+/* buffer size for encoded mpeg1 stream; will hold one intra frame
+ * at 640x480 typical sizes are <50 kB. 512 kB should be plenty */
+#define DEFAULT_BUFFER_SIZE 512*1024
+
+#if USE_LIBFAME
+ # define USE_FFMPEG 0
+#else
+ # define USE_FFMPEG 1
+#endif
+
+#if USE_LIBFAME
+ #include <fame.h>
+
+ /* some global stuff for libfame, could use some cleanup :-) */
+ fame_parameters_t fp = FAME_PARAMETERS_INITIALIZER;
+ fame_object_t *object;
+ fame_yuv_t yuv;
+ fame_context_t *fc; /* needed for fame calls */
+#endif
+
+#if USE_FFMPEG
+ /* use libffmpeg */
+ #include <ffmpeg/avcodec.h>
+ AVCodecContext *avc;
+ AVPicture avp;
+ AVCodec *avcodec;
+#endif
+
+/* mpeg1 buffer, used by both encoders */
+unsigned char *buffer;