[FFmpeg-devel] [PATCH 1/3] decklink: add fourCC of display mode to list_format output
Marton Balint
cus at passwd.hu
Thu Mar 16 23:55:59 EET 2017
On Thu, 16 Mar 2017, Matthias Hunstock wrote:
> Am 16.03.2017 um 20:55 schrieb Marton Balint:
>>
>>
>> On Thu, 16 Mar 2017, Matthias Hunstock wrote:
>>
>>> ---
>>> libavdevice/decklink_common.cpp | 11 +++++++----
>>> 1 file changed, 7 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/libavdevice/decklink_common.cpp
>>> b/libavdevice/decklink_common.cpp
>>> index 8b499c5..131d186 100644
>>> --- a/libavdevice/decklink_common.cpp
>>> +++ b/libavdevice/decklink_common.cpp
>>> @@ -276,6 +276,7 @@ int ff_decklink_list_formats(AVFormatContext
>>> *avctx, decklink_direction_t direct
>>> struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx;
>>> IDeckLinkDisplayModeIterator *itermode;
>>> IDeckLinkDisplayMode *mode;
>>> + char fourcc[32];
>>> int i=0;
>>> HRESULT res;
>>>
>>> @@ -297,13 +298,15 @@ int ff_decklink_list_formats(AVFormatContext
>>> *avctx, decklink_direction_t direct
>>> return AVERROR(EIO);
>>> }
>>>
>>> - av_log(avctx, AV_LOG_INFO, "Supported formats for '%s':\n",
>>> + av_log(avctx, AV_LOG_INFO, "Supported formats for
>>> '%s':\n\tmode\tfourCC\tdescription",
>>> avctx->filename);
>>> while (itermode->Next(&mode) == S_OK) {
>>> BMDTimeValue tb_num, tb_den;
>>> mode->GetFrameRate(&tb_num, &tb_den);
>>> - av_log(avctx, AV_LOG_INFO, "\t%d\t%ldx%ld at %d/%d fps",
>>> - ++i,mode->GetWidth(), mode->GetHeight(),
>>> + av_get_codec_tag_string(fourcc, sizeof(fourcc),
>>> mode->GetDisplayMode());
>>> + av_log(avctx, AV_LOG_INFO, "\n\t%d\t%c%c%c%c\t%ldx%ld at
>>> %d/%d fps",
>>> + ++i, fourcc[3], fourcc[2], fourcc[1], fourcc[0],
>>> + mode->GetWidth(), mode->GetHeight(),
>>
>> fourcc is a string, is there a reason why you don't simply print it
>> using "%s"?
>
> Yes, unfortunately the order is reversed then, and I considered 'cstn'
> or '05iH' harder to remember and use than 'ntsc' or 'Hi50'. Did not find
> any util function that does the fourCC conversion in that reverse order.
>
Oh, I see. Maybe you can use av_bswap32 to transform the BMDDisplayMode to
the proper byte order before transfroming it to fourcc string.
Regards,
Marton
More information about the ffmpeg-devel
mailing list