문제

쓰 비디오 플레이어에서 리눅스를 별도로 2 과정:

A.디코더 프로세스 B.GUI

이 방법을 사용할 수 있는 다양한 프로그래밍 언어와 문제가 발생합니다,그것은 쉽게 알고 있는 문제입니다.

문제,처리할 수 있는 디코딩된 렌더링에 사진 B 의 표면을 직접?내가 사용하고 싶지 않은 일부 IPC 을 보낼 B 이러한 데이터를 디코딩할 수 있기 때문에 매우 비효율적이다.

도움이 되었습니까?

해결책

사용할 수 있습니다 XEmbed 사양,할 수 있는을 포함하는 하나의 X11 창 내부에 또 다른,그리고 그들은 수도에서 다른 프로세스입니다.이것은 다른 어떤 미디어 플레이어 화면 일반적으로 않습니다.

모두 프로그램과 Qt 지원 XEmbed.

다른 팁

IPC(특히 유닉스 파이프)은 훨씬 더 효율적으로 다음은 당신이 생각하고 그것은 아마도 오른쪽 메커니즘을 사용합니다.

그러나,당신이 요구하기 때문에 그것을 어떻게 없이 IPC(그리고 분석이 의미 없이 컨텍스트 스위치 및 복사본),당신은 단순히 만드 공유 메모리 사이의 세그먼트에 두 개의 프로세스:

fd = shm_open("/my_shmem", O_RDWR| O_CREAT, S_IWUSR);
if(fd == -1) abort(); 
ftruncate(fd, SHMEM_SIZE); 
p = mmap(NULL, SHMEM_SIZE, PROT_WRITE |  PROT_READ, MAP_SHARED, fd, 0); 
if(p == MAP_FAILED) abort()

지금 p 주소를 공유 메모리 세그먼트에 의해 공유 두개(혹은 많이)프로세스입니다.

경고!의 숫자 값 p(가상 메모리 주소)다를 수 있습니다 간의 프로세스,그래서 당신이 원하는 경우를 넣어 연결 리스트에서 공유 메모리 예를 들어,당신은 당신을 사용하여 오프셋.

환호 gby

는 방법을 살펴 mplayer 및 smplayer 구현됩니다.이를 디코딩하여 영상,smplayer 이(옵션)GUI.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top