Re: [FFmpeg-devel] [PATCH] avcodec/libvpxenc: add a way to explicitly set temporal layer id.

2019-12-17 Thread Wonkap Jang
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(_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.

2019-12-17 Thread Michael Niedermayer
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(_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.

2019-12-16 Thread Wonkap Jang
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(_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".