From: lekma Date: Mon, 12 Sep 2016 10:51:49 +0000 (+0200) Subject: [transcode]: finally fix hevc_vaapi recording (and streaming?) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ad1f39a2ec9bc793903bb48ba2ef8595b0c04288;p=thirdparty%2Ftvheadend.git [transcode]: finally fix hevc_vaapi recording (and streaming?) --- diff --git a/src/transcoding/codec/codecs/libs/vaapi.c b/src/transcoding/codec/codecs/libs/vaapi.c index 446e04fd9..c0104ee5c 100644 --- a/src/transcoding/codec/codecs/libs/vaapi.c +++ b/src/transcoding/codec/codecs/libs/vaapi.c @@ -156,6 +156,9 @@ tvh_codec_profile_vaapi_hevc_open(tvh_codec_profile_vaapi_t *self, else { AV_DICT_SET_QP(opts, self->qp, 25); } + // max_b_frames + // XXX: remove when b-frames handling in vaapi_encode is fixed + AV_DICT_SET_INT(opts, "bf", 0, 0); return 0; } diff --git a/src/transcoding/codec/codecs/mpeg2video.c b/src/transcoding/codec/codecs/mpeg2video.c index d78f8d426..becb792db 100644 --- a/src/transcoding/codec/codecs/mpeg2video.c +++ b/src/transcoding/codec/codecs/mpeg2video.c @@ -33,6 +33,8 @@ tvh_codec_profile_mpeg2video_open(TVHCodecProfile *self, AVDictionary **opts) else { AV_DICT_SET_GLOBAL_QUALITY(opts, self->qscale, 5); } + // max_b_frames + AV_DICT_SET_INT(opts, "bf", 3, 0); return 0; } diff --git a/src/transcoding/transcode/helpers.c b/src/transcoding/transcode/helpers.c index 510325659..abbff3fd7 100644 --- a/src/transcoding/transcode/helpers.c +++ b/src/transcoding/transcode/helpers.c @@ -164,14 +164,6 @@ tvh_decoder_helpers_register() /* encoders ================================================================= */ /* MPEG2VIDEO */ -static int -tvh_mpeg2video_open(TVHContext *self, AVDictionary **opts) -{ - self->oavctx->gop_size = MIN(600, self->oavctx->gop_size); - self->oavctx->max_b_frames = MIN(16, self->oavctx->max_b_frames); - return 0; -} - static int tvh_mpeg2video_meta(TVHContext *self, AVPacket *avpkt, th_pkt_t *pkt) { @@ -237,7 +229,6 @@ tvh_mpeg2video_meta(TVHContext *self, AVPacket *avpkt, th_pkt_t *pkt) static TVHContextHelper TVHMPEG2VIDEOEncoder = { .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_MPEG2VIDEO, - .open = tvh_mpeg2video_open, .meta = tvh_mpeg2video_meta, }; @@ -341,27 +332,6 @@ static TVHContextHelper TVHHEVCEncoder = { }; -/* VPX */ -static int -tvh_libvpx_open(TVHContext *self, AVDictionary **opts) -{ - self->oavctx->gop_size = MIN(128, self->oavctx->gop_size); - return 0; -} - -static TVHContextHelper TVHVP8Encoder = { - .type = AVMEDIA_TYPE_VIDEO, - .id = AV_CODEC_ID_VP8, - .open = tvh_libvpx_open, -}; - -static TVHContextHelper TVHVP9Encoder = { - .type = AVMEDIA_TYPE_VIDEO, - .id = AV_CODEC_ID_VP9, - .open = tvh_libvpx_open, -}; - - /* AAC */ static void tvh_aac_pack_adts_header(TVHContext *self, pktbuf_t *pb) @@ -437,8 +407,6 @@ tvh_encoder_helpers_register() tvh_encoder_helper_register(&TVHMPEG2VIDEOEncoder); tvh_encoder_helper_register(&TVHH264Encoder); tvh_encoder_helper_register(&TVHHEVCEncoder); - tvh_encoder_helper_register(&TVHVP8Encoder); - tvh_encoder_helper_register(&TVHVP9Encoder); /* audio */ tvh_encoder_helper_register(&TVHAACEncoder); } diff --git a/src/transcoding/transcode/video.c b/src/transcoding/transcode/video.c index 4a2a1b433..73a597308 100644 --- a/src/transcoding/transcode/video.c +++ b/src/transcoding/transcode/video.c @@ -153,7 +153,6 @@ tvh_video_context_open_encoder(TVHContext *self, AVDictionary **opts) self->oavctx->gop_size = ceil(av_q2d(av_inv_q(av_mul_q( self->oavctx->time_base, ticks_per_frame)))); self->oavctx->gop_size *= 3; - self->oavctx->max_b_frames = 3; return 0; }