{"id":25,"date":"2005-01-17T17:22:21","date_gmt":"2005-01-18T00:22:21","guid":{"rendered":"\/?p=25"},"modified":"2006-05-17T22:34:18","modified_gmt":"2006-05-18T05:34:18","slug":"codec-gold-mine","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/","title":{"rendered":"Codec Gold Mine; More On The gentree Perl Script"},"content":{"rendered":"<p>I&#8217;m feeling good about these new MS multimedia libraries with debug symbols. At first I was a little disappointed to see that &#8216;only&#8217; WMA8, WMA9 and WMV9 were covered by these libraries. <\/p>\n<p><!--more--><\/p>\n<p>Digging a little deeper, it appears that the WMA9 module covers the WM Series 9 audio codecs. This includes WMA9 multi-channel, WM Voice, and WM Lossless. Witness these functions:<\/p>\n<table>\n<tr>\n<td valign=\"top\">\n<ul>\n<li>_prvWMADECCreateForWMAVoice<\/li>\n<li>_prvWMADECDecodeDataForWMAVoice<\/li>\n<li>_prvWMADECDeleteForWMAVoice<\/li>\n<li>_prvWMADECGetPCMForWMAVoice<\/li>\n<li>_prvWMADECInitForWMAVoice<\/li>\n<li>_prvWMADECInitFrameForWMAVoice<\/li>\n<li>_prvWMADECResetForWMAVoice<\/li>\n<li>_prvWMADECResetSMSwitchForWMAVoice<\/li>\n<li>_WMAVoiceRealForwFFT_INT<\/li>\n<li>_WMAVoiceFFT4DCT<\/li>\n<\/ul>\n<\/td>\n<td valign=\"top\">\n<ul>\n<li>_prvDecodeSubFrameChannelRawPCMPureLosslessMode<\/li>\n<li>_prvDecodeSubFrameChannelResiduePureLosslessModeVerB<\/li>\n<li>_prvDecodeSubFrameHeaderPureLosslessMode<\/li>\n<li>_prvDecodeSubFramePureLosslessMode<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/table>\n<p>The WMV9 file has a bunch of functions prefixed with WMV2 (a.k.a. WMV8) in addition to WMV3 (a.k.a. WMV9). Not all of WMV8 has been RE&#8217;d and this may help fill in some gaps.<\/p>\n<p>I think the next goal should be to put together a good tree detailing the various decoding algorithms. I would like for the gentree Perl script to do it for me. But when I try to make it recurse down and show me the whole underlying tree, Perl complains, something about &#8220;recursion too deep&#8221; or some such. Frankly, that tells me that there is something wrong with my script. Unless there are 2 functions that actually call each other, I can not imagine that the calling hierarchy could possibly sink too deep.<\/p>\n<p>Of course, there are other imperfections in the script, among them:<\/p>\n<ul>\n<li>register calls and other dynamic calls (e.g., &#8220;call eax&#8221; or &#8220;call [ebp-1ch]&#8221;): to be fair, this is not really a problem with the script; the actual jump destinations are unknown until the machine&#8217;s instruction pointer lands on that address. Actually, lines like &#8220;call [ebp-1ch]&#8221; make Perl&#8217;s regex engine very unhappy. That is why such lines get classified as &#8220;dynamic&#8221; instead of trying to push them through the regex engine.<\/li>\n<li>numerical address calls (e.g., &#8220;call 00000022&#8221;): these apparently occur due to relative vs. absolute call instructions. Perhaps the script needs to analyze the instruction&#8217;s opcode and decide if it is a relative call. If it is, the script should probably disregard the call since it really only has the option of jumping somewhere else in the same function. This is relocatable code so the function can not safely jump to neighboring functions.<\/li>\n<li>too many &#8220;top-level&#8221; functions: not sure if my script can take care of this one. There are way more functions at the top level then there ought to be. This is related to the aforementioned register and dynamic calls. For example, these 4 functions are listed as top-level functions:\n<ul>\n<li>_ApplySmoothing<\/li>\n<li>_ApplySmoothing_Improved<\/li>\n<li>_ApplySmoothing_KNI<\/li>\n<li>_ApplySmoothing_MMX<\/li>\n<\/ul>\n<p>These are obviously processor-specific optimzations for a certain, well, optimizable operation. In the decoder, there will be some data field called &#8220;ApplySmoothingFunc&#8221; which will be initialized to the address of one of the above functions depending on which processor features are present. The dynamic address of ApplySmoothingFunc() is called and the functions that do the actual work are never referenced in the static disassembly. But in this context, there is not much to be done about it. It sure does distract from what the actual top-level functions are.<\/p>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Cursory investigations into the call trees generated from the MS debug codec library&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,12],"tags":[],"class_list":["post-25","post","type-post","status-publish","format-standard","hentry","category-reverse-engineering","category-windows-media"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Cursory investigations into the call trees generated from the MS debug codec library...\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Multimedia Mike\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Breaking Eggs And Making Omelettes | Topics On Multimedia Technology and Reverse Engineering\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Codec Gold Mine; More On The gentree Perl Script | Breaking Eggs And Making Omelettes\" \/>\n\t\t<meta property=\"og:description\" content=\"Cursory investigations into the call trees generated from the MS debug codec library...\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2005-01-18T00:22:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2006-05-18T05:34:18+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Codec Gold Mine; More On The gentree Perl Script | Breaking Eggs And Making Omelettes\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Cursory investigations into the call trees generated from the MS debug codec library...\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/codec-gold-mine\\\/#article\",\"name\":\"Codec Gold Mine; More On The gentree Perl Script | Breaking Eggs And Making Omelettes\",\"headline\":\"Codec Gold Mine; More On The gentree Perl Script\",\"author\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\"},\"datePublished\":\"2005-01-17T17:22:21-08:00\",\"dateModified\":\"2006-05-17T22:34:18-07:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/codec-gold-mine\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/codec-gold-mine\\\/#webpage\"},\"articleSection\":\"Reverse Engineering, Windows Media\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/codec-gold-mine\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/multimedia.cx\\\/eggs\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/reverse-engineering\\\/#listItem\",\"name\":\"Reverse Engineering\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/reverse-engineering\\\/#listItem\",\"position\":2,\"name\":\"Reverse Engineering\",\"item\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/reverse-engineering\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/reverse-engineering\\\/windows-media\\\/#listItem\",\"name\":\"Windows Media\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/reverse-engineering\\\/windows-media\\\/#listItem\",\"position\":3,\"name\":\"Windows Media\",\"item\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/reverse-engineering\\\/windows-media\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/codec-gold-mine\\\/#listItem\",\"name\":\"Codec Gold Mine; More On The gentree Perl Script\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/reverse-engineering\\\/#listItem\",\"name\":\"Reverse Engineering\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/codec-gold-mine\\\/#listItem\",\"position\":4,\"name\":\"Codec Gold Mine; More On The gentree Perl Script\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/reverse-engineering\\\/windows-media\\\/#listItem\",\"name\":\"Windows Media\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\",\"name\":\"Breaking Eggs And Making Omelettes\",\"description\":\"Topics On Multimedia Technology and Reverse Engineering\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/\",\"name\":\"Multimedia Mike\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/codec-gold-mine\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2eb93f7cada658f7986b5092062849fa255779eada3342c8f6b9a40764b95fdd?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Multimedia Mike\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/codec-gold-mine\\\/#webpage\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/codec-gold-mine\\\/\",\"name\":\"Codec Gold Mine; More On The gentree Perl Script | Breaking Eggs And Making Omelettes\",\"description\":\"Cursory investigations into the call trees generated from the MS debug codec library...\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/codec-gold-mine\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"datePublished\":\"2005-01-17T17:22:21-08:00\",\"dateModified\":\"2006-05-17T22:34:18-07:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#website\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/\",\"name\":\"Breaking Eggs And Making Omelettes\",\"description\":\"Topics On Multimedia Technology and Reverse Engineering\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Codec Gold Mine; More On The gentree Perl Script | Breaking Eggs And Making Omelettes","description":"Cursory investigations into the call trees generated from the MS debug codec library...","canonical_url":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/#article","name":"Codec Gold Mine; More On The gentree Perl Script | Breaking Eggs And Making Omelettes","headline":"Codec Gold Mine; More On The gentree Perl Script","author":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"publisher":{"@id":"https:\/\/multimedia.cx\/eggs\/#organization"},"datePublished":"2005-01-17T17:22:21-08:00","dateModified":"2006-05-17T22:34:18-07:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/#webpage"},"isPartOf":{"@id":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/#webpage"},"articleSection":"Reverse Engineering, Windows Media"},{"@type":"BreadcrumbList","@id":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs#listItem","position":1,"name":"Home","item":"https:\/\/multimedia.cx\/eggs","nextItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/#listItem","name":"Reverse Engineering"}},{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/#listItem","position":2,"name":"Reverse Engineering","item":"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/","nextItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/windows-media\/#listItem","name":"Windows Media"},"previousItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/windows-media\/#listItem","position":3,"name":"Windows Media","item":"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/windows-media\/","nextItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/#listItem","name":"Codec Gold Mine; More On The gentree Perl Script"},"previousItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/#listItem","name":"Reverse Engineering"}},{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/#listItem","position":4,"name":"Codec Gold Mine; More On The gentree Perl Script","previousItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/windows-media\/#listItem","name":"Windows Media"}}]},{"@type":"Organization","@id":"https:\/\/multimedia.cx\/eggs\/#organization","name":"Breaking Eggs And Making Omelettes","description":"Topics On Multimedia Technology and Reverse Engineering","url":"https:\/\/multimedia.cx\/eggs\/"},{"@type":"Person","@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author","url":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/","name":"Multimedia Mike","image":{"@type":"ImageObject","@id":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/2eb93f7cada658f7986b5092062849fa255779eada3342c8f6b9a40764b95fdd?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Multimedia Mike"}},{"@type":"WebPage","@id":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/#webpage","url":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/","name":"Codec Gold Mine; More On The gentree Perl Script | Breaking Eggs And Making Omelettes","description":"Cursory investigations into the call trees generated from the MS debug codec library...","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/multimedia.cx\/eggs\/#website"},"breadcrumb":{"@id":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/#breadcrumblist"},"author":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"creator":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"datePublished":"2005-01-17T17:22:21-08:00","dateModified":"2006-05-17T22:34:18-07:00"},{"@type":"WebSite","@id":"https:\/\/multimedia.cx\/eggs\/#website","url":"https:\/\/multimedia.cx\/eggs\/","name":"Breaking Eggs And Making Omelettes","description":"Topics On Multimedia Technology and Reverse Engineering","inLanguage":"en-US","publisher":{"@id":"https:\/\/multimedia.cx\/eggs\/#organization"}}]},"og:locale":"en_US","og:site_name":"Breaking Eggs And Making Omelettes | Topics On Multimedia Technology and Reverse Engineering","og:type":"article","og:title":"Codec Gold Mine; More On The gentree Perl Script | Breaking Eggs And Making Omelettes","og:description":"Cursory investigations into the call trees generated from the MS debug codec library...","og:url":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/","article:published_time":"2005-01-18T00:22:21+00:00","article:modified_time":"2006-05-18T05:34:18+00:00","twitter:card":"summary","twitter:title":"Codec Gold Mine; More On The gentree Perl Script | Breaking Eggs And Making Omelettes","twitter:description":"Cursory investigations into the call trees generated from the MS debug codec library..."},"aioseo_meta_data":{"post_id":"25","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-31 21:42:24","updated":"2025-12-31 18:07:58","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/multimedia.cx\/eggs\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/\" title=\"Reverse Engineering\">Reverse Engineering<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/windows-media\/\" title=\"Windows Media\">Windows Media<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tCodec Gold Mine; More On The gentree Perl Script\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/multimedia.cx\/eggs"},{"label":"Reverse Engineering","link":"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/"},{"label":"Windows Media","link":"https:\/\/multimedia.cx\/eggs\/category\/reverse-engineering\/windows-media\/"},{"label":"Codec Gold Mine; More On The gentree Perl Script","link":"https:\/\/multimedia.cx\/eggs\/codec-gold-mine\/"}],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":0,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/25\/revisions"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}