diff --git a/libarmbox/video.cpp b/libarmbox/video.cpp index 9182ddb..8e13820 100644 --- a/libarmbox/video.cpp +++ b/libarmbox/video.cpp @@ -206,7 +206,16 @@ static const char *vid_modes[] = #define VIDEO_STREAMTYPE_MPEG1 6 #define VIDEO_STREAMTYPE_H265_HEVC 7 #define VIDEO_STREAMTYPE_AVS 16 +#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(58, 133, 100) +static void get_packet_defaults(AVPacket *pkt) +{ + memset(pkt, 0, sizeof(*pkt)); + pkt->pts = AV_NOPTS_VALUE; + pkt->dts = AV_NOPTS_VALUE; + pkt->pos = -1; +} +#endif ssize_t write_all(int fd, const void *buf, size_t count) { int retval; @@ -267,6 +276,8 @@ void write_frame(AVFrame *in_frame, int fd) AVPacket pkt; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 133, 100) av_init_packet(&pkt); +#else + get_packet_defaults(&pkt); #endif /* encode the image */ #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57,37,100) @@ -434,6 +445,8 @@ int image_to_mpeg2(const char *image_name, int fd) AVPacket packet; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 133, 100) av_init_packet(&packet); +#else + get_packet_defaults(&packet); #endif if ((ret = av_read_frame(formatContext, &packet)) != -1) { diff --git a/libeplayer3-sh4/input.cpp b/libeplayer3-sh4/input.cpp index b26e25a..3eb64f2 100644 --- a/libeplayer3-sh4/input.cpp +++ b/libeplayer3-sh4/input.cpp @@ -64,6 +64,17 @@ Input::~Input() { } +#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(58, 133, 100) +static void get_packet_defaults(AVPacket *pkt) +{ + memset(pkt, 0, sizeof(*pkt)); + + pkt->pts = AV_NOPTS_VALUE; + pkt->dts = AV_NOPTS_VALUE; + pkt->pos = -1; +} +#endif + int64_t Input::calcPts(AVStream *stream, int64_t pts) { if (pts == AV_NOPTS_VALUE) @@ -263,6 +274,8 @@ bool Input::Play() AVPacket packet; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 133, 100) av_init_packet(&packet); +#else + get_packet_defaults(&packet); #endif int err = av_read_frame(avfc, &packet); if (err == AVERROR(EAGAIN)) @@ -452,6 +465,8 @@ bool Input::ReadSubtitle(const char *filename, const char *format, int pid) AVPacket packet; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 133, 100) av_init_packet(&packet); +#else + get_packet_defaults(&packet); #endif while (av_read_frame(subavfc, &packet) > -1) { diff --git a/libgeneric-pc/audio.cpp b/libgeneric-pc/audio.cpp index a5e8bd3..15ea346 100644 --- a/libgeneric-pc/audio.cpp +++ b/libgeneric-pc/audio.cpp @@ -58,6 +58,16 @@ static ao_sample_format sformat; static AVCodecContext *c = NULL; static AVCodecParameters *p = NULL; +#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(58, 133, 100) +static void get_packet_defaults(AVPacket *pkt) +{ + memset(pkt, 0, sizeof(*pkt)); + + pkt->pts = AV_NOPTS_VALUE; + pkt->dts = AV_NOPTS_VALUE; + pkt->pos = -1; +} +#endif cAudio::cAudio(void *, void *, void *) { @@ -381,6 +391,8 @@ void cAudio::run() curr_pts = 0; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 133, 100) av_init_packet(&avpkt); +#else + get_packet_defaults(&avpkt); #endif inp = av_find_input_format("mpegts"); AVIOContext *pIOCtx = avio_alloc_context(inbuf, INBUF_SIZE, // internal Buffer and its size diff --git a/libgeneric-pc/video.cpp b/libgeneric-pc/video.cpp index e44f22a..00fba06 100644 --- a/libgeneric-pc/video.cpp +++ b/libgeneric-pc/video.cpp @@ -65,6 +65,16 @@ extern bool HAL_nodec; static uint8_t *dmxbuf; static int bufpos; +#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(58, 133, 100) +static void get_packet_defaults(AVPacket *pkt) +{ + memset(pkt, 0, sizeof(*pkt)); + + pkt->pts = AV_NOPTS_VALUE; + pkt->dts = AV_NOPTS_VALUE; + pkt->pos = -1; +} +#endif static const AVRational aspect_ratios[6] = { @@ -302,6 +312,8 @@ bool cVideo::ShowPicture(const char *fname) } #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 133, 100) av_init_packet(&avpkt); +#else + get_packet_defaults(&avpkt); #endif if (av_read_frame(avfc, &avpkt) < 0) { @@ -524,6 +536,8 @@ void cVideo::run(void) dec_r = 0; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 133, 100) av_init_packet(&avpkt); +#else + get_packet_defaults(&avpkt); #endif inp = av_find_input_format("mpegts"); AVIOContext *pIOCtx = avio_alloc_context(inbuf, INBUF_SIZE, // internal Buffer and its size diff --git a/libspark/video.cpp b/libspark/video.cpp index 57e0104..66806db 100644 --- a/libspark/video.cpp +++ b/libspark/video.cpp @@ -155,6 +155,17 @@ static const char *vid_modes[] = NULL }; +#if LIBAVCODEC_VERSION_INT > AV_VERSION_INT(58, 133, 100) +static void get_packet_defaults(AVPacket *pkt) +{ + memset(pkt, 0, sizeof(*pkt)); + + pkt->pts = AV_NOPTS_VALUE; + pkt->dts = AV_NOPTS_VALUE; + pkt->pos = -1; +} +#endif + #define VIDEO_STREAMTYPE_MPEG2 0 #define VIDEO_STREAMTYPE_MPEG4_H264 1 #define VIDEO_STREAMTYPE_VC1 3 @@ -232,6 +243,8 @@ void write_frame(AVFrame *in_frame, FILE *fp) AVPacket pkt; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 133, 100) av_init_packet(&pkt); +#else + get_packet_defaults(&pkt); #endif /* encode the image */ #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57,37,100) @@ -399,6 +412,8 @@ int image_to_mpeg2(const char *image_name, const char *encode_name) AVPacket packet; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 133, 100) av_init_packet(&packet); +#else + get_packet_defaults(&packet); #endif if ((ret = av_read_frame(formatContext, &packet)) != -1) {