]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
[transcode]: finally fix hevc_vaapi recording (and streaming?)
authorlekma <lekmalek@gmail.com>
Mon, 12 Sep 2016 10:51:49 +0000 (12:51 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 28 Aug 2017 13:32:48 +0000 (15:32 +0200)
src/transcoding/codec/codecs/libs/vaapi.c
src/transcoding/codec/codecs/mpeg2video.c
src/transcoding/transcode/helpers.c
src/transcoding/transcode/video.c

index 446e04fd9e4a99141bf9b86c938b0aa6b49e4b98..c0104ee5ce08970c45d3609053991699d6bb94cb 100644 (file)
@@ -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;
 }
 
index d78f8d42618017aa0334466f51866fa8f7a50941..becb792db8988c510e72c69d93f5e923631cf8c9 100644 (file)
@@ -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;
 }
 
index 5103256596c4e5c73c539c8c0f75507c52afac64..abbff3fd764d79d0d5215e6d07c86b33f54c3644 100644 (file)
@@ -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);
 }
index 4a2a1b4335d68f8442b64f7ddb0c2211ab15471d..73a59730842e4490afe03a94bcf918c9f570ad7d 100644 (file)
@@ -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;
 }