summaryrefslogtreecommitdiff
path: root/ffmpeg_backend.h
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg_backend.h')
-rw-r--r--ffmpeg_backend.h25
1 files changed, 13 insertions, 12 deletions
diff --git a/ffmpeg_backend.h b/ffmpeg_backend.h
index d6a6a66..de73ff4 100644
--- a/ffmpeg_backend.h
+++ b/ffmpeg_backend.h
@@ -1,22 +1,23 @@
-struct av_codec_info {
- real32 AvgPTSPerFrame;
+// NOTE(fox): Even though each layer has its own completely isolated AV
+// instance, it appears two layers with the same file still share something.
+// When the layers aren't at the same position in time, the playhead of one
+// layer gets misaligned every few frames and causes a manual seek back to the
+// position. Different files don't exhibit this behavior.
- AVFormatContext *FileFormatContext;
- AVCodecParameters *VideoCodecParameters;
+struct av_info {
+ uint64 PreviousPTS = -1; // PTS value of the previous frame, used to check timings.
+
+ AVCodecParameters *VideoCodecParameters; // Used to supply info about the decoder.
const AVCodec* VideoCodec;
- const AVCodecHWConfig* VideoHWConfig;
+ // const AVCodecHWConfig* VideoHWConfig; // Haven't done enough research to know if HW decoding is already done by default or if we need these.
// AVPixelFormat HWPixFormat;
+ AVStream *VideoStream; // Which stream, or channel, the video is in. Holds FPS info and is used to verify that the decoded packet belongs to this stream.
+ AVFormatContext *FileFormatContext; // Umbrella for everything else, seems to contain the playhead state
AVCodecContext *VideoCodecContext;
- AVStream *VideoStream;
-};
-
-struct av_packet_info {
- uint64 PreviousPTS = -1; // PTS value of the previous frame, used to check timings.
-
AVPacket *VideoPacket;
AVFrame *VideoFrame;
SwsContext *RGBContext;
};
-static bool32 AV_TryFrame(av_codec_info *AV, av_packet_info *AVPacket, int32 *err); // Internal attempt to decode a frame. Typically run in a while loop until it returns true.
+static bool32 AV_TryFrame(av_info *AVPacket, int32 *err); // Internal attempt to decode a frame. Typically run in a while loop until it returns true.