summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorMinghai Shang <minghai@google.com>2014-09-11 11:28:03 -0700
committerMinghai Shang <minghai@google.com>2014-09-11 16:21:35 -0700
commite3fff31aff4f6be8aad493bc954f60ad5cc2f8f5 (patch)
treecd093e856a8447ae7806ac3f740b51a7a1beb2bb /vp9/encoder
parent12aaff560b0615c6ebce1f707251a1bbead3d7f3 (diff)
downloadlibvpx-e3fff31aff4f6be8aad493bc954f60ad5cc2f8f5.tar
libvpx-e3fff31aff4f6be8aad493bc954f60ad5cc2f8f5.tar.gz
libvpx-e3fff31aff4f6be8aad493bc954f60ad5cc2f8f5.tar.bz2
libvpx-e3fff31aff4f6be8aad493bc954f60ad5cc2f8f5.zip
[spatial svc] Output psnr for all layers in one packet.
Change-Id: I97d0cf095e9cfefdfa0f65eb5e96d6848cc9ffca
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_encoder.c5
-rw-r--r--vp9/encoder/vp9_svc_layercontext.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index b6e606d78..3eeb3d44c 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -1272,7 +1272,10 @@ static void generate_psnr_packet(VP9_COMP *cpi) {
pkt.data.psnr.psnr[i] = psnr.psnr[i];
}
pkt.kind = VPX_CODEC_PSNR_PKT;
- vpx_codec_pkt_list_add(cpi->output_pkt_list, &pkt);
+ if (is_two_pass_svc(cpi))
+ cpi->svc.layer_context[cpi->svc.spatial_layer_id].psnr_pkt = pkt.data.psnr;
+ else
+ vpx_codec_pkt_list_add(cpi->output_pkt_list, &pkt);
}
int vp9_use_as_reference(VP9_COMP *cpi, int ref_frame_flags) {
diff --git a/vp9/encoder/vp9_svc_layercontext.h b/vp9/encoder/vp9_svc_layercontext.h
index 1fc43a427..d180d1a8c 100644
--- a/vp9/encoder/vp9_svc_layercontext.h
+++ b/vp9/encoder/vp9_svc_layercontext.h
@@ -36,6 +36,7 @@ typedef struct {
int gold_ref_idx;
int has_alt_frame;
size_t layer_size;
+ struct vpx_psnr_pkt psnr_pkt;
} LAYER_CONTEXT;
typedef struct {