Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposed fix for the Linux (maybe other OSs) issue, because of depre… #318

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CMakeModules/FindFFMPEG.cmake
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ IF(AVCODEC_INCLUDE_DIR AND AVFORMAT_INCLUDE_DIR AND AVUTIL_INCLUDE_DIR AND SWSCA
CHECK_CXX_SOURCE_COMPILES( CHECK_CXX_SOURCE_COMPILES(
"#include \"${AVCODEC_INCLUDE_DIR}/libavformat/avformat.h\" "#include \"${AVCODEC_INCLUDE_DIR}/libavformat/avformat.h\"
int main() { int main() {
sizeof(AVFormatContext::max_analyze_duration2); sizeof(AVFormatContext::max_analyze_duration);
}" HAVE_FFMPEG_MAX_ANALYZE_DURATION2 }" HAVE_FFMPEG_MAX_ANALYZE_DURATION
) )
CHECK_CXX_SOURCE_COMPILES( CHECK_CXX_SOURCE_COMPILES(
"#include \"${AVCODEC_INCLUDE_DIR}/libavformat/avformat.h\" "#include \"${AVCODEC_INCLUDE_DIR}/libavformat/avformat.h\"
Expand Down
12 changes: 12 additions & 0 deletions src/video/drivers/ffmpeg.cpp
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ extern "C"
#include <libavutil/mathematics.h> #include <libavutil/mathematics.h>
} }


#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER

namespace pangolin namespace pangolin
{ {


Expand Down Expand Up @@ -80,8 +82,10 @@ std::string FfmpegFmtToString(const AVPixelFormat fmt)
TEST_PIX_FMT_RETURN(YUVJ420P); TEST_PIX_FMT_RETURN(YUVJ420P);
TEST_PIX_FMT_RETURN(YUVJ422P); TEST_PIX_FMT_RETURN(YUVJ422P);
TEST_PIX_FMT_RETURN(YUVJ444P); TEST_PIX_FMT_RETURN(YUVJ444P);
#ifdef FF_API_XVMC
TEST_PIX_FMT_RETURN(XVMC_MPEG2_MC); TEST_PIX_FMT_RETURN(XVMC_MPEG2_MC);
TEST_PIX_FMT_RETURN(XVMC_MPEG2_IDCT); TEST_PIX_FMT_RETURN(XVMC_MPEG2_IDCT);
#endif
TEST_PIX_FMT_RETURN(UYVY422); TEST_PIX_FMT_RETURN(UYVY422);
TEST_PIX_FMT_RETURN(UYYVYY411); TEST_PIX_FMT_RETURN(UYYVYY411);
TEST_PIX_FMT_RETURN(BGR8); TEST_PIX_FMT_RETURN(BGR8);
Expand All @@ -101,11 +105,13 @@ std::string FfmpegFmtToString(const AVPixelFormat fmt)
TEST_PIX_FMT_RETURN(YUV440P); TEST_PIX_FMT_RETURN(YUV440P);
TEST_PIX_FMT_RETURN(YUVJ440P); TEST_PIX_FMT_RETURN(YUVJ440P);
TEST_PIX_FMT_RETURN(YUVA420P); TEST_PIX_FMT_RETURN(YUVA420P);
#ifdef FF_API_VDPAU
TEST_PIX_FMT_RETURN(VDPAU_H264); TEST_PIX_FMT_RETURN(VDPAU_H264);
TEST_PIX_FMT_RETURN(VDPAU_MPEG1); TEST_PIX_FMT_RETURN(VDPAU_MPEG1);
TEST_PIX_FMT_RETURN(VDPAU_MPEG2); TEST_PIX_FMT_RETURN(VDPAU_MPEG2);
TEST_PIX_FMT_RETURN(VDPAU_WMV3); TEST_PIX_FMT_RETURN(VDPAU_WMV3);
TEST_PIX_FMT_RETURN(VDPAU_VC1); TEST_PIX_FMT_RETURN(VDPAU_VC1);
#endif
TEST_PIX_FMT_RETURN(RGB48BE ); TEST_PIX_FMT_RETURN(RGB48BE );
TEST_PIX_FMT_RETURN(RGB48LE ); TEST_PIX_FMT_RETURN(RGB48LE );
TEST_PIX_FMT_RETURN(RGB565BE); TEST_PIX_FMT_RETURN(RGB565BE);
Expand All @@ -125,7 +131,9 @@ std::string FfmpegFmtToString(const AVPixelFormat fmt)
TEST_PIX_FMT_RETURN(YUV422P16BE); TEST_PIX_FMT_RETURN(YUV422P16BE);
TEST_PIX_FMT_RETURN(YUV444P16LE); TEST_PIX_FMT_RETURN(YUV444P16LE);
TEST_PIX_FMT_RETURN(YUV444P16BE); TEST_PIX_FMT_RETURN(YUV444P16BE);
#ifdef FF_API_VDPAU
TEST_PIX_FMT_RETURN(VDPAU_MPEG4); TEST_PIX_FMT_RETURN(VDPAU_MPEG4);
#endif
TEST_PIX_FMT_RETURN(DXVA2_VLD); TEST_PIX_FMT_RETURN(DXVA2_VLD);
TEST_PIX_FMT_RETURN(RGB444BE); TEST_PIX_FMT_RETURN(RGB444BE);
TEST_PIX_FMT_RETURN(RGB444LE); TEST_PIX_FMT_RETURN(RGB444LE);
Expand Down Expand Up @@ -578,6 +586,7 @@ void FfmpegVideoOutputStream::WriteFrame(AVFrame* frame)
int ret; int ret;
int got_packet = 1; int got_packet = 1;


#if FF_API_LAVF_FMT_RAWPICTURE
// Setup AVPacket // Setup AVPacket
if (recorder.oc->oformat->flags & AVFMT_RAWPICTURE) { if (recorder.oc->oformat->flags & AVFMT_RAWPICTURE) {
/* Raw video case - directly store the picture in the packet */ /* Raw video case - directly store the picture in the packet */
Expand All @@ -587,6 +596,9 @@ void FfmpegVideoOutputStream::WriteFrame(AVFrame* frame)
pkt.pts = frame->pts; pkt.pts = frame->pts;
ret = 0; ret = 0;
} else { } else {
#else
{
#endif
/* encode the image */ /* encode the image */
#if (LIBAVFORMAT_VERSION_MAJOR >= 54) #if (LIBAVFORMAT_VERSION_MAJOR >= 54)
ret = avcodec_encode_video2(stream->codec, &pkt, frame, &got_packet); ret = avcodec_encode_video2(stream->codec, &pkt, frame, &got_packet);
Expand Down