From 583cf55afb16b5e5b1c2f536c1bd923d13db8fd3 Mon Sep 17 00:00:00 2001 From: Amar Takhar Date: Thu, 30 Jul 2009 04:25:52 +0000 Subject: [PATCH] Add Doxygen skel info for video_provider_yuv4mpeg.h which was having errors in the first round. Originally committed to SVN as r3328. --- aegisub/src/video_provider_yuv4mpeg.h | 128 +++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 5 deletions(-) diff --git a/aegisub/src/video_provider_yuv4mpeg.h b/aegisub/src/video_provider_yuv4mpeg.h index f0d2ac6d4..5c07542ef 100644 --- a/aegisub/src/video_provider_yuv4mpeg.h +++ b/aegisub/src/video_provider_yuv4mpeg.h @@ -44,69 +44,163 @@ #include #include -// ffmpeg uses 80, so I'm p sure this isn't too small + +/// DOCME #define YUV4MPEG_HEADER_MAXLEN 128 + +/// @class YUV4MPEGVideoProvider +/// @brief DOCME +/// +/// DOCME class YUV4MPEGVideoProvider : public VideoProvider { private: + + /// DOCME enum Y4M_PixelFormat { + + /// DOCME Y4M_PIXFMT_NONE = -1, + + /// DOCME Y4M_PIXFMT_420JPEG, // afaict the only difference between + + /// DOCME Y4M_PIXFMT_420MPEG2, // these three is the chroma sample location, + + /// DOCME Y4M_PIXFMT_420PALDV, // and nobody cares about that. + + /// DOCME Y4M_PIXFMT_411, + + /// DOCME Y4M_PIXFMT_422, + + /// DOCME Y4M_PIXFMT_444, + + /// DOCME Y4M_PIXFMT_444ALPHA, + + /// DOCME Y4M_PIXFMT_MONO, }; + + /// DOCME enum Y4M_InterlacingMode { + + /// DOCME Y4M_ILACE_NOTSET = -1, // not to be confused with Y4M_ILACE_UNKNOWN + + /// DOCME Y4M_ILACE_PROGRESSIVE, + + /// DOCME Y4M_ILACE_TFF, + + /// DOCME Y4M_ILACE_BFF, + + /// DOCME Y4M_ILACE_MIXED, + + /// DOCME Y4M_ILACE_UNKNOWN, }; - // this is currently unused :( + + /// DOCME enum Y4M_FrameFlags { + + /// DOCME Y4M_FFLAG_NOTSET = -1, + + /// DOCME Y4M_FFLAG_NONE = 0x0000, - // repeat field/frame flags + + /// DOCME Y4M_FFLAG_R_TFF = 0x0001, // TFF + + /// DOCME Y4M_FFLAG_R_TFF_R = 0x0002, // TFF and repeat + + /// DOCME Y4M_FFLAG_R_BFF = 0x0004, // BFF + + /// DOCME Y4M_FFLAG_R_BFF_R = 0x0008, // BFF and repeat + + /// DOCME Y4M_FFLAG_R_P = 0x0010, // progressive + + /// DOCME Y4M_FFLAG_R_P_R = 0x0020, // progressive and repeat once + + /// DOCME Y4M_FFLAG_R_P_RR = 0x0040, // progressive and repeat twice - // temporal sampling flags + + /// DOCME Y4M_FFLAG_T_P = 0x0080, // progressive (fields sampled at the same time) + + /// DOCME Y4M_FFLAG_T_I = 0x0100, // interlaced (fields sampled at different times) - // spatial sampling flags + + /// DOCME Y4M_FFLAG_C_P = 0x0200, // progressive (whole frame subsampled) + + /// DOCME Y4M_FFLAG_C_I = 0x0400, // interlaced (fields subsampled independently) + + /// DOCME Y4M_FFLAG_C_UNKNOWN = 0x0800, // unknown (only allowed for non-4:2:0 sampling) }; + + /// DOCME FILE *sf; // source file + + /// DOCME bool inited; + + /// DOCME + + /// DOCME int w, h; // width/height + + /// DOCME int num_frames; // length of file in frames + + /// DOCME int frame_sz; // size of each frame in bytes + + /// DOCME Y4M_PixelFormat pixfmt; // colorspace/pixel format + + /// DOCME Y4M_InterlacingMode imode; // interlacing mode struct { + + /// DOCME int num; + + /// DOCME int den; + + /// DOCME } fps_rat; // framerate + + /// DOCME std::vector seek_table; // the position in the file of each frame, in bytes + + /// DOCME int cur_fn; // current frame number + + /// DOCME wxString errmsg; void LoadVideo(const wxString filename); @@ -129,12 +223,36 @@ public: int GetWidth(); int GetHeight(); double GetFPS(); + + /// @brief DOCME + /// @return + /// bool AreKeyFramesLoaded() { return false; } + + /// @brief DOCME + /// @return + /// wxArrayInt GetKeyFrames() { return wxArrayInt(); } + + /// @brief DOCME + /// @return + /// bool IsVFR() { return false; }; + + /// @brief DOCME + /// @return + /// FrameRate GetTrueFrameRate() { return FrameRate(); } + + /// @brief DOCME + /// @return + /// wxString GetDecoderName() { return L"YUV4MPEG"; } + + /// @brief DOCME + /// int GetDesiredCacheSize() { return 8; } }; +