# nvjpeg , decode to buffer segment fault

**URL:** <https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059>\
**Category:** Jetson TX2\
**Created:** [August 16, 2019, 9:38am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059 "2019-08-16T09:38:19Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![baoson202](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/baoson202/32/28122_2.png) [@baoson202](https://forums.developer.nvidia.com/u/baoson202)\
**Post date:** [August 16, 2019, 9:38am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/1 "2019-08-16T09:38:19Z")

</div>

Hi Every one !

I deploy my application in tx2 jetpack 4.2.1.

I use nvjpeg and decodetobuffer to decode jpeg frame,  
and I get an segment fault

" Corrupt JPEG data : 1374 extraneous bytes before marker 0xd8 "  
" Invalid JPEG file structure : two SOI markers"

How can i ignore it if input jpeg frame is error ?

Thanks.

---

<div class="post-metadata">

**Author:** ![DaneLLL](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/danelll/32/14043_2.png) [@DaneLLL](https://forums.developer.nvidia.com/u/DaneLLL)\
**Post date:** [August 19, 2019, 3:49am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/2 "2019-08-19T03:49:13Z")

</div>

Hi,  
Please share a patch on 06\_jpeg\_decode so that we can build,run the app to reproduce the issue. Thanks.

---

<div class="post-metadata">

**Author:** ![baoson202](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/baoson202/32/28122_2.png) [@baoson202](https://forums.developer.nvidia.com/u/baoson202)\
**Post date:** [August 19, 2019, 8:55am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/3 "2019-08-19T08:55:24Z")

</div>

jpg source from camera mjpeg

in my file ccudajpegdecoder.cu  
input :

```
  jpg :host memory 
  jpg_size: sizeof jpg

```

output

```
  bmp : host memory  
  bmp_size : sizeof bmp

```

I checked byte[0] and byte[1] of jpg input if it 's right 0xff ,0xd8 , i will call this method .

```auto
bool CCudaJpegDecoder::cuda_decode(unsigned char* jpg, const int& jpg_size, unsigned char** bmp, int& bmp_size)
{
    uint32_t width =0;
    uint32_t height =0;
    uint32_t fmt = -1;

    NvJPEGDecoder* dec = (NvJPEGDecoder*)jpegdec;
    NvBuffer* buf = NULL;
    try{
        if(dec->decodeToBuffer(&buf,jpg,jpg_size,&fmt,&width,&height)==0)
        {
            if(buf)
            {
                w = width;
                h = height;
                initMem420(memdecode,w,h);

```

I run a few minute →

" Corrupt JPEG data : 1374 extraneous bytes before marker 0xd8  
" Invalid JPEG file structure : two SOI markers"

→ segment fault

---

<div class="post-metadata">

**Author:** ![DaneLLL](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/danelll/32/14043_2.png) [@DaneLLL](https://forums.developer.nvidia.com/u/DaneLLL)\
**Post date:** [August 20, 2019, 1:32am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/4 "2019-08-20T01:32:19Z")

</div>

Hi,  
Please attach a JPEG file so that we can reproduce it by running below command:

```auto
$ /usr/src/tegra_multimedia_api/samples/06_jpeg_decode/jpeg_decode num_files 1 IMAG0561.jpg a.yuv --decode-buffer

```

---

<div class="post-metadata">

**Author:** ![baoson202](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/baoson202/32/28122_2.png) [@baoson202](https://forums.developer.nvidia.com/u/baoson202)\
**Post date:** [August 21, 2019, 8:48am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/5 "2019-08-21T08:48:41Z")

</div>

[url][test.jpg - Google Drive](https://drive.google.com/file/d/180To_galmEIsZ3V7yOHmTOUh2JBxWNzc/view?usp=sharing%5B/url%5D)

./jpeg\_decode num\_files 1 /home/nvidia/Desktop/test.jpg /home/nvidia/Desktop/a.yuv --decode-buffer  
Image Resolution - 768 x 576  
munmap\_chunk(): invalid pointer  
Aborted (core dumped)

---

<div class="post-metadata">

**Author:** ![baoson202](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/baoson202/32/28122_2.png) [@baoson202](https://forums.developer.nvidia.com/u/baoson202)\
**Post date:** [August 22, 2019, 4:26am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/6 "2019-08-22T04:26:58Z")

</div>

i use libturbojpeg to decode jpeg without error.

when i use lib nvjpeg (decodetobuffer) , my program have error after decode many jpeg buffer:

Invalid JPEG file structure: two soi markers

---

<div class="post-metadata">

**Author:** ![DaneLLL](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/danelll/32/14043_2.png) [@DaneLLL](https://forums.developer.nvidia.com/u/DaneLLL)\
**Post date:** [August 22, 2019, 6:40am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/7 "2019-08-22T06:40:29Z")

</div>

Hi,  
We are checking decoding of the 768x576 image.

For continuous jpeg decoding, please try [this](https://devtalk.nvidia.com/default/topic/1060896/jetson-tx2/jetpack-4-2-1-nvjpeg-leaking/post/5375536/#5375536)

---

<div class="post-metadata">

**Author:** ![DaneLLL](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/danelll/32/14043_2.png) [@DaneLLL](https://forums.developer.nvidia.com/u/DaneLLL)\
**Post date:** [August 23, 2019, 2:01am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/8 "2019-08-23T02:01:06Z")

</div>

Hi,  
For decoding the 768x576 image. Please try attached patch.  
[r32\_2\_TEST\_0001-mm\_api-jpeg\_decode-fix-decoding-failure.zip](https://forums.developer.nvidia.com/uploads/short-url/dQidAr8Pgvkq7cJvmrG9wpAIr39.zip) (1.02 KB)

---

<div class="post-metadata">

**Author:** ![baoson202](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/baoson202/32/28122_2.png) [@baoson202](https://forums.developer.nvidia.com/u/baoson202)\
**Post date:** [August 23, 2019, 2:09am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/9 "2019-08-23T02:09:55Z")

</div>

> [@](#):
>
> i use libturbojpeg to decode jpeg without error.
> 
> when i use lib nvjpeg (decodetobuffer) , my program have error after decode many jpeg buffer:
> 
> Invalid JPEG file structure: two soi markers

Thank you for supporting with my questions !

I had used nvjpeg lib you attached.

Can nvjpeg lib ignore it ? it cause crash my app .

---

<div class="post-metadata">

**Author:** ![DaneLLL](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/danelll/32/14043_2.png) [@DaneLLL](https://forums.developer.nvidia.com/u/DaneLLL)\
**Post date:** [August 23, 2019, 3:25am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/10 "2019-08-23T03:25:18Z")

</div>

Hi,  
The [prebuilt lib](https://devtalk.nvidia.com/default/topic/1060896/jetson-tx2/jetpack-4-2-1-nvjpeg-leaking/post/5375536/#5375536) is to fix an issue in calling decodeToFd(). If you do not call the function, you may ignore the prebuilt lib.

---

<div class="post-metadata">

**Author:** ![baoson202](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/baoson202/32/28122_2.png) [@baoson202](https://forums.developer.nvidia.com/u/baoson202)\
**Post date:** [August 23, 2019, 8:08am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/11 "2019-08-23T08:08:47Z")

</div>

> [@DaneLLL](#):
>
> Hi,  
> The [prebuilt lib](https://devtalk.nvidia.com/default/topic/1060896/jetson-tx2/jetpack-4-2-1-nvjpeg-leaking/post/5375536/#5375536) is to fix an issue in calling decodeToFd(). If you do not call the function, you may ignore the prebuilt lib.

Thank you for your response.

I will try to use it

---

<div class="post-metadata">

**Author:** ![baoson202](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/baoson202/32/28122_2.png) [@baoson202](https://forums.developer.nvidia.com/u/baoson202)\
**Post date:** [August 29, 2019, 3:19am UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/12 "2019-08-29T03:19:43Z")

</div>

> [@DaneLLL](#):
>
> Hi,  
> The [prebuilt lib](https://devtalk.nvidia.com/default/topic/1060896/jetson-tx2/jetpack-4-2-1-nvjpeg-leaking/post/5375536/#5375536) is to fix an issue in calling decodeToFd(). If you do not call the function, you may ignore the prebuilt lib.

I found the cause of segment fault . If i check header of jpeg file with lib other lib and feed to decodeToBuffer , that is not segment fault .

---

<div class="post-metadata">

**Author:** ![nadeemm](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/nadeemm/32/367020_2.png) [@nadeemm](https://forums.developer.nvidia.com/u/nadeemm)\
**Post date:** [October 18, 2021, 6:33pm UTC](https://forums.developer.nvidia.com/t/nvjpeg-decode-to-buffer-segment-fault/80059/13 "2021-10-18T18:33:42Z")

</div>

Closed on October 18, 2021, 6:33pm UTC


