Fix xenial builds. Fixes #3130
This commit is contained in:
parent
885efc27ee
commit
7f99635763
|
@ -340,7 +340,13 @@ int FfmpegCamera::OpenFfmpeg() {
|
||||||
mVideoStreamId, mAudioStreamId);
|
mVideoStreamId, mAudioStreamId);
|
||||||
|
|
||||||
AVCodec *mVideoCodec = nullptr;
|
AVCodec *mVideoCodec = nullptr;
|
||||||
if ( mVideoStream->codecpar->codec_id == AV_CODEC_ID_H264 ) {
|
if ( mVideoStream->
|
||||||
|
#if LIBAVCODEC_VERSION_CHECK(57, 64, 0, 64, 0)
|
||||||
|
codecpar
|
||||||
|
#else
|
||||||
|
codec
|
||||||
|
#endif
|
||||||
|
->codec_id == AV_CODEC_ID_H264 ) {
|
||||||
if ( (mVideoCodec = avcodec_find_decoder_by_name("h264_mmal")) == nullptr ) {
|
if ( (mVideoCodec = avcodec_find_decoder_by_name("h264_mmal")) == nullptr ) {
|
||||||
Debug(1, "Failed to find decoder (h264_mmal)");
|
Debug(1, "Failed to find decoder (h264_mmal)");
|
||||||
} else {
|
} else {
|
||||||
|
@ -349,7 +355,13 @@ int FfmpegCamera::OpenFfmpeg() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !mVideoCodec ) {
|
if ( !mVideoCodec ) {
|
||||||
mVideoCodec = avcodec_find_decoder(mVideoStream->codecpar->codec_id);
|
mVideoCodec = avcodec_find_decoder(mVideoStream->
|
||||||
|
#if LIBAVCODEC_VERSION_CHECK(57, 64, 0, 64, 0)
|
||||||
|
codecpar
|
||||||
|
#else
|
||||||
|
codec
|
||||||
|
#endif
|
||||||
|
->codec_id);
|
||||||
if ( !mVideoCodec ) {
|
if ( !mVideoCodec ) {
|
||||||
// Try and get the codec from the codec context
|
// Try and get the codec from the codec context
|
||||||
Error("Can't find codec for video stream from %s", mPath.c_str());
|
Error("Can't find codec for video stream from %s", mPath.c_str());
|
||||||
|
|
|
@ -287,12 +287,25 @@ int RemoteCameraRtsp::Capture(ZMPacket &zm_packet) {
|
||||||
buffer -= packet->size;
|
buffer -= packet->size;
|
||||||
if ( bytes_consumed ) {
|
if ( bytes_consumed ) {
|
||||||
zm_dump_video_frame(zm_packet.in_frame, "remote_rtsp_decode");
|
zm_dump_video_frame(zm_packet.in_frame, "remote_rtsp_decode");
|
||||||
if ( ! mVideoStream->codecpar->width ) {
|
if ( ! mVideoStream->
|
||||||
|
#if LIBAVCODEC_VERSION_CHECK(57, 64, 0, 64, 0)
|
||||||
|
codecpar
|
||||||
|
#else
|
||||||
|
codec
|
||||||
|
#endif
|
||||||
|
->width ) {
|
||||||
zm_dump_codec(mVideoCodecContext);
|
zm_dump_codec(mVideoCodecContext);
|
||||||
|
#if LIBAVCODEC_VERSION_CHECK(57, 64, 0, 64, 0)
|
||||||
zm_dump_codecpar(mVideoStream->codecpar);
|
zm_dump_codecpar(mVideoStream->codecpar);
|
||||||
mVideoStream->codecpar->width = zm_packet.in_frame->width;
|
mVideoStream->codecpar->width = zm_packet.in_frame->width;
|
||||||
mVideoStream->codecpar->height = zm_packet.in_frame->height;
|
mVideoStream->codecpar->height = zm_packet.in_frame->height;
|
||||||
|
#else
|
||||||
|
mVideoStream->codec->width = zm_packet.in_frame->width;
|
||||||
|
mVideoStream->codec->height = zm_packet.in_frame->height;
|
||||||
|
#endif
|
||||||
|
#if LIBAVCODEC_VERSION_CHECK(57, 64, 0, 64, 0)
|
||||||
zm_dump_codecpar(mVideoStream->codecpar);
|
zm_dump_codecpar(mVideoStream->codecpar);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
zm_packet.codec_type = mVideoCodecContext->codec_type;
|
zm_packet.codec_type = mVideoCodecContext->codec_type;
|
||||||
frameComplete = true;
|
frameComplete = true;
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#include <sys/file.h>
|
#include <sys/file.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
StreamBase::~StreamBase() {
|
StreamBase::~StreamBase() {
|
||||||
#if HAVE_LIBAVCODEC
|
#if HAVE_LIBAVCODEC
|
||||||
|
@ -80,7 +81,7 @@ bool StreamBase::checkInitialised() {
|
||||||
|
|
||||||
void StreamBase::updateFrameRate(double fps) {
|
void StreamBase::updateFrameRate(double fps) {
|
||||||
frame_mod = 1;
|
frame_mod = 1;
|
||||||
if ( (fps < 0) || !fps || isinf(fps) ) {
|
if ( (fps < 0) || !fps || std::isinf(fps) ) {
|
||||||
Debug(1, "Zero or negative fps %f in updateFrameRate. Setting frame_mod=1 and effective_fps=0.0", fps);
|
Debug(1, "Zero or negative fps %f in updateFrameRate. Setting frame_mod=1 and effective_fps=0.0", fps);
|
||||||
effective_fps = 0.0;
|
effective_fps = 0.0;
|
||||||
base_fps = 0.0;
|
base_fps = 0.0;
|
||||||
|
|
|
@ -120,7 +120,9 @@ bool VideoStore::open() {
|
||||||
out_format->flags |= AVFMT_TS_NONSTRICT; // allow non increasing dts
|
out_format->flags |= AVFMT_TS_NONSTRICT; // allow non increasing dts
|
||||||
|
|
||||||
if ( video_in_stream ) {
|
if ( video_in_stream ) {
|
||||||
|
#if LIBAVCODEC_VERSION_CHECK(57, 64, 0, 64, 0)
|
||||||
zm_dump_codecpar(video_in_stream->codecpar);
|
zm_dump_codecpar(video_in_stream->codecpar);
|
||||||
|
#endif
|
||||||
video_in_stream_index = video_in_stream->index;
|
video_in_stream_index = video_in_stream->index;
|
||||||
|
|
||||||
if ( monitor->GetOptVideoWriter() == Monitor::PASSTHROUGH ) {
|
if ( monitor->GetOptVideoWriter() == Monitor::PASSTHROUGH ) {
|
||||||
|
|
Loading…
Reference in New Issue