aboutsummaryrefslogtreecommitdiff
path: root/Src/h264/nsv_h264_decoder.h
blob: 4a3375b1df137e860c68e84fd9ff94b35f44050d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#pragma once
#include "../nsv/dec_if.h"
#include "annexb.h"
#include "MFTDecoder.h"
#include <vector>

class H264_Decoder : public IVideoDecoder 
{
public:
	H264_Decoder();
	~H264_Decoder();
	int decode(int need_kf, 
		void *in, int in_len,
		void **out, // out is set to a pointer to data
		unsigned int *out_type, // 'Y','V','1','2' is currently defined
		int *is_kf);
	void flush();

private:
	MFTDecoder decoder;
	YV12_PLANES *vidbufdec;
	void *last_pic;
	std::vector<nullsoft_h264_frame_data> buffered_frames;
};