pombreda / webm

Automatically exported from code.google.com/p/webm
0 stars 0 forks source link

vpx_codec_enc_config_set() fails with invalid parameter if called on VP9 with a new frame size #912

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What is the expected behavior? What do you see instead?

VP8 allows the frame dimensions to be reconfigured dynamically for an existing 
codec instance, provided that the encoder is in one-pass mode with frame lag == 
1.

VP9 should support reconfiguration of the frame dimensions similar, but instead 
always fails with an invalid parameter error.

Original issue reported on code.google.com by wez@chromium.org on 11 Jan 2015 at 9:23

GoogleCodeExporter commented 9 years ago

Original comment by ya...@google.com on 11 Jan 2015 at 10:00

GoogleCodeExporter commented 9 years ago

Original comment by ya...@google.com on 12 Jan 2015 at 5:38

GoogleCodeExporter commented 9 years ago

Original comment by aconve...@google.com on 12 Jan 2015 at 7:38

GoogleCodeExporter commented 9 years ago
https://gerrit.chromium.org/gerrit/#/c/73466

Original comment by aconve...@google.com on 13 Jan 2015 at 1:03

GoogleCodeExporter commented 9 years ago
Issue 910 has been merged into this issue.

Original comment by ya...@google.com on 15 Jan 2015 at 1:56

GoogleCodeExporter commented 9 years ago
Issue 907 has been merged into this issue.

Original comment by ya...@google.com on 15 Jan 2015 at 1:56

GoogleCodeExporter commented 9 years ago
VP8 only allows resize smaller than the initial size. Is this the desire for 
VP9? 

Original comment by aconve...@google.com on 16 Jan 2015 at 9:56

GoogleCodeExporter commented 9 years ago
The check at 
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/libvpx/so
urce/libvpx/vp8/vp8_cx_iface.c&sq=package:chromium&rcl=1421356211&l=450 appears 
to allow arbitrary resizes...?

Original comment by wez@chromium.org on 17 Jan 2015 at 12:40

GoogleCodeExporter commented 9 years ago
Well the configure call allows it. The actual result is use-after-free which I 
doubt you want.

Original comment by aconve...@google.com on 17 Jan 2015 at 12:56

GoogleCodeExporter commented 9 years ago
Ideally I'd like that we can resize larger or smaller, and let libvpx take care 
of any necessary re-initialization internally.

Second best would be to have reconfigurations that libvpx doesn't support 
return some special return-code indicating that the new parameters _are_ valid, 
just not for reconfigurations, so the calling code can handle that by 
recreating the codec.

Last but not least, if the checks at least match the actually capabilities of 
the codec then we can handle invalid-parameter with one re-try of recreating 
the codec.

Original comment by wez@chromium.org on 17 Jan 2015 at 1:41

GoogleCodeExporter commented 9 years ago
http://git.chromium.org/gitweb/?p=webm/libvpx.git;a=commit;h=a79db92c077a0a78f64
0319866686cc053a35aee

Original comment by aconve...@google.com on 3 Feb 2015 at 5:52