* Use duration_to_string() to write better playing time

attribute strings (i.e. with separate hour).
 * Write video bitrate attribute.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38718 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2010-09-19 12:02:00 +00:00
parent 4831b4fbfd
commit 3a8771cf17
+22 -4
View File
@@ -49,6 +49,7 @@
#include "AudioProducer.h" #include "AudioProducer.h"
#include "ControllerObserver.h" #include "ControllerObserver.h"
#include "DurationToString.h"
#include "FilePlaylistItem.h" #include "FilePlaylistItem.h"
#include "MainApp.h" #include "MainApp.h"
#include "PeakView.h" #include "PeakView.h"
@@ -2337,20 +2338,20 @@ MainWin::_UpdatePlaylistItemFile()
time_t duration = fController->TimeDuration() / 1000000L; time_t duration = fController->TimeDuration() / 1000000L;
char text[256]; char text[256];
snprintf(text, sizeof(text), "%02ld:%02ld", duration / 60, duration_to_string(duration, text, sizeof(text));
duration % 60);
node.WriteAttr(kDurationAttrName, B_STRING_TYPE, 0, text, node.WriteAttr(kDurationAttrName, B_STRING_TYPE, 0, text,
strlen(text) + 1); strlen(text) + 1);
} }
// Write audio bitrate // Write audio bitrate
if (fHasAudio && !fHasVideo) { if (fHasAudio) {
status = node.GetAttrInfo("Audio:Bitrate", &info); status = node.GetAttrInfo("Audio:Bitrate", &info);
if (status != B_OK || info.size == 0) { if (status != B_OK || info.size == 0) {
media_format format; media_format format;
if (fController->GetEncodedAudioFormat(&format) == B_OK if (fController->GetEncodedAudioFormat(&format) == B_OK
&& format.type == B_MEDIA_ENCODED_AUDIO) { && format.type == B_MEDIA_ENCODED_AUDIO) {
int32 bitrate = (int32)(format.u.encoded_audio.bit_rate / 1000); int32 bitrate = (int32)(format.u.encoded_audio.bit_rate
/ 1000);
char text[256]; char text[256];
snprintf(text, sizeof(text), "%ld kbit", bitrate); snprintf(text, sizeof(text), "%ld kbit", bitrate);
node.WriteAttr("Audio:Bitrate", B_STRING_TYPE, 0, text, node.WriteAttr("Audio:Bitrate", B_STRING_TYPE, 0, text,
@@ -2359,6 +2360,23 @@ MainWin::_UpdatePlaylistItemFile()
} }
} }
// Write video bitrate
if (fHasVideo) {
status = node.GetAttrInfo("Video:Bitrate", &info);
if (status != B_OK || info.size == 0) {
media_format format;
if (fController->GetEncodedVideoFormat(&format) == B_OK
&& format.type == B_MEDIA_ENCODED_VIDEO) {
int32 bitrate = (int32)(format.u.encoded_video.avg_bit_rate
/ 1000);
char text[256];
snprintf(text, sizeof(text), "%ld kbit", bitrate);
node.WriteAttr("Video:Bitrate", B_STRING_TYPE, 0, text,
strlen(text) + 1);
}
}
}
_UpdateAttributesMenu(node); _UpdateAttributesMenu(node);
} }