summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Raghavan <arun.raghavan@collabora.co.uk>2009-12-30 14:14:55 +0530
committerTim-Philipp Müller <tim.muller@collabora.co.uk>2009-12-31 18:25:20 +0000
commite9f9164fb6b81de8d1f511fe3f609a5e550c4cc8 (patch)
tree0ac120774648ecbb5004a3a6df2d808920a3597f
parent173be1422c4942fcd30c5e8afd9496027dfd2dfa (diff)
qtdemux: Add tags for average and maximum bitrate
Fixes #599300.
-rw-r--r--gst/qtdemux/qtdemux.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c
index 93351f7b3..7cdaa0429 100644
--- a/gst/qtdemux/qtdemux.c
+++ b/gst/qtdemux/qtdemux.c
@@ -6469,15 +6469,28 @@ gst_qtdemux_handle_esds (GstQTDemux * qtdemux, QtDemuxStream * stream,
6469 GST_DEBUG_OBJECT (qtdemux, "priority %04x", QT_UINT8 (ptr + 2)); 6469 GST_DEBUG_OBJECT (qtdemux, "priority %04x", QT_UINT8 (ptr + 2));
6470 ptr += 3; 6470 ptr += 3;
6471 break; 6471 break;
6472 case 0x04: 6472 case 0x04:{
6473 guint max_bitrate, avg_bitrate;
6474
6473 object_type_id = QT_UINT8 (ptr); 6475 object_type_id = QT_UINT8 (ptr);
6476 max_bitrate = QT_UINT32 (ptr + 5);
6477 avg_bitrate = QT_UINT32 (ptr + 9);
6474 GST_DEBUG_OBJECT (qtdemux, "object_type_id %02x", object_type_id); 6478 GST_DEBUG_OBJECT (qtdemux, "object_type_id %02x", object_type_id);
6475 GST_DEBUG_OBJECT (qtdemux, "stream_type %02x", QT_UINT8 (ptr + 1)); 6479 GST_DEBUG_OBJECT (qtdemux, "stream_type %02x", QT_UINT8 (ptr + 1));
6476 GST_DEBUG_OBJECT (qtdemux, "buffer_size_db %02x", QT_UINT24 (ptr + 2)); 6480 GST_DEBUG_OBJECT (qtdemux, "buffer_size_db %02x", QT_UINT24 (ptr + 2));
6477 GST_DEBUG_OBJECT (qtdemux, "max bitrate %d", QT_UINT32 (ptr + 5)); 6481 GST_DEBUG_OBJECT (qtdemux, "max bitrate %u", max_bitrate);
6478 GST_DEBUG_OBJECT (qtdemux, "avg bitrate %d", QT_UINT32 (ptr + 9)); 6482 GST_DEBUG_OBJECT (qtdemux, "avg bitrate %u", avg_bitrate);
6483 if (max_bitrate > 0 && max_bitrate < G_MAXUINT32) {
6484 gst_tag_list_add (list, GST_TAG_MERGE_REPLACE,
6485 GST_TAG_MAXIMUM_BITRATE, max_bitrate, NULL);
6486 }
6487 if (avg_bitrate > 0 && avg_bitrate < G_MAXUINT32) {
6488 gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, GST_TAG_BITRATE,
6489 avg_bitrate, NULL);
6490 }
6479 ptr += 13; 6491 ptr += 13;
6480 break; 6492 break;
6493 }
6481 case 0x05: 6494 case 0x05:
6482 GST_MEMDUMP_OBJECT (qtdemux, "data", ptr, len); 6495 GST_MEMDUMP_OBJECT (qtdemux, "data", ptr, len);
6483 data_ptr = ptr; 6496 data_ptr = ptr;