나는 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 개의 이름 "비디오"가 있습니다.
이 기능을 사용했지만 내 목록에만 이름이 나타납니다. 내 질문을 코드로 업데이트하고있다. –
내 질문에 업데이트되었습니다. 감사. –
어디에서나'avm'이 바뀌지 않는다. 따라서 문자열이 어떻게 변하기를 기대하는지 모르겠다. o –