Skip to content

Commit e9f206a

Browse files
author
Clement Champetier
committed
AudioProperties: add sampleFormatName and sampleFormatLongName
* Keep in the stucture the sample format name from FFmpeg (sampleFormatName), and the more user friendly name (sampleFormatLongName). * Update pyTest consequently.
1 parent 7cab865 commit e9f206a

File tree

6 files changed

+29
-7
lines changed

6 files changed

+29
-7
lines changed

src/AvTranscoder/mediaProperty/AudioStreamProperty.hpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,24 @@ avtranscoder::AudioProperties audioStreamInfo( const AVFormatContext* formatCont
4545
#endif
4646
const char* fmtName = av_get_sample_fmt_name( codec_context->sample_fmt );
4747
if( fmtName )
48-
ap.sampleFormat = std::string( fmtName );
48+
ap.sampleFormatName = std::string( fmtName );
49+
50+
std::string sampleFormat = "";
51+
switch( codec_context->sample_fmt )
52+
{
53+
case AV_SAMPLE_FMT_NONE : ap.sampleFormatLongName = "none"; break;
54+
case AV_SAMPLE_FMT_U8 : ap.sampleFormatLongName = "unsigned 8 bits"; break;
55+
case AV_SAMPLE_FMT_S16 : ap.sampleFormatLongName = "signed 16 bits"; break;
56+
case AV_SAMPLE_FMT_S32 : ap.sampleFormatLongName = "signed 32 bits"; break;
57+
case AV_SAMPLE_FMT_FLT : ap.sampleFormatLongName = "float"; break;
58+
case AV_SAMPLE_FMT_DBL : ap.sampleFormatLongName = "double"; break;
59+
case AV_SAMPLE_FMT_U8P : ap.sampleFormatLongName = "unsigned 8 bits, planar"; break;
60+
case AV_SAMPLE_FMT_S16P : ap.sampleFormatLongName = "signed 16 bits, planar"; break;
61+
case AV_SAMPLE_FMT_S32P : ap.sampleFormatLongName = "signed 32 bits, planar"; break;
62+
case AV_SAMPLE_FMT_FLTP : ap.sampleFormatLongName = "float, planar"; break;
63+
case AV_SAMPLE_FMT_DBLP : ap.sampleFormatLongName = "double, planar"; break;
64+
case AV_SAMPLE_FMT_NB : ap.sampleFormatLongName = "Number of sample formats."; break;
65+
}
4966

5067
return ap;
5168
}

src/AvTranscoder/mediaProperty/mediaProperty.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ MetadatasMap AudioProperties::getDataMap() const
114114
detail::add( dataMap, "codec id", codecId );
115115
detail::add( dataMap, "codec name", codecName );
116116
detail::add( dataMap, "codec long name", codecLongName );
117-
detail::add( dataMap, "sample format", sampleFormat );
117+
detail::add( dataMap, "sample format name", sampleFormatName );
118+
detail::add( dataMap, "sample format long name", sampleFormatLongName );
118119
detail::add( dataMap, "sample rate", sampleRate );
119120
detail::add( dataMap, "bit rate", bit_rate );
120121
detail::add( dataMap, "channels", channels );

src/AvTranscoder/mediaProperty/mediaProperty.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ struct AvExport AudioProperties
106106
{
107107
std::string codecName;
108108
std::string codecLongName;
109-
std::string sampleFormat;
109+
std::string sampleFormatName;
110+
std::string sampleFormatLongName;
110111
std::string channelLayout;
111112
std::string channelName;
112113
std::string channelDescription;

src/AvTranscoder/transcoder/Transcoder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ void Transcoder::addTranscodeStream( const std::string& filename, const size_t s
391391
profile[ constants::avProfileIdentificatorHuman ] = "Preset rewrap";
392392
profile[ constants::avProfileType ] = avtranscoder::constants::avProfileTypeAudio;
393393
profile[ constants::avProfileCodec ] = audioProperties.codecName;
394-
profile[ constants::avProfileSampleFormat ] = audioProperties.sampleFormat;
394+
profile[ constants::avProfileSampleFormat ] = audioProperties.sampleFormatName;
395395
std::stringstream ss;
396396
ss << audioProperties.sampleRate;
397397
profile[ constants::avProfileSampleRate ] = ss.str();

test/pyTest/testTranscoderRewrap.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ def testRewrapAudioStream():
4343
# check audio stream
4444
assert_equals( src_audioStream.codecName, dst_audioStream.codecName )
4545
assert_equals( src_audioStream.codecLongName, dst_audioStream.codecLongName )
46-
assert_equals( src_audioStream.sampleFormat, dst_audioStream.sampleFormat )
46+
assert_equals( src_audioStream.sampleFormatName, dst_audioStream.sampleFormatName )
47+
assert_equals( src_audioStream.sampleFormatLongName, dst_audioStream.sampleFormatLongName )
4748
# assert_equals( src_audioStream.channelLayout, dst_audioStream.channelLayout ) # '5.1' != '0 channels'
4849
assert_equals( src_audioStream.channelName, dst_audioStream.channelName )
4950
assert_equals( src_audioStream.channelDescription, dst_audioStream.channelDescription )

test/pyTest/testTranscoderTranscode.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ def testTranscodeWave24b48kmono():
2929

3030
assert_equals( "pcm_s24le", dst_audioStream.codecName )
3131
assert_equals( "PCM signed 24-bit little-endian", dst_audioStream.codecLongName )
32-
assert_equals( "s32", dst_audioStream.sampleFormat )
32+
assert_equals( "s32", dst_audioStream.sampleFormatName )
33+
assert_equals( "signed 32 bits", dst_audioStream.sampleFormatLongName )
3334
assert_equals( 48000, dst_audioStream.sampleRate )
3435
# assert_equals( "1 channels", dst_audioStream.channelLayout ) # '1 channels' != '0 channels'
3536
assert_equals( 1, dst_audioStream.channels )
@@ -58,7 +59,8 @@ def testTranscodeWave16b48kmono():
5859

5960
assert_equals( "pcm_s16le", dst_audioStream.codecName )
6061
assert_equals( "PCM signed 16-bit little-endian", dst_audioStream.codecLongName )
61-
assert_equals( "s16", dst_audioStream.sampleFormat )
62+
assert_equals( "s16", dst_audioStream.sampleFormatName )
63+
assert_equals( "signed 16 bits", dst_audioStream.sampleFormatLongName )
6264
assert_equals( 48000, dst_audioStream.sampleRate )
6365
# assert_equals( "1 channels", dst_audioStream.channelLayout ) # '1 channels' != '0 channels'
6466
assert_equals( 1, dst_audioStream.channels )

0 commit comments

Comments
 (0)