- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello
I'm experiencing a crash when resizing video from 1920x1080 to 640x480 in the H.264 video encoder. There is nocrash when not resizing the output.
The exception is throw in the VideoProcessing::GetFrame. From the debugging information, I've guessed that the plane informationis incorrectly initializedusing the input information (i.e. 1920x1080) and not from the output information, causing the access violation writing location exception later in the video processing part.
The call stack at exception time is
>df_MPEGEncoderFilters.dll!UMC::VideoProcessing::GetFrame(UMC::MediaData * input=0x1551f6d4, UMC::MediaData * output=0x0ec50f60) Line 238 + 0x25 bytesC++
df_MPEGEncoderFilters.dll!VideoProcessing_GetFrame(void * p=0x1551eca4, UMC::MediaData * input=0x1551f6d4, UMC::MediaData * output=0x0ec50f60) Line 69 + 0x1b bytesC++
df_MPEGEncoderFilters.dll!UMC_H264_ENCODER::H264EncoderFrameList_InsertFrame_8u16s(UMC_H264_ENCODER::sH264EncoderFrameList_8u16s * state=0x0ec41320, UMC::VideoData * rFrame=0x1551f6d4, UMC_H264_ENCODER::EnumPicCodType ePictureType=INTRAPIC, int isRef=0, int num_slices=1, const IppiSize & padded_size={...}, int alpha=0) Line 1271 + 0x14 bytesC++
df_MPEGEncoderFilters.dll!UMC_H264_ENCODER::H264CoreEncoder_Encode_8u16s(void * state=0x0ec411c0, UMC::VideoData * src=0x1551f6d4, UMC::MediaData * dst=0x1551f35c, const unsigned int flags=0, unsigned int & notes=0) Line 355 + 0x4c bytesC++
df_MPEGEncoderFilters.dll!UMC_H264_ENCODER::H264CoreEncoder_GetFrame_8u16s(void * state=0x0ec411c0, UMC::MediaData * in=0x1551f6d4, UMC::MediaData * out=0x1551f35c) Line 1932 + 0x25 bytesC++
df_MPEGEncoderFilters.dll!UMC::H264VideoEncoder::GetFrame(UMC::MediaData * in=0x1551f6d4, UMC::MediaData * out=0x1551f35c) Line 109 + 0x14 bytesC++
I've found the workaround to initialize the structure as follow:
- In umc_h264_enc_cpb_tmpl.cpp.h, line 120, replace:
This error occurs with Ipp UMC version 6.1.5
Thanks for your time,
Pascal
I'm experiencing a crash when resizing video from 1920x1080 to 640x480 in the H.264 video encoder. There is nocrash when not resizing the output.
The exception is throw in the VideoProcessing::GetFrame. From the debugging information, I've guessed that the plane informationis incorrectly initializedusing the input information (i.e. 1920x1080) and not from the output information, causing the access violation writing location exception later in the video processing part.
The call stack at exception time is
>df_MPEGEncoderFilters.dll!UMC::VideoProcessing::GetFrame(UMC::MediaData * input=0x1551f6d4, UMC::MediaData * output=0x0ec50f60) Line 238 + 0x25 bytesC++
df_MPEGEncoderFilters.dll!VideoProcessing_GetFrame(void * p=0x1551eca4, UMC::MediaData * input=0x1551f6d4, UMC::MediaData * output=0x0ec50f60) Line 69 + 0x1b bytesC++
df_MPEGEncoderFilters.dll!UMC_H264_ENCODER::H264EncoderFrameList_InsertFrame_8u16s(UMC_H264_ENCODER::sH264EncoderFrameList_8u16s * state=0x0ec41320, UMC::VideoData * rFrame=0x1551f6d4, UMC_H264_ENCODER::EnumPicCodType ePictureType=INTRAPIC, int isRef=0, int num_slices=1, const IppiSize & padded_size={...}, int alpha=0) Line 1271 + 0x14 bytesC++
df_MPEGEncoderFilters.dll!UMC_H264_ENCODER::H264CoreEncoder_Encode_8u16s(void * state=0x0ec411c0, UMC::VideoData * src=0x1551f6d4, UMC::MediaData * dst=0x1551f35c, const unsigned int flags=0, unsigned int & notes=0) Line 355 + 0x4c bytesC++
df_MPEGEncoderFilters.dll!UMC_H264_ENCODER::H264CoreEncoder_GetFrame_8u16s(void * state=0x0ec411c0, UMC::MediaData * in=0x1551f6d4, UMC::MediaData * out=0x1551f35c) Line 1932 + 0x25 bytesC++
df_MPEGEncoderFilters.dll!UMC::H264VideoEncoder::GetFrame(UMC::MediaData * in=0x1551f6d4, UMC::MediaData * out=0x1551f35c) Line 109 + 0x14 bytesC++
I've found the workaround to initialize the structure as follow:
- In umc_h264_enc_cpb_tmpl.cpp.h, line 120, replace:
if (downScale)
{
state->uWidth = in->GetWidth() >> 1;
state->uHeight = in->GetHeight() >> 1;
}
else
{
state->uWidth = in->GetWidth();
state->uHeight = in->GetHeight();
}
with
if (downScale)
{
...
}
else
{
state->uWidth = paddedSize.width;
state->uHeight = paddedSize.height;
}
This error occurs with Ipp UMC version 6.1.5
Thanks for your time,
Pascal
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Eventually, I've moved the deinterlacing/resizing as a preprocessing step of the encoding (using the UMC::VideoProcessing class.)
Cheers,
Pascal
Cheers,
Pascal
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page