Re: [FFmpeg-devel] [PATCH] avcodec/libvpxenc: add a way to explicitly set temporal layer id.
Thank you Michael, There is a dependency between this patch and the one before it. I will send out a new patch with both on the same branch as PATCH 1/2 and 2/2. Thank you~ Wonkap On Tue, Dec 17, 2019 at 12:08 PM Michael Niedermayer wrote: > On Mon, Dec 16, 2019 at 02:23:26PM -0800, Wonkap Jang wrote: > > In order for rate control to correctly allocate bitrate to each temporal > > layer, correct temporal layer id has to be set to each frame. This > > commit provides the ability to set correct temporal layer id for each > > frame. > > --- > > libavcodec/libvpxenc.c | 11 ++- > > 1 file changed, 10 insertions(+), 1 deletion(-) > > breaks build > CC libavcodec/libvpxenc.o > libavcodec/libvpxenc.c: In function ‘vpx_encode’: > libavcodec/libvpxenc.c:1368:21: error: ‘layer_id’ undeclared (first use in > this function) > memset(&layer_id, 0, sizeof(vpx_svc_layer_id_t)); > ^ > libavcodec/libvpxenc.c:1368:21: note: each undeclared identifier is > reported only once for each function it appears in > libavcodec/libvpxenc.c:1374:17: error: ‘layer_id_valid’ undeclared (first > use in this function) > layer_id_valid = 1; > ^ > make: *** [libavcodec/libvpxenc.o] Error 1 > > [...] > > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > It is what and why we do it that matters, not just one of them. > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH] avcodec/libvpxenc: add a way to explicitly set temporal layer id.
On Mon, Dec 16, 2019 at 02:23:26PM -0800, Wonkap Jang wrote: > In order for rate control to correctly allocate bitrate to each temporal > layer, correct temporal layer id has to be set to each frame. This > commit provides the ability to set correct temporal layer id for each > frame. > --- > libavcodec/libvpxenc.c | 11 ++- > 1 file changed, 10 insertions(+), 1 deletion(-) breaks build CC libavcodec/libvpxenc.o libavcodec/libvpxenc.c: In function ‘vpx_encode’: libavcodec/libvpxenc.c:1368:21: error: ‘layer_id’ undeclared (first use in this function) memset(&layer_id, 0, sizeof(vpx_svc_layer_id_t)); ^ libavcodec/libvpxenc.c:1368:21: note: each undeclared identifier is reported only once for each function it appears in libavcodec/libvpxenc.c:1374:17: error: ‘layer_id_valid’ undeclared (first use in this function) layer_id_valid = 1; ^ make: *** [libavcodec/libvpxenc.o] Error 1 [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB It is what and why we do it that matters, not just one of them. signature.asc Description: PGP signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH] avcodec/libvpxenc: add a way to explicitly set temporal layer id.
In order for rate control to correctly allocate bitrate to each temporal layer, correct temporal layer id has to be set to each frame. This commit provides the ability to set correct temporal layer id for each frame. --- libavcodec/libvpxenc.c | 11 ++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 94af783c4d..3dcf9258cd 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -1527,11 +1527,20 @@ static int vpx_encode(AVCodecContext *avctx, AVPacket *pkt, #endif if (frame->pict_type == AV_PICTURE_TYPE_I) flags |= VPX_EFLAG_FORCE_KF; -if (CONFIG_LIBVPX_VP8_ENCODER && avctx->codec_id == AV_CODEC_ID_VP8 && frame->metadata) { +if (frame->metadata) { AVDictionaryEntry* en = av_dict_get(frame->metadata, "vp8-flags", NULL, 0); if (en) { flags |= strtoul(en->value, NULL, 10); } + +memset(&layer_id, 0, sizeof(vpx_svc_layer_id_t)); + +en = av_dict_get(frame->metadata, "temporal_id", NULL, 0); +if (en) { +layer_id.temporal_layer_id = strtoul(en->value, NULL, 10); +layer_id.temporal_layer_id_per_spatial[0] = layer_id.temporal_layer_id; +layer_id_valid = 1; +} } if (sd) { -- 2.24.1.735.g03f4e72817-goog ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".