This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM8168,分辨率问题



DM8168,用的是dvrrdk4.01,数据从网络摄像头进来。分辨率是1600*1200,不知道8168支不支持这种不是很常规的分辨率的配置,如果支持的话该怎么配置呢?请各位帮帮忙,多谢!

  • Chu Hi,

    网络摄像头进来,就是通过网络输入DM8168。DM8168解码是支持1600x1200的分辨率,需要修改最大支持的输入高度大于1200.

  • Chris Hi,

    感谢您的回复,请问应该在哪里改呢,还有2048*1536的分辨率。

  • 你好,

    本地解码的例子应该是可以支持大于1920x1080的码流的。请问你是否有尝试过?

  • Chris Hi,

    感谢您的回复,我试了本地的解码例子,分辨率是1600*1200,播放不了。接收数据的线程里有组合I帧的部分:

    // If I frame is recieved in multiple packets we need to accumulate them into one buffer - First packet
                        if(pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail] == 0x67 && pObj->gIPNC_info->readSizeV < 200)
                        {
                            printf("\nGot a frame in multiple packets-Start\n");
                            tmpSize += pObj->gIPNC_info->readSizeV;
                            pObj->gIPNC_info->rVBTail = pObj->gIPNC_info->readSizeV;
                            if(pObj->codecType == VCODEC_TYPE_H264)
                            {
                             pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+0]    = 0x00;
                             pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+1]    = 0x00;
                             pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+2]    = 0x00;
                             pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+3]    = 0x01;
                             pObj->gIPNC_info->rVBTail += 4;
                             tmpSize += 4;
                             pObj->gIPNC_info->readVidBuf += pObj->gIPNC_info->rVBTail;
                            }
                            continue;
                        }
                        // If I frame is recieved in multiple packets we need to accumulate them into one buffer - Middle packet
                        if(tmpSize > 0 && pObj->gIPNC_info->readVidBuf[0] == 0x68)
                        {
                            printf("\nGot a frame in multiple packets-middle\n");
                            tmpSize += pObj->gIPNC_info->readSizeV;
                            pObj->gIPNC_info->rVBTail = pObj->gIPNC_info->readSizeV;
                            if(pObj->codecType == VCODEC_TYPE_H264)
                            {
                             pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+0]    = 0x00;
                             pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+1]    = 0x00;
                             pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+2]    = 0x00;
                             pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail+3]    = 0x01;
                             pObj->gIPNC_info->rVBTail += 4;
                             tmpSize += 4;
                             pObj->gIPNC_info->readVidBuf += pObj->gIPNC_info->rVBTail;
                            }
                            continue;
                        }
                        // If I frame is recieved in multiple packets we need to accumulate them into one buffer - Last packet
                        if(tmpSize > 0 && pObj->gIPNC_info->readVidBuf[pObj->gIPNC_info->rVBTail] == 0x65)
                        {
                            printf("\nGot a frame in multiple packets-End\n");
                            pObj->gIPNC_info->readSizeV += tmpSize;
                            tmpSize = 0;  //Reset this for next frame that comes in multiple packets
                        }

    一直打印Got a frame in multiple packets-Start和Got a frame in multiple packets-middle,没有Got a frame in multiple packets-End,I帧接收不完整,请问这会是什么原因导致的?

  • 如果数据源是1600*1200,是不是要在分辨率相关的地方增加匹配当前分辨率的部分,例如用到VSYS_STD_1080P_60,DC_MODE_1080P_60,FVID2_STD_1080P_60的地方。

  • Chu Hi,

    抱歉,我测试的是dec+display的demo,你的错误是在接收网络码流部分。

  • Chris Hi,

    感谢您的回复,如果用1920*1080的摄像头,能接收到packets-End,换1600*1200或者1024*1024的不行。接收网络码流的代码是RDK的,我只改了初始化时的长宽,为什么接收会有问题呢?

  • Chu Hi,

    网络接收侧的代码我不是很熟悉,建议你加些打印,调试一下。

  • Chris Hi,

    感谢您的回复,能不能让您熟悉这一块的同事也帮忙测试一下,我们的四路视频分辨率都不一样:

    1920*1080,1024*1024,1600*1200,2048*1536,多谢!

  • 从1600*1200的摄像头都到的数据是:

    前面一堆5577那种数据,这种数据不对吧,收不到I帧