ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / Soft / Lib / ardrone_tool / Video / video_stage_ffmpeg_recorder.h
diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/Soft/Lib/ardrone_tool/Video/video_stage_ffmpeg_recorder.h b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/Soft/Lib/ardrone_tool/Video/video_stage_ffmpeg_recorder.h
new file mode 100644 (file)
index 0000000..a7c6460
--- /dev/null
@@ -0,0 +1,51 @@
+#ifndef _VIDEO_STAGE_FFMPEG_RECORDER_H_
+#define _VIDEO_STAGE_FFMPEG_RECORDER_H_
+
+/* From FFMPEG example */
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+
+#include <libavformat/avformat.h>
+#include <libswscale/swscale.h>
+#include <libavfilter/avfilter.h>
+#include <libavutil/avutil.h>
+#include <libavcodec/avcodec.h>
+
+#include <stdio.h>
+#include <VP_Api/vp_api.h>
+
+#include <ardrone_tool/Video/video_stage_recorder.h>
+
+
+#ifndef _VIDEO_RECORD_STATE_ENUM_
+#define _VIDEO_RECORD_STATE_ENUM_
+#endif
+
+typedef struct _video_stage_ffmpeg_recorder_config_t
+{
+       char video_filename[1024];
+       FILE* fp;
+       video_record_state startRec;
+} video_stage_ffmpeg_recorder_config_t;
+
+C_RESULT video_stage_ffmpeg_recorder_handle (video_stage_ffmpeg_recorder_config_t * cfg, PIPELINE_MSG msg_id, void *callback, void *param);
+C_RESULT video_stage_ffmpeg_recorder_open(video_stage_ffmpeg_recorder_config_t *cfg);
+C_RESULT video_stage_ffmpeg_recorder_transform(video_stage_ffmpeg_recorder_config_t *cfg, vp_api_io_data_t *in, vp_api_io_data_t *out);
+C_RESULT video_stage_ffmpeg_recorder_close(video_stage_ffmpeg_recorder_config_t *cfg);
+
+
+
+
+void create_video_file(const char*filename,int width,int height);
+void close_video_file();
+AVStream *add_video_stream(AVFormatContext *oc, enum CodecID codec_id,int width, int height);
+AVFrame *alloc_picture(enum PixelFormat pix_fmt, int width, int height);
+void open_video(AVFormatContext *oc, AVStream *st);
+void write_video_frame(AVFormatContext *oc, AVStream *st);
+void close_video(AVFormatContext *oc, AVStream *st);
+
+extern const vp_api_stage_funcs_t video_ffmpeg_recorder_funcs;
+
+#endif // _VIDEO_STAGE_RECORDER_H_