2013-05-05 2 views
0

나는 C어떻게하면 코덱의 이름으로 ffmpeg 목록을 얻을 수 있습니까?

int Encoder_GetCurrentCodecType() 
{ 
    if (current_codec != NULL) 
     return (int) current_codec->type; 
    return AVMEDIA_TYPE_UNKNOWN; 
} 

에서이 기능을하지만 기능은 각 코덱 종류의 코드를 반환합니다. 등 : 5, 6, 7

내가 함수에서 테스트하고있어 경우는 내가 입력 : AVMediaType::이 그럼 내가 모든 7 코덱의 종류의 목록이 표시 예를 들면 :

AVMEDIA_TYPE_AUDIO 

그래서 나는 나에게 유형의 이름이 아닌 코드를 반환하여 INT 하나지만 string 또는 const char* 같은 기능을 만들고 싶어.

어떻게 할 수 있습니까? 내가했던 C 파일에서 편집

: C 및 C 사이를 연결하는 헤더 파일에 다음

const char* Encoder_av_get_media_type_string(enum AVMediaType media_type) 
{ 
    switch (media_type) { 
     case AVMEDIA_TYPE_VIDEO:  return "video"; 
     case AVMEDIA_TYPE_AUDIO:  return "audio"; 
     case AVMEDIA_TYPE_DATA:  return "data"; 
     case AVMEDIA_TYPE_SUBTITLE: return "subtitle"; 
     case AVMEDIA_TYPE_ATTACHMENT: return "attachment"; 
     default:      return NULL; 
     } 
} 

++ 내가 한 : 그런 다음

const char* Encoder_av_get_media_type_string(enum AVMediaType media_type); 

에서 C++ 헤더 파일 내가 한 :

property List<String^> ^GetCodec 
{ 

    List<String^>^ get() 
    { 
     List<String^> ^l = gcnew List<String^>; 
     String ^s; 


     s = gcnew String(Encoder_av_get_media_type_string(avm)); 
     l->Add(s); 


     return l; 
    } 
} 
,451,515,

그런 다음 CSHARP에 내가했던 :

그래서 아마 C에서
for (int i = 0; i < f.GetCodec.Count; i++) 
      { 
       ss.Add(f.GetCodec[i]); 
      } 

++이 안 나는 CSHARP에 내가 f.GetCodec을 뭔가를 생각 속성을. 그러면 모든 코덱의 형식 이름 목록이 표시됩니다.

내가 f.GetCodec.Add을하고 f.GetCodec 있도록 속성의 목록을 볼 수있을 때 같은 속성처럼

. (여기에서 나는 모든 종류의 이름 목록) 단지에 다음 불가능한 경우

CSHARP에서 모든 타입 이름을 가진 List를 만든다.

그러나 지금은 단 1 개의 이름 "비디오"가 있습니다.

답변

1

this에 따르면,이를 수행하는 기능이 있습니다.

const char* av_get_media_type_string(enum AVMediaType media_type) 
+0

이 기능을 사용했지만 내 목록에만 이름이 나타납니다. 내 질문을 코드로 업데이트하고있다. –

+0

내 질문에 업데이트되었습니다. 감사. –

+0

어디에서나'avm'이 바뀌지 않는다. 따라서 문자열이 어떻게 변하기를 기대하는지 모르겠다. o –

관련 문제