diff options
author | Arun Raghavan <arun.raghavan@collabora.co.uk> | 2009-12-30 14:14:55 +0530 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2009-12-31 18:25:20 +0000 |
commit | e9f9164fb6b81de8d1f511fe3f609a5e550c4cc8 (patch) | |
tree | 0ac120774648ecbb5004a3a6df2d808920a3597f | |
parent | 173be1422c4942fcd30c5e8afd9496027dfd2dfa (diff) |
qtdemux: Add tags for average and maximum bitrate
Fixes #599300.
-rw-r--r-- | gst/qtdemux/qtdemux.c | 19 |
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; |