Implement class audio/video metadata fetch using libav.
This commit is contained in:
32
avdecoder.h
Normal file
32
avdecoder.h
Normal file
@@ -0,0 +1,32 @@
|
||||
#ifndef AVDECODER_H
|
||||
#define AVDECODER_H
|
||||
|
||||
#include <QImage>
|
||||
#include <QString>
|
||||
|
||||
extern "C" {
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libavformat/avformat.h>
|
||||
#include <libswscale/swscale.h>
|
||||
#include <vitamtp.h>
|
||||
}
|
||||
|
||||
class AVDecoder
|
||||
{
|
||||
public:
|
||||
AVDecoder();
|
||||
bool open(const QString filename);
|
||||
QByteArray getAudioThumbnail(int width, int height);
|
||||
QByteArray getVideoThumbnail(int width, int height);
|
||||
void getAudioMetadata(metadata_t &metadata);
|
||||
void getVideoMetadata(metadata_t &metadata);
|
||||
void close();
|
||||
|
||||
private:
|
||||
void AVFrameToQImage(AVFrame &frame, QImage &image, int width, int height);
|
||||
AVFrame *getDecodedFrame(AVCodecContext *pCodecCtx, int stream_index);
|
||||
|
||||
AVFormatContext *pFormatCtx;
|
||||
};
|
||||
|
||||
#endif // AVDECODER_H
|
Reference in New Issue
Block a user