unify AV_VERSION_INT defines; fix cst build

Origin commit data
------------------
Branch: ni/coolstream
Commit: d1ff68dc54
Author: vanhofen <vanhofen@gmx.de>
Date: 2021-08-29 (Sun, 29 Aug 2021)

Origin message was:
------------------
- unify AV_VERSION_INT defines; fix cst build

------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
vanhofen
2021-08-29 19:22:49 +02:00
parent f8d2330214
commit ba26796925
6 changed files with 28 additions and 26 deletions

View File

@@ -66,7 +66,9 @@
extern "C" {
#include <libavformat/avformat.h>
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 48, 101)
#include <libavcodec/bsf.h>
#endif
}
#if (LIBAVCODEC_VERSION_MAJOR > 55)
@@ -80,7 +82,7 @@ class CStreamRec : public CRecordInstance, OpenThreads::Thread
private:
AVFormatContext *ifcx;
AVFormatContext *ofcx;
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT( 57,48,100 )
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 48, 100)
AVBitStreamFilterContext *bsfc;
#else
AVBSFContext *bsfc;
@@ -2091,7 +2093,7 @@ void CStreamRec::Close()
avformat_free_context(ofcx);
}
if (bsfc){
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT( 57,48,100 )
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 48, 100)
av_bitstream_filter_close(bsfc);
#else
av_bsf_free(&bsfc);
@@ -2113,7 +2115,7 @@ void CStreamRec::FillMovieInfo(CZapitChannel * /*channel*/, APIDList & /*apid_li
for (unsigned i = 0; i < ofcx->nb_streams; i++) {
AVStream *st = ofcx->streams[i];
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT( 57,25,101 )
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(57, 25, 101)
AVCodecContext * codec = st->codec;
#else
AVCodecParameters * codec = st->codecpar;
@@ -2312,7 +2314,7 @@ bool CStreamRec::Open(CZapitChannel * channel)
printf("%s: Cannot find stream info [%s]!\n", __FUNCTION__, channel->getUrl().c_str());
return false;
}
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58,27,102)
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 27, 102)
const char *hls = "applehttp";
#else
const char *hls = "hls";
@@ -2337,7 +2339,7 @@ bool CStreamRec::Open(CZapitChannel * channel)
#endif
std::string tsfile = std::string(filename) + ".ts";
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59,0,100)
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(59, 0, 100)
AVOutputFormat *ofmt = av_guess_format(NULL, tsfile.c_str(), NULL);
#else
const AVOutputFormat *ofmt = av_guess_format(NULL, tsfile.c_str(), NULL);
@@ -2365,7 +2367,7 @@ bool CStreamRec::Open(CZapitChannel * channel)
stream_index = -1;
int stid = 0x200;
for (unsigned i = 0; i < ifcx->nb_streams; i++) {
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT( 57,25,101 )
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(57, 25, 101)
AVCodecContext * iccx = ifcx->streams[i]->codec;
AVStream *ost = avformat_new_stream(ofcx, iccx->codec);
avcodec_copy_context(ost->codec, iccx);
@@ -2389,7 +2391,7 @@ bool CStreamRec::Open(CZapitChannel * channel)
av_dump_format(ofcx, 0, ofcx->url, 1);
#endif
av_log_set_level(AV_LOG_WARNING);
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT( 57,48,100 )
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 48, 100)
bsfc = av_bitstream_filter_init("h264_mp4toannexb");
if (!bsfc)
printf("%s: av_bitstream_filter_init h264_mp4toannexb failed!\n", __FUNCTION__);
@@ -2425,14 +2427,14 @@ void CStreamRec::run()
break;
if (pkt.stream_index < 0)
continue;
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT( 57,25,101 )
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(57, 25, 101)
AVCodecContext *codec = ifcx->streams[pkt.stream_index]->codec;
#else
AVCodecParameters *codec = ifcx->streams[pkt.stream_index]->codecpar;
#endif
if (bsfc && codec->codec_id == AV_CODEC_ID_H264) {
AVPacket newpkt = pkt;
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT( 57,48,100 )
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 48, 100)
if (av_bitstream_filter_filter(bsfc, codec, NULL, &newpkt.data, &newpkt.size, pkt.data, pkt.size, pkt.flags & AV_PKT_FLAG_KEY) >= 0) {
av_packet_unref(&pkt);
newpkt.buf = av_buffer_create(newpkt.data, newpkt.size, av_buffer_default_free, NULL, 0);