On Tue, Dec 13, 2016 at 9:49 AM, Vignesh V Menon < vign...@multicorewareinc.com> wrote:
> # HG changeset patch > # User Vignesh Vijayakumar <vign...@multicorewareinc.com> > # Date 1480914995 -19800 > # Mon Dec 05 10:46:35 2016 +0530 > # Node ID fb436beef19588e35160624e32fdffcf9506efce > # Parent c97c64ab8b8eaea8b1de611adc9022815d88b09b > API function to reconfigure scalinglists > > diff -r c97c64ab8b8e -r fb436beef195 source/CMakeLists.txt > --- a/source/CMakeLists.txt Thu May 26 17:49:25 2016 +0530 > +++ b/source/CMakeLists.txt Mon Dec 05 10:46:35 2016 +0530 > @@ -30,7 +30,7 @@ > mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD) > > # X265_BUILD must be incremented each time the public API is changed > -set(X265_BUILD 102) > +set(X265_BUILD 103) > configure_file("${PROJECT_SOURCE_DIR}/x265.def.in" > "${PROJECT_BINARY_DIR}/x265.def") > configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in" > diff -r c97c64ab8b8e -r fb436beef195 source/encoder/api.cpp > --- a/source/encoder/api.cpp Thu May 26 17:49:25 2016 +0530 > +++ b/source/encoder/api.cpp Mon Dec 05 10:46:35 2016 +0530 > @@ -31,6 +31,10 @@ > #include "nal.h" > #include "bitcost.h" > > +#ifdef _WIN32 > +#define strdup _strdup > +#endif > + > /* multilib namespace reflectors */ > #if LINKED_8BIT > namespace x265_8bit { > @@ -189,6 +193,23 @@ > return ret; > } > > +int x265_scalinglists_reconfig(x265_encoder* enc, const char *filename) > +{ > + if (!enc || !filename) > + return -1; > + Encoder* encoder = static_cast<Encoder*>(enc); > + if (!encoder->m_latestParam) > + return -1; > + encoder->m_latestParam->bRepeatHeaders = true; > + encoder->m_latestParam->scalingLists = strdup(filename); > + if (encoder->m_scalingList.parseScalingList(encoder->m_ > latestParam->scalingLists)) > + return -1; > + encoder->m_scalingList.setupQuantMatrices(); > + encoder->m_reconfigure = true; > + encoder->printReconfigureParams(); > + return 0; > +} > + > int x265_encoder_encode(x265_encoder *enc, x265_nal **pp_nal, uint32_t > *pi_nal, x265_picture *pic_in, x265_picture *pic_out) > { > if (!enc) > diff -r c97c64ab8b8e -r fb436beef195 source/encoder/encoder.cpp > --- a/source/encoder/encoder.cpp Thu May 26 17:49:25 2016 +0530 > +++ b/source/encoder/encoder.cpp Mon Dec 05 10:46:35 2016 +0530 > @@ -408,6 +408,14 @@ > if (m_analysisFile) > fclose(m_analysisFile); > > + if (m_latestParam != NULL && m_latestParam != m_param) > + { > + if (m_latestParam->scalingLists != m_param->scalingLists) > + free((char*)m_latestParam->scalingLists); > + > + PARAM_NS::x265_param_free(m_latestParam); > + } > + > if (m_param) > { > /* release string arguments that were strdup'd */ > @@ -420,8 +428,6 @@ > > PARAM_NS::x265_param_free(m_param); > } > - > - PARAM_NS::x265_param_free(m_latestParam); > } > > void Encoder::updateVbvPlan(RateControl* rc) > @@ -2474,6 +2480,7 @@ > TOOLCMP(oldParam->bEnableRectInter, newParam->bEnableRectInter, > "rect=%d to %d\n"); > TOOLCMP(oldParam->maxNumMergeCand, newParam->maxNumMergeCand, > "max-merge=%d to %d\n"); > TOOLCMP(oldParam->bIntraInBFrames, newParam->bIntraInBFrames, > "b-intra=%d to %d\n"); > + TOOLCMP(oldParam->scalingLists, newParam->scalingLists, > "scalinglists=%s to %s\n"); > } > > bool Encoder::computeSPSRPSIndex() > diff -r c97c64ab8b8e -r fb436beef195 source/x265.h > --- a/source/x265.h Thu May 26 17:49:25 2016 +0530 > +++ b/source/x265.h Mon Dec 05 10:46:35 2016 +0530 > @@ -1498,6 +1498,10 @@ > * parameters to take this into account. */ > int x265_encoder_reconfig(x265_encoder *, x265_param *); > > +/* x265_scalinglists_reconfig: > + * quantization coefficients from the input file will be copied. */ > +int x265_scalinglists_reconfig(x265_encoder* enc, const char *filename); > + > Can't this be done as part of the x265_encoder_reconfig() API call, with some special casing when the scaling list is changing? > /* x265_encoder_get_stats: > * returns encoder statistics */ > void x265_encoder_get_stats(x265_encoder *encoder, x265_stats *, > uint32_t statsSizeBytes); > > > > _______________________________________________ > x265-devel mailing list > x265-devel@videolan.org > https://mailman.videolan.org/listinfo/x265-devel > >
_______________________________________________ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel