diff --git a/libgeneric-pc/audio.cpp b/libgeneric-pc/audio.cpp index b112518..3d484fd 100644 --- a/libgeneric-pc/audio.cpp +++ b/libgeneric-pc/audio.cpp @@ -336,7 +336,9 @@ void cAudio::run() { hal_info("====================== start decoder thread ================================\n"); /* libavcodec & friends */ +#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 9, 100) av_register_all(); +#endif AVCodec *codec; AVFormatContext *avfc = NULL; @@ -473,7 +475,11 @@ void cAudio::run() } obuf_sz = swr_convert(swr, &obuf, obuf_sz, (const uint8_t **)frame->extended_data, frame->nb_samples); +#if (LIBAVUTIL_VERSION_MAJOR < 54) curr_pts = av_frame_get_best_effort_timestamp(frame); +#else + curr_pts = frame->best_effort_timestamp; +#endif hal_debug("%s: pts 0x%" PRIx64 " %3f\n", __func__, curr_pts, curr_pts/90000.0); int o_buf_sz = av_samples_get_buffer_size(&out_linesize, o_ch, obuf_sz, AV_SAMPLE_FMT_S16, 1); diff --git a/libgeneric-pc/video.cpp b/libgeneric-pc/video.cpp index d86e058..5c3aa0e 100644 --- a/libgeneric-pc/video.cpp +++ b/libgeneric-pc/video.cpp @@ -77,7 +77,9 @@ static const AVRational aspect_ratios[6] = { cVideo::cVideo(int, void *, void *, unsigned int) { hal_debug("%s\n", __func__); +#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 9, 100) av_register_all(); +#endif if (!HAL_nodec) dmxbuf = (uint8_t *)malloc(DMX_BUF_SZ); bufpos = 0; @@ -575,7 +577,11 @@ void cVideo::run(void) } f->width(c->width); f->height(c->height); +#if (LIBAVUTIL_VERSION_MAJOR < 54) int64_t vpts = av_frame_get_best_effort_timestamp(frame); +#else + int64_t vpts = frame->best_effort_timestamp; +#endif /* a/v delay determined experimentally :-) */ #if USE_OPENGL if (v_format == VIDEO_FORMAT_MPEG2) @@ -605,7 +611,11 @@ void cVideo::run(void) } hal_debug("%s: time_base: %d/%d, ticks: %d rate: %d pts 0x%" PRIx64 "\n", __func__, c->time_base.num, c->time_base.den, c->ticks_per_frame, dec_r, +#if (LIBAVUTIL_VERSION_MAJOR < 54) av_frame_get_best_effort_timestamp(frame)); +#else + frame->best_effort_timestamp); +#endif } else hal_debug("%s: got_frame: %d stillpicture: %d\n", __func__, got_frame, stillpicture); still_m.unlock();