티스토리 뷰

VLC관련 자료들을 들여다보다 Alex Skoruppa 가 만든 libvlcwrapper class 발견.

가져다 test 해본결과 대만족!! 그런데 일부 파일이 열리지가 않는다..

open부터 따라가봤더니 큰 문제가 없어보였는데..

media path 를 넘겨주면 pointer도 잘 넘겨주고.. 그런데 동작을 안한다.

아니 어떤건 되고 어떤건 안된다.. plugin이 잘못되었나 확인해봤는데 문제가 없다.

다시 천천히 살펴본 결과 파일명에 한글이 들어가 있으면 playback이 안되었다.

googling 결과 utf8로 넘겨서 해결한 사례 발견  :   http://en.usenet.digipedia.org/thread/17096/5693/

역시 charactor encoding 문제였네..

근데 왜 포인터핸들은 잘 넘겨주는걸까..

아무튼 아래와 같이 해결..

원 클래스가 CPOL 라이센스라서 아무것도 안해도 되네..원저자에게 알려는 줘야겠다.

VLCWrapper is distributed under the Code Project Open License (CPOL).

 

// in VLCWrapper_src_vlc_2_0_0\VLCWrapperImpl.cpp

void VLCWrapperImpl::OpenMedia(const char* pMediaPathName)
{
    // Load a new item
    // convert utf8 by likehood
    std::string c(pMediaPathName);
    if(!is_utf8(pMediaPathName))
    {
      std::string s(pMediaPathName);
      c = convMbcs2Utf8(s);
    }
    pMedia_ = libvlc_media_new_path(pVLCInstance_, c.c_str());
    libvlc_media_player_set_media (pMediaPlayer_, pMedia_);   
}

The Code Project Open License (CPOL)

* 저작권 보호: 예
* 상용 소프트웨어에서 사용 가능: 예
* 버그 패치 및 기능 확장 제공의 의무: 아니오
* 명시적 특허권 행사 가능 여부: 예
* 사유 프로그램 (소스 비공개 프로그램)에서 사용 가능 여부: 예
* 라이센스 전파 여부: 아니오

댓글