lavf/srtdec: simplify start/end computation.
[ffmpeg.git] / libavformat / mxf.h
index 39c8c16..4c751e8 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * MXF
- * Copyright (c) 2006 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com>.
+ * Copyright (c) 2006 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com>
  *
  * This file is part of FFmpeg.
  *
@@ -22,7 +22,8 @@
 #define AVFORMAT_MXF_H
 
 #include "avformat.h"
-#include "libavcodec/bytestream.h"
+#include "libavcodec/avcodec.h"
+#include <stdint.h>
 
 typedef uint8_t UID[16];
 
@@ -42,34 +43,43 @@ enum MXFMetadataSetType {
     ContentStorage,
     SubDescriptor,
     IndexTableSegment,
+    EssenceContainerData,
     TypeBottom,// add metadata type before this
 };
 
-typedef struct {
+enum MXFFrameLayout {
+    FullFrame = 0,
+    SeparateFields,
+    OneField,
+    MixedFields,
+    SegmentedFrame,
+};
+
+typedef struct KLVPacket {
     UID key;
     int64_t offset;
     uint64_t length;
 } KLVPacket;
 
-typedef struct {
+typedef struct MXFCodecUL {
     UID uid;
     unsigned matching_len;
-    enum CodecID id;
+    int id;
 } MXFCodecUL;
 
 typedef struct {
-    UID uid;
-    enum CodecType type;
-} MXFDataDefinitionUL;
+    struct AVRational time_base;
+    int samples_per_frame[6];
+} MXFSamplesPerFrame;
 
-extern const MXFDataDefinitionUL ff_mxf_data_definition_uls[];
+extern const MXFCodecUL ff_mxf_data_definition_uls[];
 extern const MXFCodecUL ff_mxf_codec_uls[];
+extern const MXFCodecUL ff_mxf_pixel_format_uls[];
+
+int ff_mxf_decode_pixel_layout(const char pixel_layout[16], enum AVPixelFormat *pix_fmt);
+const MXFSamplesPerFrame *ff_mxf_get_samples_per_frame(AVFormatContext *s, AVRational time_base);
 
-#ifdef DEBUG
-#define PRINT_KEY(pc, s, x) dprintf(pc, "%s %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\n", s, \
+#define PRINT_KEY(pc, s, x) av_dlog(pc, "%s %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\n", s, \
                              (x)[0], (x)[1], (x)[2], (x)[3], (x)[4], (x)[5], (x)[6], (x)[7], (x)[8], (x)[9], (x)[10], (x)[11], (x)[12], (x)[13], (x)[14], (x)[15])
-#else
-#define PRINT_KEY(pc, s, x)
-#endif
 
 #endif /* AVFORMAT_MXF_H */