[x265] no SPS/PPS yet, * will be dropped

Pradeep Ramachandran pradeep at multicorewareinc.com
Fri Aug 12 05:02:41 CEST 2016


On Fri, Aug 12, 2016 at 7:14 AM, Deepthi Nandakumar <
deepthipnandakumar at gmail.com> wrote:

> You're handling pNals wrongly. framesize may be 1, but number of NALs in
> the stream may be greater than 1 (=iNal). So you need to copy all of those,
> not just pNals[0].
> On 12-Aug-2016 2:53 am, "Dolevo Jay" <cmst at live.com> wrote:
>
>> Hi all,
>>
>>
>> In my encoder application, I initialize the encoder as follows:
>>
>>
>>     param = x265_param_alloc();
>>
>>     x265_param_default(param);
>>
>>     x265_param_default_preset(param, "ultrafast", "zerolatency");
>>
>>     param->fpsNum = 25;
>>
>>     param->fpsDenom = 1;
>>
>>     param->bRepeatHeaders = true;
>>
>>     param->internalCsp = X265_CSP_I420;
>>
>>     param->sourceWidth = aWidth;
>>
>>     param->sourceHeight = aHeight;
>>
>>
>>     y_size = param->sourceWidth * param->sourceHeight;
>>
>>
>>     param->logLevel = X265_LOG_FULL;
>>
>>
>>     encoder = x265_encoder_open(param);
>>
>>     if (NULL == encoder) {
>>
>>         printLog("[X265] x265_encoder_open err");
>>
>>         return;
>>
>>     }
>>
>>     param->internalCsp = X265_CSP_I420;
>>
>>
>>     pic_in = x265_picture_alloc();
>>
>>     x265_picture_init(param, pic_in);
>>
>>     pic_in->planes[0] = new char[32000000];
>>
>>     pic_in->planes[1] = new char[32000000];
>>
>>     pic_in->planes[2] = new char[32000000];
>>
>>     pic_in->stride[0] = aWidth;
>>
>>     pic_in->stride[1] = aWidth;
>>
>>     pic_in->stride[2] = aWidth;
>>
>>
>>     pic_out = x265_picture_alloc();
>>
>>     x265_picture_init(param, pic_out);
>>
>>
>>
>> Then, I apply the following function for each incoming frame:
>>
>>
>>     int frame_size = 0;
>>
>>
>>     x265_picture pic_out1;
>>
>>     frame_size = x265_encoder_encode(encoder, &pNals, &iNal, pic_in, NULL);
>>
>>     if (frame_size < 0) {
>>
>>         printLog("[ERROR] H265: x265_encoder_encode failed.");
>>
>>         return;
>>
>>     }
>>
>>     if (frame_size > 0) {
>>
>>         memcpy(aFramebuffer, pNals[0].payload, pNals[0].sizeBytes);
>>
>>
You need to iterate over iNal and copy the payload for all the pNals from 0
to iNal.


>         *aFrameBufferSize = pNals[0].sizeBytes;
>>
>>     }
>>
>>
>>     dumpfileEncodedData.write((const char *)aFramebuffer, *aFrameBufferSize);
>>
>>
>>
>> Just to debug the encoded bitstream, I dump the data into a file
>>
>>
>>
>> _______________________________________________
>> x265-devel mailing list
>> x265-devel at videolan.org
>> https://mailman.videolan.org/listinfo/x265-devel
>>
>>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20160812/f1877249/attachment-0001.html>


More information about the x265-devel mailing list